我一直在尝试清理继承的代码库。它广泛使用包含尾随返回类型的模板函数。它还包括许多指向非模板化、非成员函数的函数指针。在清理过程中,我发现在 Visual Studio 2013 下等效于以下工作的代码:
#define function typedef auto
function Kernel (int, int) -> int;
struct Transform
{
Kernel* kernel;
char* description;
};
Transform add_transform { add, "add" };
这个 typedef 在 C++11 标准中有效吗?
虽然我个人避免像瘟疫一样使用#defines(尤其是在用于创建像这些“函数”这样的新语言特性时),但鉴于项目中尾随返回类型的普遍存在,团队认为这将使代码库的可读性显着提高。