C++11 template で暗黙の型変換を防ぐ
先に普通の関数定義をして、そのあとテンプレート関数定義を書いて存在を消しておく
class Hoge { public: void do_something(uint8_t* hoge) { printf(hoge); } template <class Ty> void do_something(Ty x) = delete; }; int main() { auto hoge = Hoge(); uint8_t c; uint32_t i; hoge.do_something(&c); // OK hoge.do_something(&i); // NG };