C++のstd::equalやstd::mismatchで指定範囲の要素を比較する

C++のstd::equalやstd::mismatchで指定範囲の要素を比較する std::equalは指定した範囲をoperator==で比較します。 std::vector<std::string> v …

Continue reading ‘C++のstd::equalやstd::mismatchで指定範囲の要素を比較する’ »

boost::splitで文字列を分割する

よくある文字列の分割処理は、boost::splitを使うと簡単です。 boost::splitの引数 boost::splitは3つの引数をとります。 出力シーケンス 入力コレクション 区切り文字を判断する述語 boo …

Continue reading ‘boost::splitで文字列を分割する’ »

C++Builder XEのifstreamでCodeGuardがエラーを検出する

次のコードをC++Builder XEで実行すると、CodeGuardがエラーを検出する。 #include <fstream> #include <string> const UnicodeSt …

Continue reading ‘C++Builder XEのifstreamでCodeGuardがエラーを検出する’ »

boost::assignでコンテナに要素を追加するコードを簡潔に記述する

boost::assignを使うと、コンテナに要素を追加するコードを簡潔に記述することができます。 必要なヘッダ #include <boost/assign.hpp> 一般的にstd::vectorに要素を …

Continue reading ‘boost::assignでコンテナに要素を追加するコードを簡潔に記述する’ »

boost::operatorsで演算子を自動的に定義する

boost::operatorsを使うと、主要な演算子を定義するだけで、残りの演算子を自動的に定義することができます。 ヘッダファイル #include <boost/operators.hpp> boost …

Continue reading ‘boost::operatorsで演算子を自動的に定義する’ »

boost::noncopyableでコピー禁止のクラスを作る

C++では、クラスを書くとコピーコンストラクタと代入演算子が自動的に定義されます。 boost::noncopyableを使うと、コピーコンストラクタと代入演算子をprivateに定義することで、コピーのできないクラスに …

Continue reading ‘boost::noncopyableでコピー禁止のクラスを作る’ »

C++では配列をゼロで初期化するには空の{}で良い

『本の虫: 多くのプログラマは言語を表面的な理解だけで使っている』より。 C++では配列をゼロで初期化するには空の{}で良い。 //配列をゼロで初期化 int a[100] = {}; 勉強になった。

Evernoteが.NET FrameworkからC++に変更。起動が5倍速く、メモリー使用量も半分に。

Evernote 4 for Windowsが完成しました! « Evernote日本語版ブログ 以前のEvernote3.5では.Net Framework+WPFを使っていたため、起動が遅く、消費メモリー …

Continue reading ‘Evernoteが.NET FrameworkからC++に変更。起動が5倍速く、メモリー使用量も半分に。’ »