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+ と記述します。

<< QA・C++ 特有のFAQに関するFAQ一覧へ戻る