11/11/14 10:20:27.56
こういう事か
template <class T>
class Test;
template <class T>
bool operator<(const Test<T>& a, const Test<T>& b) {
return a.data < b.data;
}
template <class T>
class Test {
T data;
public:
Test(T val) : data(val) {}
friend bool operator< <>(const Test<T>&a, const Test<T>& b);
void print() const { std::cout << data << ' '; }
};
int main(void)
{
typedef Test<double> TD;
std::set<TD> td;
td.insert(TD(1.0));
td.insert(TD(0.5));
std::for_each(std::begin(td), std::end(td), [&](TD t) { t.print();} );
std::cout << std::endl;
}