fork(1) download
  1. #include <vector>
  2.  
  3. class SomeClass {};
  4.  
  5. template<typename USER_DATA>
  6. class RowProcessor
  7. {
  8. typedef void (*RowFunction)(USER_DATA, std::vector<USER_DATA> &);
  9.  
  10. RowProcessor(RowFunction, int) {};
  11. };
  12.  
  13.  
  14.  
  15. class UseRowProcessor {
  16. public:
  17. void AddUserData(SomeClass, std::vector<SomeClass> &);
  18. void LoadUserData();
  19. };
  20.  
  21. void UseRowProcessor::AddUserData(SomeClass c, std::vector<SomeClass> &v) {
  22. v.push_back(c);
  23. }
  24.  
  25. void UseRowProcessor::LoadUserData() {
  26. RowProcessor<SomeClass> myRowProcessor(AddUserData, 1);
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. int main() {
  37. return 0;
  38. }
  39.  
  40.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In member function ‘void UseRowProcessor::LoadUserData()’:
prog.cpp:26:55: error: no matching function for call to ‘RowProcessor<SomeClass>::RowProcessor(<unresolved overloaded function type>, int)’
  RowProcessor<SomeClass> myRowProcessor(AddUserData, 1);
                                                       ^
prog.cpp:26:55: note: candidates are:
prog.cpp:10:5: note: RowProcessor<USER_DATA>::RowProcessor(RowProcessor<USER_DATA>::RowFunction, int) [with USER_DATA = SomeClass; RowProcessor<USER_DATA>::RowFunction = void (*)(SomeClass, std::vector<SomeClass>&)]
     RowProcessor(RowFunction, int) {};
     ^
prog.cpp:10:5: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘RowProcessor<SomeClass>::RowFunction {aka void (*)(SomeClass, std::vector<SomeClass>&)}’
prog.cpp:6:7: note: constexpr RowProcessor<SomeClass>::RowProcessor(const RowProcessor<SomeClass>&)
 class RowProcessor
       ^
prog.cpp:6:7: note:   candidate expects 1 argument, 2 provided
prog.cpp:6:7: note: constexpr RowProcessor<SomeClass>::RowProcessor(RowProcessor<SomeClass>&&)
prog.cpp:6:7: note:   candidate expects 1 argument, 2 provided
stdout
Standard output is empty