在我的代码中我有ints,bools,pointers等等,我也有一些由我定义的类型,我typedef如何管理默认值初始化,就像它发生在带有控制器的对象中一样?
我想确定一下
T var;
Run Code Online (Sandbox Code Playgroud)
如果不接触,总是等于我的默认值,我喜欢这样做而不解析每行代码,并且手动更改默认值而不使用预处理器宏.
这可能吗?对于新typedef的可以定义默认值?
在C++ 11中,您可以编写T var{};以将值初始化设置为默认值.
在C++ 03中,您可以编写一个非POD包装器,其默认构造函数将被调用T var;:
template<class T>
struct default_initializer{
default_initializer() : value() {}
default_initializer(T const& v) : value(v) {}
T value;
};
// somewhere in code
default_initializer<T> var; // calls default ctor and initializes 'value'
// to its default value
Run Code Online (Sandbox Code Playgroud)
这将允许您安全地默认初始化甚至原始,POD和聚合类型,这些类型通常由T var;声明保持未初始化.