C++相談室 part15
■ このスレッドは過去ログ倉庫に格納されています
0440デフォルトの名無しさん
NGNGexplicitは、単にT*が暗黙にcounted_ptr<T>に変換されるのを防ぐ
ためだからちと違うんでない?
前者でも counted_ptr<Base> ptr(new Derived()); は書ける。
後者は前者を包含するけども、↑を書く時点では前方参照でもOK
らしい、ちゅうところが違うみたい。
#同じコンパイル単位に定義は必要だが。
#include "counted_ptr.h"
class Base; class Derived;
void func(Derived *p) { counted_ptr<Base> ptr(p); } // 前方参照のみ
class Base {}; class Derived : public Base {};
g++3.2では、前者はNG、後者ならOKでした。
テンプレートにマッチすることで、型のチェックが遅延するのかな?
■ このスレッドは過去ログ倉庫に格納されています