我想阻止调用某些函数。让我们忽略通过函数指针或其他东西调用函数的情况,只关注直接函数调用的情况。我可以用= delete
. 但是,发出的诊断信息并不十分丰富。我考虑使用static_assert
,您可以使用它提供自定义诊断消息。我static_assert(false, ...)
在函数体内放置了一条语句,希望它在函数被调用时触发。但是,事实证明static_assert
即使没有调用该函数也会失败。有什么建议么?
附加说明:该功能是无条件禁止的。所以,std::enable_if
这里不适用。这样一个函数的动机是我想阻止某些使用,否则它可以通过重载解析很好地编译。所以我不能只删除该功能。deprecated
不是我想要的。我想要一个编译错误,而不是一个警告。