我有一个程序,它有很多方法可以在代码中分配一些参数(变量)。例如,我可以从输入文件中获取参数,同时从命令行手动设置它。如果输入文件和命令行都没有设置参数,我应该打印一条警告信息并使用默认值。
我正在寻找C ++实现此类功能的方法。从我的观点来看,它应该是这样的类
Template <typename T>
class c_assigned_value
{
protected:
bool _assigned;
T _value;
public:
...
};
但是我找不到任何实现。你有什么建议吗?
答案 0 :(得分:2)
有什么问题?构造函数将m_assigned
设置为
false
和m_value
为默认值。如果值稍后
设置,然后m_assigned
设置为true
,并在某个时间点设置为m_assigned
时间,你检查_
,如果是假的则发出警告。
我可能会补充一点,用它来开始一个符号名称是一个坏主意
_
。许多实现将这些符号视为存在
他们的命名空间,并将它们定义为宏。 (错误地,但是
当他们这样做时,这没有任何帮助。)更一般地说,为
可读性,您应避免在符号的任何一端使用{{1}}。
答案 1 :(得分:0)
你应该试试boost:可选。它完全符合您的要求。
手册: http://www.boost.org/doc/libs/1_54_0/libs/optional/doc/html/index.html