1. 首页
  2. 数据库
  3. 其它
  4. C++ 11实现检查是否存在特定的成员函数

C++ 11实现检查是否存在特定的成员函数

上传者: 2021-01-15 06:16:23上传 PDF文件 61.71KB 热度 9次
问题提出 最近工作中遇到这样一个需求:实现一个ToString函数将类型T转换到字符串,如果类型T中含有同名方法ToString则直接调用。 这样一个ToString实现可以使用std::enable_if来做到,但是这里的难点在于如何判断类型T中存在这样一个ToString方法,以便可以放入enable_if中做SFINAE。 检查类中是否存在特定成员 相同的问题在知乎上有人提出过,@孙明琦的答案提供了一个用于检测特定检测子U在类型T下是否有效的检测器is_detected_v。其中用到了一个C++17的std::void_t,考虑到目前C++17还没得用,这个实现只作参考之用(事实上C++
用户评论