C++ 推导出;“外部类”;具有模板参数推断的类的 类组件_Base{}; 类Rect_Component:Component_Base { 公众: 结构信息 { 单位宽度; 单位高度; }; }; 模板 ECSData类 { 私人: 元组数据; 公众: 模板 作废createEntity(信息和…信息){ } }; int main() { ECSData ECSData; createEntity(Rect_组件::Info{.width{200}、.height{500}); 返回0; }
在上面的代码中,我将C++ 推导出;“外部类”;具有模板参数推断的类的 类组件_Base{}; 类Rect_Component:Component_Base { 公众: 结构信息 { 单位宽度; 单位高度; }; }; 模板 ECSData类 { 私人: 元组数据; 公众: 模板 作废createEntity(信息和…信息){ } }; int main() { ECSData ECSData; createEntity(Rect_组件::Info{.width{200}、.height{500}); 返回0; },c++,C++,在上面的代码中,我将Rect_Component::Info传递给createEntity()。 给定上面的代码,可以在createEntity()中让模板参数推断出T::Info中的T是什么,并使用所述的T? 毕竟我在调用中编写了Rect_Component,所以我怀疑一定有办法考虑: struct Not_Rect_Component { using Info = Rect_Component::Info; }; 这与原始Rect_组件提供的Info无法区分,因此无法推断其中一个。
Rect_Component::Info
传递给createEntity()
。
给定上面的代码,可以在createEntity()
中让模板参数推断出T::Info
中的T
是什么,并使用所述的T?
毕竟我在调用中编写了Rect_Component
,所以我怀疑一定有办法考虑:
struct Not_Rect_Component {
using Info = Rect_Component::Info;
};
这与原始Rect_组件提供的Info
无法区分,因此无法推断其中一个。您必须在Info
中提供一个typedef,它引用正确的父类型。“在Info
中提供一个typedef”。或者是一种外在类型的特质。