c++

関数ポインタ

c c++

関数ポインタを触ってなかったら完全に忘れてしまっていたのでメモ。以下サンプルコードの3行目で引数がint, char*で戻り値がint型の関数ポインタの別名を定義している。 main関数の1行目でFuncを宣言してprint()やprintHello()のポインタとして使うことがで…

log4cppの調査

c++

会社でlog4cppというC++のロギングライブラリを利用しているためmacで調査がてら使ってみた。log4cppはlog4jというjavaのライブラリのC++版らしく詳しく解説されたページがある。 Log4J�O�������`�ڎ� 設定ファイルを読み込んでログ出力をハンドリングできる…

boost_regexの正規表現

c++

C++で正規表現を使う必要が出てきたのでboost::regex_merge()に関して調べている。 なんでregex_replace()じゃなくて"duplicated"なregex_merge()なのか? 開発環境のboostのバージョンが1.30.2なんだからしょうがないのです。1.30.xはもうドキュメントにも…

値渡しにconstを付ける?付けない?

c++

最近会社でプロジェクトメンバーにソースコードレビューしてもらう習慣ができました。 自分のソースコードをリーダー・後輩にレビューしてもらったんですが自分のコードを晒す事と人のコードを読む事に勝る勉強はない。それで今回は一つの指摘点にスポットを…

staticな整数型定数メンバ

c++

staticな整数型定数メンバは、 コンパイラにもよるがクラス定義時に初期化できる(整数型のみ)らしい。 C++ Labyrinth Effective C++第3版 2項参考 class func { public: static const int NUM = 10; // 初期化可能 char buf[NUM]; // 配列のサイズとして使…

c++で忘れがちなキーワード

c++

あんまり使わないけど、忘れてると宣言されてた時に困るんでmemo。 explicit explicitで宣言されたコンストラクタは暗黙の型変換を許さない以下のコードでexplicitを宣言しない場合コンパイルができてしまう。 class func { private: int x_; public: explic…