我正在实现一个类型(TParameter),该类型必须是布尔值(以指示该值是否有效)和任意类型的数据值。
想法是,如果方法采用某种类型的参数,则可以将其设置为false,以指示该值无效。
像这样:
someVariable = 123; // use the value 123
someVariable = false; // mark variable as invalid/to-be-ignored
Run Code Online (Sandbox Code Playgroud)
我的代码的简化版本:
template <class T>
class TParameter
{
public:
TParameter()
: m_value(),
m_valid(false)
{}
// assignment operators
TParameter& operator= (const T& value)
{
m_value = value;
m_valid = true;
return *this;
}
TParameter& operator= (bool valid)
{
m_valid = valid;
return *this;
}
private:
T m_value;
bool m_valid;
};
void test()
{
TParameter<int16_t> param;
param = false;
param …Run Code Online (Sandbox Code Playgroud)