language: C++11 (gcc-4.7.2)
date: 708 days 16 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
#include <memory>
using std::shared_ptr;
 
class A {};
class B {};
 
int main() {
    shared_ptr<A> a;
    shared_ptr<const B> pb = a;
 
    return 0;
}
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/shared_ptr.h:52:0,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/memory:101,
                 from prog.cpp:1:
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/shared_ptr_base.h: In constructor 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(const std::__shared_ptr<_Tp1, _Lp>&) [with _Tp1 = A, _Tp = const B, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/shared_ptr.h:174:65:   instantiated from 'std::shared_ptr<_Tp>::shared_ptr(const std::shared_ptr<_Tp1>&) [with _Tp1 = A, _Tp = const B]'
prog.cpp:9:30:   instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/shared_ptr_base.h:579:51: error: cannot convert 'A* const' to 'const B*' in initialization