0

共通のヘッダーから 2 つの異なる翻訳単位 (つまり、cpp ファイル) に含める必要がある関数があります。

匿名の名前空間を使用して、この関数を競合なしで両方の TU に含めることができますが、これを達成するための最良の方法は何だろうと思っています (静的ですか? グローバルは機能しないと思います、複数の定義)

4

3 に答える 3

1

コンパイラがこの関数を各 CU の別の関数と見なしたい場合は、名前のない名前空間にその定義を含めることができます。名前のない名前空間で宣言された C++ 2011 標準エンティティによると、内部リンケージがあります。

于 2013-11-06T15:58:57.380 に答える