g++ 11.3.0 无法编译代码
template <typename T> class Foo { public: Foo<T>() {} };
错误是“')' 标记前的预期不合格 ID”
修复它的一种方法是将
Foo<T>
更正为 Foo
因为现代版本的 g++ 可以理解类中没有模板参数的模板类方法。
但是像这样的代码可以在早期版本的 g++ 中编译。
手动代码修复是一种不方便的方式,因为一些开源依赖项如 websocketcpp 包含大量这样的代码,创建自己的 fork 并修复所有代码非常不方便。
所以,我建议在 g++ 中有一个标志或一些 pragma,这可能有助于解决这个问题。这里有没有代码修复的解决方法吗?