迁移带有复杂签名的std::unary_function至C++17的问题求助
迁移带有复杂签名的std::unary_function至C++17的问题求助
各位大佬好!我最近在把一个老旧的代码库迁移到C++17标准,核心目标就是清理掉auto_ptr、std::unary_function这类已经被废弃的特性。之前已经顺利搞定了好几处std::unary_function的替换,但这次碰到的这个场景实在卡壳了,想来请教大家的思路!
先给大家交代下当前代码里的两个基础前置定义:
一个是RemoveConstRef模板,代码如下:
template <class T> struct RemoveConstRef { typedef T type; };
另一个是FPTRAITS_BASIC宏,它的部分实现是这样的:
#define FPTRAITS_BASIC( _type, _paramType ) \ template <> \ struct Traits<_type> { \ typedef _type param_type; \ typedef _type return_type; \ // 省略原有的其他与std::unary_function相关的逻辑
原来的代码里应该是通过这个宏结合std::unary_function来定义函数的特性,但C17里std::unary_function已经被移除了,我完全摸不准该怎么改造这部分逻辑,才能既保留原有功能,又符合C17的规范。有没有大佬能给我指条明路,告诉我该怎么替换这部分和std::unary_function绑定的代码呀?
备注:内容来源于stack exchange,提问作者Ben L
相关产品推荐
相关产品推荐

