【发布时间】:2011-04-21 10:05:02
【问题描述】:
我目前开始使用 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
【问题讨论】:
标签: class templates boost boost-program-options