我有一个程序,它有许多方法来分配代码中的一些参数(变量)。例如,我可以从输入文件中获取一个参数,同时从命令行手动设置它。如果既没有输入文件,也没有命令行设置参数,我应该打印一条警告消息,并使用默认值。
我正在寻找在C++中实现这种功能的方法。从我的观点来看,它应该是这样的类
Template <typename T>
class c_assigned_value
{
protected:
bool _assigned;
T _value;
public:
...
};但我找不到任何实现。你有什么建议吗?
发布于 2013-09-19 16:31:51
有什么问题吗?构造函数将m_assigned设置为false,将m_value设置为默认值。如果稍后设置了该值,则将m_assigned设置为true,并在某个时间点检查m_assigned,如果为false,则发出警告。
我可能会补充说,以_开头的符号名称不是一个好主意。许多实现将此类符号视为其名称空间中的符号,并将其定义为宏。(不正确,但当他们这样做时,这并没有帮助。)一般而言,为了提高可读性,应避免在符号的两端使用_。
发布于 2013-09-19 16:40:24
你应该尝试一下boost:optional。它做的正是你想做的。
手册:http://www.boost.org/doc/libs/1_54_0/libs/optional/doc/html/index.html
https://stackoverflow.com/questions/18889561
复制相似问题