Когда целесообразно передавать признаки в качестве параметров шаблона, а не просто использовать некоторые существующие структуры признаков, такие как
typedef basic_ofstream
vs.
typedef basic_ofstream
?
У меня есть несколько классов плиток, которые я хотел бы иметь общие черты (черты), поэтому я разработал tile_traits
, чтобы содержать всю основную информацию о тайле, такую как int_type
и flag_type
, например:
//unspecialized
template<typename T> struct tile_traits;
//... other stuff here, declaration of a tile class
template<>
struct tile_traits<tile_class>
{
typedef tile_class::int_type int_type;
typedef tile_class::flag_type flag_type;
//other possible tile info here.
}
Проектирование черт как таковых считается a traits-blob ?