这样做让我觉得浪费时间。考虑
std::complex<double> *a = new std::complex<double>[1<<28];
这可能是近乎瞬时的,并且只有在页面被使用后才会抓取页面,但事实并非如此。
看来我不是唯一一个对此感到困扰的人:
http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2011/01/msg00124.html
GCC 的 libstdc++ (4.6.3) 甚至对这个事实幸灾乐祸:
/// Default constructor. First parameter is x, second parameter is y.
/// Unspecified parameters default to 0.
_GLIBCXX_CONSTEXPR complex(const _Tp& __r = _Tp(), const _Tp& __i = _Tp())
: _M_real(__r), _M_imag(__i) { }
更糟糕的是,由于 C++ 标准没有指定默认构造函数,甚至可能需要这种行为。(这是真的?)