c++ - 从成员函数返回模板类
问题描述
我正在尝试使用 ECS 模式实现引擎,并且我希望拥有用于表示游戏内对象的实体类模板:
template<typename...components>
class entity
{
//...
};
和管理实体生命周期的 entity_manager 类:
class entity_manager
{
public:
template<typename...components>
entity<components...> create_entity<components...>();
bool destroy_entity(entity_id id);
//...
}
当我尝试编译它时,我得到以下 gcc 错误:
error: expected initializer before ‘<’ token
15 | entity<components...> create_entity<components...>();
| ^
和铿锵声:
error: function template partial specialization is not allowed
entity<components...> create_entity<components...>();
^ ~~~~~~~~~~~~~~~
我的问题是为什么它不起作用有什么可能的解决方案?
解决方案
您不会在函数声明中的函数名称之后放置模板参数列表。
简单地:
template<typename...components>
entity<components...> create_entity();
推荐阅读
- r - 在 R 中创建函数以进行子集化并运行 AUDPC 分析
- conda - Conda 后链接脚本不运行
- java - Java:“If”语句中 AND 之后的 OR 运算符
- wordpress - 如何在标准分页中隐藏删除下一个和上一个按钮
- vba - 查找所选单元格上方的第一个非空白行
- php - 在 Woocommerce 存档页面中将“销售”徽章替换为“缺货”
- python-3.x - 尝试网络抓取时服务器拒绝我的访问(Python,请求)
- linux - 如何在 Linux 上安装 Mingw-w64 交叉编译器 GNU 7.3.0
- python - 如何更改 Seaborn 中子图的比例?
- javascript - return an object with key and value using map