Странное несоответствие типов в C ++ - PullRequest
2 голосов
/ 23 февраля 2012

Мне нужна помощь, как такое несоответствие типов вообще возможно?Когда я подставляю все внутри, это точно такой же тип, включая константность.

cgVertex3D.cpp:33: error: no matching function for call to 
std::vector<Polygon3D*, std::allocator<Polygon3D*> >::push_back(const Polygon3D*&)

/usr/include/c++/4.4/bits/stl_vector.h:733:
note: candidates are: 

void std::vector<_Tp, _Alloc>::push_back(const _Tp&) 
[with _Tp = Polygon3D*, _Alloc = std::allocator<Polygon3D*>]
<near match>       

1 Ответ

6 голосов
/ 23 февраля 2012

Это _Tp, то есть const, и в этом случае _Tp является указателем.Таким образом, замена const _Tp на самом деле приведет к Polygon3D *const, а не const Polygon3D *, следовательно, несоответствие.

...