我才刚刚开始学习Boost for C ++。我正在跟踪一个使用boost中的“ program_options”库的示例。下面是我的代码。我正在使用Visual Studio,并且已经构建了需要构建的Boost库,已将boost添加到其他include
目录,并将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/