可以在编译时对std :: bind进行类型检查吗?

时间:2012-01-30 12:12:46

标签: c++ boost c++11 typechecking

是否可以静态输入检查std::bind的参数?我很想使用它,但它让我几乎可以带走任何东西;例如,std::bind(1,2);被接受。或者,我可以使用std::result_of滚动我自己的解决方案。

1 个答案:

答案 0 :(得分:2)

我还不确定是否可以bind可靠地拒绝这些结构。但如果可以的话,这样做会是一种延伸。

标准中的Requires子句告诉客户他必须做些什么来避免未定义的行为。它并没有告诉供应商他必须做些什么来进行整合。所以std::bind(1,2)是未定义的行为。它可以做任何事情。导致编译时错误将是一个很好的未定义行为,但不是必需的。