プログラム:
#include<vector>
int main() {
std::vector<int>::size_type size=3;
std::vector<int> v{size};
}
でコンパイルすると
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
エラーが発生します:
ppp.cpp: In function ‘int main()’:
ppp.cpp:5:28: error: narrowing conversion of ‘size’ from ‘std::vector<int>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-fpermissive]
ppp.cpp:5:28: error: narrowing conversion of ‘size’ from ‘std::vector<int>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-fpermissive]
そしてhttp://www.cplusplus.com/reference/stl/vector/vector/に書かれています
explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );
そのコンストラクターが使用されることを期待していました。
誰か説明できますか?