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;
...