• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    ページファイル名の付け方

    cpprefjpサイトでは、ページファイル名の付け方について、いくつかの共通ルールがあります。

    基本ルール

    • 機能名をページファイル名とする
    • マクロは小文字とする
    • 大文字 + 区切り文字 + 拡張子で構成される名前のファイルは、MarkdownからHTMLへの変換の際に無視される
      • README.mdなど

    演算子のファイル名

    便宜的に、コンストラクタやデストラクタのような特殊メンバ関数も演算子という扱いにしている。

    演算子 演算子名 ファイル名 備考
    コンストラクタ op_constructor クラス名をファイル名にはしない
    デストラクタ op_destructor ファイル名に ~ (チルダ) が含まれないようにする
    クラステンプレートの推論補助 op_deduction_guide
    operator= 代入演算子 op_assign
    operator[ ] 添字演算子 op_at
    operator() 関数呼び出し演算子 op_call
    operator* (単項) 間接参照演算子 op_deref dereferenceの略
    operator-> ポインタアクセス演算子 op_arrow
    operator+= 加算の複合代入 op_plus_assign
    operator-= 減算の複合代入 op_minus_assign
    operator*= 乗算の複合代入 op_multiply_assign
    operator/= 除算の複合代入 op_divide_assign
    operator/= パス要素加算の複合代入 op_append_assign この演算子はファイルシステムの文脈で特殊な意味を持つ。
    対応するメンバ関数append()と合わせた命名
    operator%= 剰余の複合代入 op_modulo_assign
    operator<<= 左ビットシフトの複合代入 op_left_shift_assign
    operator>>= 右ビットシフトの複合代入 op_right_shift_assign
    operator&= ビット論理積の複合代入 op_and_assign
    operator|= ビット論理和の複合代入 op_or_assign
    operator^= ビット排他的論理和の複合代入 op_xor_assign
    operator++ インクリメント op_increment 前置・後置は同じページ内で解説する
    operator-- デクリメント op_decrement 前置・後置は同じページ内で解説する
    operator+ (単項) 単項プラス演算子 op_unary_plus
    operator- (単項) 単項マイナス演算子 (符号反転) op_unary_minus
    operator! 論理反転演算子 op_not
    operator~ ビット反転演算子 op_flip
    operator== 等値比較演算子 op_equal
    operator!= 非等値比較演算子 op_not_equal
    operator< 小なり演算子 op_less
    operator> 大なり演算子 op_greater
    operator<= 以下演算子 op_less_equal
    operator>= 以上演算子 op_greater_equal
    operator<=> 三方比較演算子 op_compare_3way
    operator+ (二項) 加算演算子 op_plus
    operator- (二項) 減算演算子 op_minus
    operator* (二項) 乗算演算子 op_multiply
    operator/ (二項) 除算演算子 op_divide
    operator/ (二項) パス要素加算の演算子 op_append この演算子はファイルシステムの文脈で特殊な意味を持つ
    operator/ (二項) カレンダー構文の演算子 op_append 時間・日付ライブラリにおいて、この演算子はカレンダーのYYYY/MM/DDのような表記をできるようにする意味をもつ
    operator% (二項) 剰余演算子 op_modulo
    operator& ビット論理積演算子 op_and
    operator| ビット論理和演算子 op_or
    operator^ ビット排他的論理和演算子 op_xor
    operator&& 論理積演算子 op_logical_and
    operator|| 論理和演算子 op_logical_or
    operator<< ビット左シフト演算子 op_left_shift
    operator>> ビット右シフト演算子 op_right_shift
    operator<< 出力ストリーム演算子 op_ostream ビットシフトと意味論が異なるため、別ページとしている
    operator>> 入力ストリーム演算子 op_istream ビットシフトと意味論が異なるため、別ページとしている

    C++にはこの表に含まれない演算子もいくつかあるが、ここでは標準ライブラリでオーバーロードされ、本サイトが掲載している演算子のみを記載している。

    この表に含まれない演算子として、以下のようなものもある:

    • 型変換演算子
      • operator intのようなintへの型変換演算子は、op_intのようなファイル名とする
      • 型の別名が使用される場合もあるが、operator int_type型変換演算子の場合は、op_int_typeをファイル名とする
      • 規格でoperator unsignedを使用しているところは、operator unsigned intとし、op_unsigned_intをファイル名とする。unsignedunsigned intの短縮だが、この短縮法は認知度が低いため
    • リテラル演算子
      • operator ""iのようなiサフィックスのリテラル演算子は、op_iのようなファイル名とする

    同名のメンバ関数と非メンバ関数がある場合

    非メンバ関数側のページファイル名末尾に_freeを付ける。

    freeは「非メンバ関数 (non member function)」の通称である「フリー関数 (free function)」からきている。これを採用した理由は以下:

    • _non_member_functionは長いため、短くしたい
    • memberは男性器を意味するため、functionは省略できない
    • 規格用語にはないが、ページファイル名を短くするために便宜上freeを採用する

    その他、例外的なページファイル名

    • std::_Exit()は、ページファイル名を先頭アンダースコアしたところ、Chromeブラウザで404 Page Not Foundとなったため、回避策として末尾にアンダースコアを付けている