
29 Nov
2011
29 Nov
'11
11:46 a.m.
Why is make_shared declared as
template
shared_ptr<T> make_shared( Arg1 const & arg1 ); rather than
template
shared_ptr<T> make_shared( Arg1 arg1 ); since the effect is that if you have a constructor that takes non-const references you cannot use make_shared( ) on it.
I guess it's because your compiler doesn't support && (i.e. perfect
forwarding is impossible).
http://www.boost.org/doc/libs/1_48_0/libs/smart_ptr/make_shared.html#functio...
<