存在的所有参数的默认参数C ++

问题描述 投票:0回答:2

我正在寻找一个示例代码,该代码显示某些参数类型无法使用默认参数进行分配。我的意思是,我想反驳“您可以为函数中的每个参数定义默认参数”的说法,或者实际上是真的吗?

感谢您的帮助和耐心等待

c++ parameter-passing default-arguments
2个回答
0
投票

这可能是一个极端的情况,但是您不能提供参数包的默认值:

template <typename... Args>
void foo(Args... = 5) {};  //fails to compile

0
投票

另一种极端情况是不可构造的类,(但函数也不能以常规方式调用):

struct S{
    S() = delete;
    S(const S&) = delete;
};

void foo(S = {}); // Wrong
© www.soinside.com 2019 - 2024. All rights reserved.