没有 - 除非没有通过论证

ma1*_*a13 0 c++ noexcept c++11

你能说我怎么断言,是函数noexcept(没有传递参数)?谢谢.

sky*_*ack 6

假设你在问(感谢@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)), "!");
}
Run Code Online (Sandbox Code Playgroud)

f在任何情况下都不会被调用,这就是未评估操作数的(我说)性质.

最有趣的部分是,std::declval如果你没有变量用作参数而你不知道如何构造它,你可以将它与它结合起来.
举个例子:

#include<utility>

struct S { S(int) {} };

void f(S) noexcept { }

int main() {
    static_assert(noexcept(f(std::declval<S>())), "!");
}
Run Code Online (Sandbox Code Playgroud)

请注意S,即使它没有默认构造函数,我也不必传递任何东西来构造.

这通常足以解决不传递参数的要求.