在有些需求的情况下,我们期望调用接口的方法,期望传入的类型必须是我想要的类型如何做呢?譬如有如下的类型定义
struct OnlyInt { void f(int i) { // code here } }; OnlyInt oInt; oInt.f(1);// 可以 oInt.f(1.0);// 也可以,那如何禁止这做非法呢?
下面我们来修改一下上面的类的定义
struct OnlyInt { void f(int i) { } templatevoid f(T) = delete;// 禁止非整形调用 }; OnlyInt oInt; oInt.f(1);// 可以 oInt.f(1.0);// 不可以,编译报错
近期评论