programmingに関するCalCiumのブックマーク (3)

  • C++言語仕様 - 自分用メモとか

    class CSubClass : public CSuperClass { private: int subNum1, subNum2, subNum3; public: CSubClass(int n, int n1, int n2) : CSuperClass(n), subNum1(n1), subNum2(n2) { /// 代入での初期化は望ましくない。 subNum3 = n; } } 具体的には、subNum(n1), subNum2(n2), 等は、コンストラクタを呼び出して初期化しているのと同義です。 つまり、初期化子リストを用いず代入で初期化すると、(↑の例では、subNum3 がこれにあたる) 初期化子リストに無いメンバ変数が、デフォルトコンストラクタで初期化される。 デフォルトコンストラクタで初期化されたメンバ変数に、値を代入する。 ということになり、全く無意味

  • Duff's device - Wikipedia

    Duff's Device(ダフスデバイス)とは、C言語での可変長の連続的コピーをループ展開により最適化実装するときに直面する端数の問題を解決するための手法である。 C言語のswitch-case文が持つフォールスルーを利用して、アセンブリ言語で行われる技巧をC言語で実現している。1983年11月、ルーカスフィルムで働いていたトム・ダフが発見した。 背景問題[編集] ループ展開は、ループのための分岐回数を減らす技法である。指定されるループ回数が不明な場合、ループ展開すると回数が合わない場合が出てくるので、ループの途中にジャンプすることで調整する。例えば、8回ぶんのループを展開した場合、指定されたループ回数が8で割り切れないなら、その回数を8で割った剰余のぶんだけ処理を実行する位置にジャンプさせる。 ダフはそのような最適化を検討していてCでの技法を発見した。 来のバージョン[編集] 連続コ

  • Code Style Guidelines

    ContentsIndentationSpacingLine breakingBracesNull, false and zeroFloating point literalsNamesOther PunctuationPointers and References#include Statements"using" StatementsLambdasTypesClassesSingleton patternCommentsOverriding Virtual MethodsPython Indentation Use spaces, not tabs. Tabs should only appear in files that require them for semantic meaning, like Makefiles. The indent size is 4 spaces. R

    Code Style Guidelines
  • 1