by [csdn]@plainsong——
template <typename T>
struct Func
{
typedef T (*result)(T n);
}; 用的时候: 用[typename] Func <T> ::result代替原来的Func
vc7.01的编译结果很慢,比Bcc32 5.6还慢,也许我没有找到正确的设置方法。VC7.01对标准的支持还是不够好,但常用的技巧都可以用了。好象仍然不支持export模板
bcc32 5.6.4比5.6没什么改进,大概补了些Bug。李维说新版的BCBX的编译器将会在标准支持和编译优化方面有很大改进,并且还支持C99(这可不多见),不知道什么时候出来。
by [cppblog]@Cpper——
有时候我们需要typedef 一种模板
但是c++并没有直接的解决方案
也就是这样是不可行的.
typedef std::vector<T> myvector<T>;
间接的解决方式是:
(该代码源于盖莫游戏引擎代码)
#include <loki/flex/flex_string.h>
typedef flex_string<char> engine_string;
#include <loki/yasli/yasli_vector.h>
template<class T>
struct vector_typedef
{
typedef yasli::vector<T,std::allocator<T> > type;
};
template<class T>
struct list_typedef
{
typedef yasli::vector<T,std::allocator<T> > type;
};
使用的时候是这样的
list_typedef<int>::type v;
list_typedef<Vector3f>::type veclist;
...
本文讨论了如何在C++中通过模板类型定义来替代原有函数,并介绍了不同编译器(如VC7.01和Bcc32)在处理模板时的性能差异及标准支持情况。此外,文章提供了间接定义模板类型的解决方案,以及对未来编译器标准支持和性能优化的展望。
1257

被折叠的 条评论
为什么被折叠?



