你能说我该如何断言,是函数noexcept(不传递参数)?谢谢。否 - 除非不通过参数
回答
假设你问:
我怎么可以断言,一个功能是
noexcept
不调用呢?
答案是你不能,因为noexcept
说明符在重载之间可能不同。例如:
int a(int) noexcept;
int a(int, int);
// What would `noexcept(a)` mean?
的#include
例如我认为该返回错误值 的#include
能否请你张贴在wandbox或相似? –
假设你问(感谢@VittorioRomeo的假设):
我怎么可以断言,一个功能是noexcept不调用呢?
您可以使用noexcept
运算符来做到这一点,因为它的操作数是未评估的操作数。
在其他方面,你可以这样做:
void f(int) noexcept { }
void f(int, int) { }
int main() {
static_assert(noexcept(f(0)), "!");
static_assert(not noexcept(f(0, 0)), "!");
}
f
不会叫在任何情况下,这是一个未计算的操作数(让我说)性质。
最有趣的部分是,如果您没有变量作为参数使用,而且您不知道如何构造变量,则可以将它与std::declval
结合使用。
作为一个例子:
#include<utility>
struct S { S(int) {} };
void f(S) noexcept { }
int main() {
static_assert(noexcept(f(std::declval<S>())), "!");
}
请注意,我没有通过任何构建S
,即使它有没有一个默认的构造函数。
这通常足以满足通过无参数的要求。
- 1. 跳过pytest,除非存在参数
- 2. 通过MSBuild参数排除/删除.csproj
- 3. 通过非字符*参数execvp
- 4. 线程通过函数,除非不为空
- 5. 删除某些查询字符串参数,除非通过重写添加
- 6. 带参数ngClick不通过参数
- 7. 参数不通过柴
- 8. 参数不会通过
- 9. 非模板参数为什么不能通过std :: vector
- 10. Coffeescript通过参数清除超时
- 11. 解析Android - 通过参数删除行
- 12. 通过参数
- 13. 通过参数
- 14. 通过参数
- 15. C++:通过模板传递参数Vs通过函数参数
- 16. 通过app_data参数链接到粉丝页删除app_data参数
- 17. php函数调用参数不通过
- 18. 通过RealProxy参考参数
- 19. 除非通过URL调用,否则MVC3 outputcache不会缓存。正确?
- 20. 的NSTimer不通过参数选择
- 21. Cakephp通过参数
- 22. 参数通过cron
- 23. 不允许任何用户删除记录,除非通过存储过程
- 24. 除非明确引用,否则Kotlin无法识别参数
- 25. a laravel5删除,如何通过2个参数删除操作
- 26. 通过UNIX参数扩展
- 27. 如何通过非默认参数与默认参数在Python Django表单
- 28. 不同通过机制的参数值
- 29. RedirectToAction不通过所有参数
- 30. 通过两个不同的参数
一般来说,如果不指定参数,也不能指定参数 - 可能会有多个同名的重载,有些是noexcept,有些则不是。 –