メッセージIDに対応する一連の定数文字列があります。私は、これらの定数がアプリケーションのさまざまなクラスで使用されるため、これらの定数の集中化された場所を作成しようとしています。私はもともと、それらを含む名前空間を作成するつもりだった。名前空間にメッセージ定数をラップする
// MessageIDs.hh
namespace MessageIDs {
const std::string kMessage1("Message1");
...
}
それから私は、内部/外部結合の定義について読み始め、今、私は質問のカップルを持っています。
1)定数をexternにしないという唯一の欠点は、内部結合を持つのでテンプレート引数として使用できないという事実だけですか?
2)わからない私のアプローチには他に欠点がありますか?
代わりに、グローバルな 'enum'を使用します。 –