【问题标题】:Is it possible to store the variable type? [duplicate]是否可以存储变量类型? [复制]
【发布时间】:2019-12-28 23:19:00
【问题描述】:

所以我有一个模板函数,我想动态定义类型。

something_that_holds_type type;
obj.GetComponent<type>();

有可能吗? 我也想过这样的事情:

#define GETTYPE(t) t
obj.GetComponent<GETTYPE(int)>();

这行得通,但这无济于事。我想做的是传递类型名称并将其转换为关键字,类似于:

#define GETTYPE(t) removes_quatation_marks_of_t
obj.GetComponent<GETTYPE("int")>();

这在 c++ 中是否可行?

【问题讨论】:

  • 您这样做究竟想达到什么目的?无论如何,必须在编译时知道类型,所以这些宏似乎让事情变得更加困难
  • int兄弟
  • 告诉我们您真正想要做什么。 std::variant 之类的东西可能对您有用,但我们无法真正知道
  • std::type_info(在#include &lt;typeinfo&gt;)和typeid(Foo) 可以做你想做的事。如果您想跨平台共享或用于持久存储,则不兼容交叉编译器。
  • 我有一个实体类。该类当时只能拥有和访问一个组件:Box Collider、Sphere Collider、Mesh Collider 等。但我不想声明我可以在 Entity 类中拥有的每个对撞机组件。因此,我创建了一个指向其中一个对撞机类的 void*。为了正确访问数据,我必须在运行时知道类型,因为我也计划在运行时更改对撞机。我想要一个返回指向碰撞器的指针的函数,因为我有一个模板

标签: c++ templates keyword


【解决方案1】:

没有你描述的不能做。

可以根据您的要求进行各种变体,但要描述它,我们必须看到比您的抽象描述更具体的东西。

【讨论】:

    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多