我正在寻找一个示例代码,该代码显示某些参数类型无法使用默认参数进行分配。我的意思是,我想反驳“您可以为函数中的每个参数定义默认参数”的说法,或者实际上是真的吗?
感谢您的帮助和耐心等待
这可能是一个极端的情况,但是您不能提供参数包的默认值:
template <typename... Args>
void foo(Args... = 5) {}; //fails to compile
另一种极端情况是不可构造的类,(但函数也不能以常规方式调用):
struct S{
S() = delete;
S(const S&) = delete;
};
void foo(S = {}); // Wrong