在C++中将特定类型的所有变量初始化为特定的默认值

use*_*992 0 c++ default-value

在我的代码中我有ints,bools,pointers等等,我也有一些由我定义的类型,我typedef如何管理默认值初始化,就像它发生在带有控制器的对象中一样?

我想确定一下

T var;
Run Code Online (Sandbox Code Playgroud)

如果不接触,总是等于我的默认值,我喜欢这样做而不解析每行代码,并且手动更改默认值而不使用预处理器宏.

这可能吗?对于新typedef的可以定义默认值?

Xeo*_*Xeo 6

在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;声明保持未初始化.