是" std :: is_callable"替换为" std :: is_invocable"在C ++ 17?

时间:2017-03-26 06:09:34

标签: c++ standards language-design c++17 typetraits

cppref删除了std::is_callable的条目页面,并改为使用std::is_invocable条目页。

但是,std::is_callable仍可在Visual Studio 2017中使用。

{+ 1}}在C ++ 17中使用std::is_callable正式[替换|弃用|删除]了吗?

1 个答案:

答案 0 :(得分:14)

是的,is_callable已按照p0604r0中的说明重命名为is_invocable。该文件包括该决定的理由:

  

is_callable重命名为is_invocable is_callable是特征的最自然名称,可回答函数调用表达式是否有效或不是,这是表达式的严格子集, INVOKE 支持,而且更改的名称is_invocable更清晰地表达了它的含义。释放名称is_callable使我们将来可能会引入纯is_callable特征。