0

我有一个程序,它有很多方法可以在代码中分配一些参数(变量)。例如,我可以从输入文件中获取一个参数,同时从命令行手动设置它。如果输入文件和命令行都没有设置参数,我应该打印一条警告消息并使用默认值。

我正在寻找 C++ 中实现此类功能的方法。形成我的观点,它应该是这样的类

Template <typename T>
class c_assigned_value 
{
protected:  
  bool _assigned;
  T    _value;
public:
...
};

但我找不到任何实现。你有什么建议吗?

4

2 回答 2

2

有什么问题?构造函数设置m_assignedfalse, 和m_value为默认值。如果该值稍后设置,则m_assigned设置为true,并且在某个时间点,您检查m_assigned,如果它为假则发出警告。

我可能会补充一点,以 . 开头的符号名称是个坏主意_。许多实现将此类符号视为位于其名称空间中,并将它们定义为宏。(不正确,但是当他们这样做时并没有帮助。)更一般地,为了便于阅读,您应该避免_在符号的任一端使用 a。

于 2013-09-19T08:31:51.060 回答
0

你应该试试 boost:optional。它完全符合您的要求。

手册: http: //www.boost.org/doc/libs/1_54_0/libs/optional/doc/html/index.html

于 2013-09-19T08:40:23.577 回答