┌─(~/Src/C++/main)────────────────────────────────────────────────(soon@archlinux:pts/7)─┐
└─(23:17:44)──> cat main.cpp ──(Sun,Sep15)─┘
#include <vector>
#include <utility>
typedef float float2[2];
std::pair<float2,unsigned int>
make_pair(const float2 &first,unsigned int second)
{
std::pair<float2,unsigned int> result;
result.first[0] = first[0];
result.first[1] = first[1];
result.second = second;
return result;
}
int main(int,char**)
{
unsigned int j = 0;
float2 ab = {1.0, 2.0};
std::vector<std::pair<float2, unsigned int> > myVec;
myVec.push_back(make_pair(ab, j));
return 0;
}
┌─(~/Src/C++/main)────────────────────────────────────────────────(soon@archlinux:pts/7)─┐
└─(09:28:17)──> clang++ main.cpp -std=c++11 ──(Mon,Sep16)─┘
┌─(~/Src/C++/main)────────────────────────────────────────────────(soon@archlinux:pts/7)─┐
└─(09:28:39)──> clang++ main.cpp -std=c++11 -stdlib=libc++ ──(Mon,Sep16)─┘
In file included from main.cpp:1:
In file included from /usr/include/c++/v1/vector:261:
In file included from /usr/include/c++/v1/__bit_reference:15:
In file included from /usr/include/c++/v1/algorithm:593:
/usr/include/c++/v1/utility:283:11: error: array initializer must be an initializer list
: first(_VSTD::forward<first_type>(__p.first)),
^
main.cpp:13:10: note: in instantiation of member function 'std::__1::pair<float [2],
unsigned int>::pair' requested here
return result;
^
In file included from main.cpp:1:
In file included from /usr/include/c++/v1/vector:261:
In file included from /usr/include/c++/v1/__bit_reference:15:
In file included from /usr/include/c++/v1/algorithm:593:
/usr/include/c++/v1/utility:246:11: error: array initializer must be an initializer list
: first(__p.first),
^
/usr/include/c++/v1/memory:1685:31: note: in instantiation of member function
'std::__1::pair<float [2], unsigned int>::pair' requested here
::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
^
/usr/include/c++/v1/memory:1612:18: note: in instantiation of function template
specialization 'std::__1::allocator<std::__1::pair<float [2], unsigned int>
>::construct<std::__1::pair<float [2], unsigned int>, std::__1::pair<float [2],
unsigned int> >' requested here
{__a.construct(__p, _VSTD::forward<_Args>(__args)...);}
^
/usr/include/c++/v1/memory:1493:14: note: in instantiation of function template
specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::pair<float
[2], unsigned int> > >::__construct<std::__1::pair<float [2], unsigned int>,
std::__1::pair<float [2], unsigned int> >' requested here
{__construct(__has_construct<allocator_type, pointer, _Args...>(),
^
/usr/include/c++/v1/vector:1535:25: note: in instantiation of function template
specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::pair<float
[2], unsigned int> > >::construct<std::__1::pair<float [2], unsigned int>,
std::__1::pair<float [2], unsigned int> >' requested here
__alloc_traits::construct(this->__alloc(),
^
main.cpp:21:9: note: in instantiation of member function
'std::__1::vector<std::__1::pair<float [2], unsigned int>,
std::__1::allocator<std::__1::pair<float [2], unsigned int> > >::push_back' requested
here
myVec.push_back(make_pair(ab, j));
^
2 errors generated.