从 sphinx 文档中提取 C++ 代码片段

Extracting a C++ code snippet in a sphinx document

我正在尝试从我的源代码中提取特定代码片段(测试)以将其输出到文档中。

TEST_CASE("std::vector") {
//! [MyTest]
  std::vector<int> v = {42,43};
  CHECK( v.size() == 2 );
//! [MyTest]
}

在 doxygen 中,我可以通过 \snippet 命令引用它。

现在,我想将片段中的代码直接显示到 sphinx 文档中

You can create a std::vector just like this:

INSERT THE CODE BETWEEN [MyTest] MARKERS HERE

The std::vector class automatically allocates memory for you

我该怎么做?我没有在呼吸中找到任何 doxygensnippet 指令。

注意:我不介意 sphinx 使用任何类型的标签直接为我提取代码,我不需要兼容 doxygen。

感谢@Steve_Piercy,我能够找到我想要的东西:将 literalinclude 指令与 start-afterend-before 一起使用。

TEST_CASE("std::vector") {
//! [MyTest begin]
  std::vector<int> v = {42,43};
  CHECK( v.size() == 2 );
//! [MyTest end]
}

文档文件:

You can create a std::vector just like this:

.. literalinclude::  my_test_file.cpp
  :start-after: MyTest begin
  :end-before: MyTest end

The std::vector class automatically allocates memory for you