テンプレートを使用したインライン キーワード
テンプレートを使用した inline キーワードの使用を検討する場合、コンパイラの仕様を考慮すると、それが冗長であるかどうかという疑問が生じます。インライン化の利点を判断する能力。
答え:いいえ、それは無関係ではありませんアリ
コンパイラの認識にもかかわらず、inline キーワードはテンプレートに関連したままです。通常、関数テンプレートはデフォルトではインラインではありませんが、明示的に特殊化することでインラインにすることができます。
特定のケース
inline キーワードを省略すると問題が発生する場合があります。 。次の例を考えてみましょう。
#include "tpl.h"
#include "tpl.h"
#ifndef TPL_H #define TPL_H template<class T> void f(T) {} template<class T> inline T g(T) {} template<> inline void f<>(int) {} // OK: inline template<> int g<>(int) {} // error: not inline #endif
このコードをコンパイルすると、g<> が原因で複数の定義エラーが発生します。は明示的にインラインとしてマークされていません。
経験則
一貫性を維持し、潜在的なエラーを回避するには、インラインであることを目的とした関数テンプレートに inline キーワードを使用することを検討してください。 。これは、Vandevoorde 氏/Josuttis 氏の『C Templates: The Complete Guide』で提案されている経験則と一致しており、本当に必要な場合にはインラインで記述することを推奨しています。
以上がC テンプレートで「inline」キーワードを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。