我目前开始使用boost :: program_options来解析命令行选项以及配置文件。使用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;
}
试图编译这我得到一个语义问题(没有匹配函数调用'价值')。我想我需要提供一些广泛的类型,但我没有真正的想法。
任何人都可以帮忙吗? 感谢
Aeon512
感谢您的提示。它完美的作品。 – Aeon512 2011-04-21 14:51:40
太棒了。我最后使用了哪两个想法? – 2011-04-21 22:40:56