タグ

2020年11月22日のブックマーク (1件)

  • [C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私

    inline名前空間はC++11から追加された機能で、その中にあるものは透過的に(名前空間がないかのように)アクセスすることができます。一見使いどころがなく見られがちですが、うまく使えばとても便利に活用することができます。 1. using namespaceの範囲を限定する 2. APIのバージョニング 3. ABIのバージョニング リンクエラーにする ABI互換性を確保する 4. 名前の衝突を回避する 参考文献 1. using namespaceの範囲を限定する これは標準ライブラリではユーザー定義リテラルの定義と利用でよく利用されます。 例えば、std::string_viewを簡易利用するためのsvリテラルは次のように宣言されています。 namespace std { // string_viewtemplate <class CharT, class Traits = c

    [C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私