经常使用模板的时候,你最终是这样的:
template <T>
class the_class
{
public:
// types
typedef T value_type;
typedef const value_type const_value_type;
typedef value_type& reference;
typedef const_value_type& const_reference;
typedef value_type* pointer;
typedef const_value_type* const_pointer;
...
};
这是同样的东西很多的,不过,复制到许多不同的模板类的。 这是值得创建类似:
// template_types.h
#define TEMPLATE_TYPES(T) \
typedef T value_type; \
typedef const value_type const_value_type; \
typedef value_type& reference; \
typedef const_value_type& const_reference; \
typedef value_type* pointer; \
typedef const_value_type* const_pointer;
所以我刚才类变为:
#include "template_types.h"
template <typename T>
class the_class
{
public:
TEMPLATE_TYPES(T)
...
};
这似乎更清洁,并避免重复,当我做其他的模板类。 这是一件好事吗? 或者我应该避免这种情况,只是复制粘贴的typedef?