Skip to content

vector<bool> fails to compile its (iterator, iterator) constructor #12446

@timurrrr

Description

@timurrrr
Bugzilla Link 12074
Resolution FIXED
Resolved on Feb 27, 2014 18:27
Version trunk
OS Windows NT
Blocks llvm/llvm-bugzilla-archive#12477
CC @benlangmuir,@DougGregor,@tritao,@rnk

Extended Description

$ clang++.exe --version
clang version 3.1 (trunk 150962)
Target: i686-pc-win32
Thread model: posix

$ more vector_bool.cpp
#include
int main() {
std::vector foo(NULL, NULL);
}


$ clang++.exe vector_bool.cpp
[3 errors including]
In file included from vector_bool.cpp:1:
In file included from c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:6:
In file included from c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\memory:6:
In file included from c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\iterator:6:
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xutility:995:3: error: template argument for template type parameter must be a type
iterator_traits<_Iter1>::iterator_category,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:1044:19: note: in instantiation of function template specialization 'stdext::unchecked_copy<unsigned
int *, unsigned int *>' requested here
pointer _Ptr = _STDEXT unchecked_copy(_VEC_ITER_BASE(_Last), _Mylast,
^
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\yvals.h:490:27: note: expanded from macro '_STDEXT'
#define _STDEXT ::stdext::
^
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:1097:3: note: in instantiation of member function 'std::vector<unsigned int, std::allocator >::erase' requested here
erase(begin(), end());
^
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:871:3: note: in instantiation of member function 'std::vector<unsigned int, std::allocator >::_Assign_n' requested here
_Assign_n(_Count, _Val);
^
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:1946:10: note: in instantiation of member function 'std::vector<unsigned int, std::allocator<unsigned

  int> >::assign' requested here
            _Myvec.assign(_Num, (_Ty)_Val ? -1 : 0);
                   ^

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\vector:1932:3: note: in instantiation of function template specialization 'std::vector<bool,
std::allocator >::_BConstruct' requested here
_BConstruct(_First, _Last, _Iter_cat(_First));
^
vector_bool.cpp:3:21: note: in instantiation of function template specialization 'std::vector<bool, std::allocator >::vector' requested here
std::vector foo(NULL, NULL);
^
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xutility:960:16: note: template parameter is declared here
template<class _Cat1, class _Cat2>
^


This prevents googletest from building under clang++

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillac++

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions