#include <iostream>

template <typename T>
T tmin(T a, T b) {
    std::cout << "template T" << std::endl;
    return a < b ? a: b;
}

template<> double tmin<double>(double a, double b) {
    std::cout << "template double" << std::endl;
    return a < b ? a: b;
}

int main(int argc, char** argv) {
    std::cout<< "double: " << tmin<>(5.0, 6.5)<<std::endl;
    std::cout<< "int: " << tmin<>(5, 6)<<std::endl;
    return ( 0 );
}
