我目前开始使用 boost::program_options 来解析命令行选项以及配置文件。
是否可以使用自己的模板类作为选项参数?这意味着,像
#include <iostream>
#include "boost/program_options.hpp"
namespace po = boost::program_options;
template <typename T>
class MyClass
{
private:
T* m_data;
size_t m_size;
public:
MyClass( size_t size) : m_size(size) { m_data = new T[size]; }
~MyClass() { delete[] m_data; }
T get( size_t i ) { return m_data[i]; }
void set( size_t i, T value ) { m_data[i] = value; }
};
int main (int argc, const char * argv[])
{
po::options_description generic("General options");
generic.add_options() ("myclass", po::value< MyClass<int>(2) >(),
"Read MyClass");
return 0;
}
试图编译这个我得到一个语义问题(没有匹配函数调用'value')。我想我需要为通用类型提供一些转换,但我没有真正的想法。
有人可以帮忙吗?谢谢
永旺512