暗黙の型変換を許さないマクロ by Google OpenFST
OpenFstのソース読んでたら、DISALLOW_EVIL_CONSTRUCTORSっていう変わった名前のマクロを見つけた。
暗黙の型変換を許さないマクロなんだけど、名前がいかしてるなぁ。どうも、Google Codeで検索する限りGoogle内の用語っぽいね。
OpenFst/fst/lib/compat.h より
#define DISALLOW_EVIL_CONSTRUCTORS(type) \ type(const type&); \ void operator=(const type&)
ってマクロを定義しておいて、
class example { private: DISALLOW_EVIL_CONSTRUCTORS(example) };
って使うみたい。明示的に暗黙の型変換を許さないということがわかって、ソース可読性も上がるね。ちょっと面白いテクニックだったので紹介。