Я получаю ошибку компилятора на QNX 660 с GCC 4.9.3 при создании экземпляра контейнера std, такого как std :: list с типом uint64_t.
#include <iostream>
#include <list>
#include <stdint.h>
int main()
{
typedef std::list<uint64_t> list_type;
list_type list;
for(int i=0; i<10; i++){ list.push_back(i); }
for(list_type::iterator it = list.begin(); it != list.end(); it++)
{ std::cout<<*it<<std::endl; }
return 0;
}
Ошибка компилятора, которую я получаю:
/opt/qnx660_493/target/qnx6/usr/include/c++/4.9.3/ext/new_allocator.h:93:7: error: 'const _Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::const_reference) const [with _Tp = long long unsigned int; __gnu_cxx::new_allocator<_Tp>::const_pointer = const long long unsigned int*; __gnu_cxx::new_allocator<_Tp>::const_reference = const long long unsigned int&]' cannot be overloaded
address(const_reference __x) const _GLIBCXX_NOEXCEPT
^
/opt/qnx660_493/target/qnx6/usr/include/c++/4.9.3/ext/new_allocator.h:89:7: error: with '_Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::reference) const [with _Tp = long long unsigned int; __gnu_cxx::new_allocator<_Tp>::pointer = long long unsigned int*; __gnu_cxx::new_allocator<_Tp>::reference = long long unsigned int&]'
address(reference __x) const _GLIBCXX_NOEXCEPT
Я не получаю эту ошибку с gcc-4.9.3 в Linux (Ubuntu 16.04).Я также не получаю ошибку с gcc-4.7.3 на QNX 660. Также с int64_t
на QNX 660 и GCC 4.9.3 я не получаю ошибку компилятора.Только сочетание uint64_t
с GCC 4.9.3 на QNX 660 приводит к этой ошибке компилятора.