我刚刚开始学习 Boost for C++。我正在关注一个使用 boost 中的“program_options”库的示例。下面是我的代码。我正在使用 Visual Studio 并且已经构建了需要构建的 boost 库,向附加的 include
目录添加了 boost,并向附加的链接器目录添加了 boost。
问题出在 desc.add_options()
上。 Visual Studio 表示此声明没有存储类或类型说明符。我不确定这意味着什么以及如何解决它。我一直在寻找解决方案,但我空手而归。任何帮助都是极好的。谢谢!
#include <boost/program_options.hpp>
#include <iostream>
namespace opt = boost::program_options;
opt::options_description desc("All options");
desc.add_options()
("apples", opt::value<int>(), "how many apples do you have")
("oranges", opt::value<int>(), "how many oranges do you have")
;
最佳答案
你不想要那个。该消息暗示的不是您错过了声明的某些部分。
那一行不是声明,你不应该试图把它变成一个声明。
这是一个典型的误解。冲突的产生是因为编译器期望仅在全局或命名空间范围内声明。 由于您使用的是声明,因此不能将其解释为声明,随之而来的是欢闹。
修复它,例如:
#include <boost/program_options.hpp>
#include <iostream>
namespace opt = boost::program_options;
int main(int argc, char** argv) {
opt::options_description desc("All options");
desc.add_options()
("apples", opt::value<int>(), "how many apples do you have")
("oranges", opt::value<int>(), "how many oranges do you have")
;
}
关于c++ - 使用 boost 的 program_options 时,如何确保声明在 C++ 中具有存储类或类型说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838995/