cpp

オーバーライドとオーバーロードは全く別物

このエントリーをはてなブックマークに追加
EffectiveJavaを読んでて、C++でも当てはまるのかな?と思って試してみたら当てはまったので… まとめ オーバーライドされたvirtu

CEDEC2015のCoverityクイズをどう直すか

このエントリーをはてなブックマークに追加
CEDEC2015では、Coverity社のブースでバグのあるコードが掲示されていました。 バグが入ったC++コードらしい。#CEDEC201

構造体のサイズはsizeofをちゃんと使うべき

,
このエントリーをはてなブックマークに追加
以下のコードはApple LLVM version 6.1.0 (clang-602.0.53)で8と12を出力します。 ですが、intは4byte、boolは1byteなので

C言語でのスレッド処理

,
このエントリーをはてなブックマークに追加
C言語でのスレッド処理と、ロックの仕方をまとめました。 他の言語のようにスレッド用のクラスを継承するのでは無く、 別スレッドで実行する関数のポイ

インライン展開についての追加調査

このエントリーをはてなブックマークに追加
昨日の記事で、インライン展開について調べましたが、 よくよく考えると片手落ちだったので追加調査しました。 インライン展開がどう展開されるのかを調

インライン展開がどう展開されるのかを調べた

このエントリーをはてなブックマークに追加
C++コンパイラは、関数呼び出し部分にその関数の内容を展開し、 関数呼び出しのオーバーヘッドを削減する、インライン展開をします。 インライン展開

size_tは環境によって定義が変わるという話

このエントリーをはてなブックマークに追加
size_tが何bitになるかは環境によって定義が異なります。 そのため、以下のコードは多くの32bit下で上手くいきますが、64bit化など

void型のポインタとint型を相互変換するなという話

このエントリーをはてなブックマークに追加
int型をvoid *に変換する場合も、その逆の場合も、32bitだと問題なく動くことが多いため、 コンパイラもエラーにしない場合が多いです。 で

汎用ポインタを使う

このエントリーをはてなブックマークに追加
int型のポインタとchar型のポインタは違う型のため、同じものとして扱うことは出来ません。 ですが、実際にはポインタ型はメモリ上の特定アドレ

C++で少しでもビルド速度を速くする方法

このエントリーをはてなブックマークに追加
結論 キャッシュを使う 不要なinclude削除 static or dynamic library化する 並列コンパイルする 分散コンパイルする いいパソコンを使う C++のビルドを