2016年6月17日はじめましてプログラマーの松延です。今日はプログラムの話をしていこうと思います。みなさんはあるクラスに特定のメンバ関数が存在するかどうかを調べるメタ関数が欲しいと思ったことはないですか?既出感はありますが、そんな時に使えるメタ関数を作るマクロについて紹介しようと思います。};}*上記コードはマクロの改行文字は省略してあります。持っているかを調べることができます。std::true_type());です。この行では_ClassTypeの持つfunc_nameメンバ関数を同じ型のメンバ関数ポインタにキャストしています。マクロを使用したのは正直不本意でしたがC++static_cast<decltype(_ClassType::func_name)*>(&_ClassType::func_name)1static_cast<decltype(_ClassType::func_name)*>(&_ClassType::func_name)この部分に外部からfunc_nameを指定する方法が思いつかなかったためこのような形になりました。オーバーライドしている場合正しい結果を得られなくなる事があります。ちなみにこのコードはC++11が使用できるコンパイラでないとビルドが通らないのでご注意を。today)PREV社内研修NEXTゲームの面白さは《選択》にありコメント投稿は締め切りました。年末ポケモン大会が開かれた話。