#include <string>
template<typename test>
struct test_trait;
template<typename T1, typename T2>
struct test_2
{
typedef T1 err_type;
typedef T2 err_v_type;
};
typedef test_2<int, std::string> test_2_special;
template<>
struct test_trait<test_2_special>
{
typedef test_2_special::err_type key_type;
typedef test_2_special::err_v_type value_type;
};
template<typename test>
struct test_trait
{
typedef typename test::key_type key_type;
typedef typename test::value_type value_type;
};
template<typename T1, typename T2>
struct test_1
{
typedef T1 key_type;
typedef T2 value_type;
};
template<typename T, typename testTrait = test_trait<T> >
class t_1
{
public:
typedef testTrait traits_type;
typedef typename traits_type::key_type key_type;
typedef typename traits_type::value_type value_type;
};
int main()
{
t_1<test_1<int, std::string> > t1;
t_1<test_2<int, std::string> > t2;
return 0;
}
由boost::timer_traits引出的部分测试
最新推荐文章于 2023-04-05 00:46:23 发布