Rya*_*ing 6 c++ language-lawyer c++14
在昨天处理了一些奇怪的东西之后,我的错误的原因是它std::bind
可能需要更多的参数来进行调用
int f(int);
auto b = std::bind(f);
b(1,2,3,4,5,6); // 2-6 are discarded
Run Code Online (Sandbox Code Playgroud)
cppreference声称:
如果调用g()时提供的某些参数与存储在g中的任何占位符不匹配,则会评估并丢弃未使用的参数.
通过标准搜索我没有看到任何支持这一点.唯一可能使这个没问题的是:
20.9.2/4转发调用包装器是一个调用包装器,可以使用任意参数列表调用,并将参数作为引用传递给包装的可调用对象
因为,(我想)它并没有说"提供所有论据",但我不相信.
我在这个问题中的"为什么"由两部分组成
什么阅读标准明确表示std::bind
允许放弃论证?
为什么这是理想的行为?对我来说,这感觉非常不可靠.我想不出一个我想要的非人为的情况,但可以想到它会成为一个问题.它是否以某种方式使我的实现更容易?
归档时间: |
|
查看次数: |
126 次 |
最近记录: |