template<typename T>
class Adder
{
public:
T operator() (const T & a,const T & b)
{
return a + b;
}
};
auto Add(const int a, const int b)->int {
return a + b;
}
auto Add2 = [](const int a, const int b)-> int {
return a + b;
};
int main()
{
class {public: int operator ()(const int a, const int b) { return a + b; }} d;
auto a = Adder<int>{};
auto b = [](const int a, const int b)->int
{
return a + b;
};
std::cout << "5 + 1 = " << a(5, 1) << std::endl;
std::cout << "5 + 1 = " << b(5, 1) << std::endl;
std::cout << "5 + 1 = " << Add(5, 1) << std::endl;
std::cout << "5 + 1 = " << Add2(5, 1) << std::endl;
}
비슷비슷, d가 제일 더러운 듯
와 d뭐임? 저런게 가능했었음?
익명 클래스 뭐 이런건가?
익명클래스
보통 이런용도로는 스트럭트 쓰던듯
public붙이기 귀찮을 테니까