RosettaCodeData/Task/Higher-order-functions/C++/higher-order-functions-2.cpp
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

23 lines
388 B
C++

#include <iostream>
#include <functional>
template<class Func>
typename Func::result_type first(Func func, typename Func::argument_type arg)
{
return func(arg);
}
class second : public std::unary_function<int, int>
{
public:
result_type operator()(argument_type arg) const
{
return arg * arg;
}
};
int main()
{
std::cout << first(second(), 2) << std::endl;
return 0;
}