是std :: vector <bool> :: resize标准的最终默认参数吗?

P45*_*ent 0 c++ vector visual-c++

我的编译器(MSVC2012)默认false为最终参数

std::vector<bool>::resize(std::vector<bool>::size_type, bool)

这是标准的C++还是Microsoft扩展?

我不认为对于非专业化而言resize,由于大小增加而引入的任何元素都未初始化.

http://en.cppreference.com/w/cpp/container/vector_bool似乎没有说清楚.

Mik*_*our 5

这是标准的C++还是Microsoft扩展?

是的,默认参数是标准的.C++ 11 [vector.bool]指定

void resize(size_type sz, bool c = false);
Run Code Online (Sandbox Code Playgroud)

我不认为对于非专业化调整大小是正确的,其中由于大小增加而引入的任何元素都未初始化.

是的; 虽然由于C++ 11是由两个重载而不是默认参数实现的,所以如果你没有指定一个值,那么它们是值初始化的,而不是从一个初始值初始化的复制.