FAQ
QA・C/QA・C++
QA・C++ 特有のFAQ
ID.1
Q. 「依存基底クラスのルックアップ(-sdep+)」オプションの設定基準を教えてください。 QA C++全バージョン
A.
コンパイラの中には、識別子の名前検索(ルックアップ)の範囲をクラス・テンプレートの基底クラスにまで拡張するものと、そうでないものがあります。

お使いのコンパイラが、前者の挙動をする場合は、 「依存基底クラスのルックアップ(-sdep+)」オプション を設定する必要があります。後者の場合は、デフォルト(-sdep-)のままにします。

具体的には、お使いのコンパイラが次の ソースコードを エラーなくコンパイルできる場合は、-sdep+オプションを設定する必要があります。 // Error ==> -sdep- (default) // Success ==> -sdep+ template<typename T> struct U { typedef int result_type; }; template<typename T> class B : public U<T> { result_type fn(); // Problem }; int main(void) { return 0; }なお、設定方法は次の通りです。

GUIから設定する場合:
[コンパイラ パーソナリティ] の [拡張] タブで
[依存基底クラスのルックアップ]
チェックボックスを選択します。

設定ファイルを直接編集する場合:
-sdep+ と記述します。