/usr/include/c++/4.6/type_traits: In instantiation of ‘std::_Result_of_impl<false, false, int>’:
/usr/include/c++/4.6/type_traits:1215:12: instantiated from ‘std::result_of<int()>’
../main.cpp:9:2: instantiated from ‘void test()[with T =int()]’
../main.cpp:14:2: instantiated from ‘void push(T)[with T =int(*)(), typename std::enable_if<(std::is_pointer<_Functor>::value&& std::is_function<typename std::remove_pointer<_Functor>::type>::value), int>::type<anonymous>=0]’
../main.cpp:18:11: instantiated from here
/usr/include/c++/4.6/type_traits:1192:9: error: ‘std::declval[with _Tp =int, typename std::add_rvalue_reference<_Tp>::type=int&&]()’ cannot be used as a function
prog.cpp:25:49: error: invalid suffix "x" on integer constant
prog.cpp:27:1: error: stray '\342' in program
prog.cpp:27:1: error: stray '\200' in program
prog.cpp:27:1: error: stray '\230' in program
prog.cpp:27:1: error: stray '\342' in program
prog.cpp:27:1: error: stray '\200' in program
prog.cpp:27:1: error: stray '\231' in program
prog.cpp:28:1: error: stray '\342' in program
prog.cpp:28:1: error: stray '\200' in program
prog.cpp:28:1: error: stray '\230' in program
prog.cpp:28:1: error: stray '\342' in program
prog.cpp:28:1: error: stray '\200' in program
prog.cpp:28:1: error: stray '\231' in program
prog.cpp:29:1: error: stray '\342' in program
prog.cpp:29:1: error: stray '\200' in program
prog.cpp:29:1: error: stray '\230' in program
prog.cpp:29:1: error: stray '\342' in program
prog.cpp:29:1: error: stray '\200' in program
prog.cpp:29:1: error: stray '\231' in program
prog.cpp:30:1: error: stray '\342' in program
prog.cpp:30:1: error: stray '\200' in program
prog.cpp:30:1: error: stray '\230' in program
prog.cpp:30:1: error: stray '\342' in program
prog.cpp:30:1: error: stray '\200' in program
prog.cpp:30:1: error: stray '\231' in program
prog.cpp:32:1: error: stray '\342' in program
prog.cpp:32:1: error: stray '\200' in program
prog.cpp:32:1: error: stray '\230' in program
prog.cpp:32:1: error: stray '\342' in program
prog.cpp:32:1: error: stray '\200' in program
prog.cpp:32:1: error: stray '\231' in program
prog.cpp:23:1: error: 'Error' does not name a type
In file included from prog.cpp:4:0:
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/functional: In instantiation of 'std::result_of<int()>':
prog.cpp:9:2: instantiated from 'void test() [with T = int()]'
prog.cpp:14:2: instantiated from 'void push(T) [with T = int (*)(), typename std::enable_if<(std::is_pointer<_Tp>::value && std::is_function<typename std::remove_pointer<_Tp>::type>::value), int>::type <anonymous> = 0]'
prog.cpp:18:11: instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/functional:180:9: error: 'std::declval [with _Tp = int, typename std::add_rvalue_reference<_Tp>::type = int&&]()' cannot be used as a function