我有一个必须只允许某些类型的函数模板。我见过其他问题,但他们使用了 boost 和 primitve 类型。在这种情况下,没有提升,它是一个用户定义的类。
前任:
template<typename T>
myfunc(T&)
{ ... }
template<>
myfunc(Foo&)
{
static_assert(false, "You cannot use myfunc with Foo");
}
static_assert
无论我是否myfunc
用Foo
对象调用,问题都会被调用。
myfunc
我只是想要某种方式让编译在被调用时停止Foo
。
我怎样才能实现这个功能?