template< typename T, typename Enable = void>
class demo_class {};
template<typename T>
class demo_class<T, typename boost::enable_if<std::is_arithmetic<T>>::type >
{
public:
void print() { __FUNCTION__; }
};
template<typename T>
class demo_class<T, typename boost::enable_if<std::is_same<T, std::string>>::type>
{
public:
void print() { __FUNCTION__; }
};
struct tt {};
using namespace func_5_15;
demo_class<float> obj1;
obj1.print();
demo_class<std::string> obj2;
obj2.print();
对输入的类型进行限制,
实现不同的类型数据调用不同的类的算法。