C语言或任何其他语言的可选结构类型可能性?
发布时间:2020-12-16 06:47:35 所属栏目:百科 来源:网络整理
导读:在C中如何告诉编译器Ogre :: Vector3 IS_SAME_AS SomeOtherLIB :: Vector3? 我觉得..在像c这样的语言中,它们不是结构类型,但有时候它是有意义的. 通常作为游戏开发人员使用4个提供排序或自己的Vector3实现的库.代码中充斥着ToOgre,ToThis,ToThat转换功能.这
在C中如何告诉编译器Ogre :: Vector3 IS_SAME_AS SomeOtherLIB :: Vector3?
我觉得..在像c这样的语言中,它们不是结构类型,但有时候它是有意义的. 通常作为游戏开发人员使用4个提供排序或自己的Vector3实现的库.代码中充斥着ToOgre,ToThis,ToThat转换功能.这是很多Float3复制周围不应该发生在第一位. 是C或任何其他语言,我们没有必要转换(复制)从一种类型到另一种类型,这本质上是相同的.但是C中的任何解决方案都是大多数优秀的gamedevs libs都是针对c / c的. 解决方法
如果使用模板,只要在该类型上定义了必要的操作,就可以定义采用任何类型参数的函数.例:
class Foo { void quack() {} }; class Bar { void quack() {} }; class Baz {}; template<typename Duck> void f(Duck d) { d.quack(); } int main() { f(Foo()); // works f(Bar()); // works f(Baz()); // compile error because Baz does not have a quack method return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |