8.96 --guiding_decls、--no_guiding_decls

テンプレート関数の導入宣言を認識するかどうかを C++ で指定できます。

導入宣言とは、関数テンプレートのインスタンスに一致するが、その定義が関数テンプレートから派生するため明示的な定義がない関数宣言を指します。
--no_guiding_decls--old_specializations と組み合わせて使用した場合、非メンバテンプレート関数の特殊化は認識されません。独立関数の定義として処理されます。

オプション --guiding_decls は、C++ 標準に準拠していない従来のソースコードを移行する目的でのみ提供されています。他の目的でこのオプションを使用することはお勧めしません。

モード

このオプションは、ソース言語が C++ の場合にのみ有効です。

デフォルト

デフォルトは --no_guiding_decls です。

template <class T> void f(T)
{
    ...
}
void f(int);
導入宣言として考えた場合、f(int) はテンプレートのインスタンスになります。導入宣言でない場合は独立した関数になるので、定義を記述する必要があります。
関連する参考文書
8.140 --old_specializations、--no_old_specializations
8.6 --apcs=qualifier...qualifier
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.