fork download
  1. #ifndef Way_1
  2. #define Way_1
  3.  
  4. //define
  5. Template<class Interface , class Data >
  6. bool verify(){return Interface.Verify(Data Data);}
  7.  
  8. //use
  9. verify<passwordverfier,string>();
  10. verify<IDcardverfier,vector<byte>>();
  11. #endif //Way_1
  12.  
  13. #ifndef Way_2
  14. #define Way_2
  15. //define
  16. class A{
  17. passwordverfier Interface;
  18. string Data};
  19.  
  20. class B{
  21. IDcardverfier Interface;
  22. vector<byte> Data};
  23.  
  24. //prepare
  25. std::list<boost::any> totaldata;
  26. totaldata.push_back(A);
  27. totaldata.push_back(B);
  28.  
  29. //use
  30. std::for_each(
  31. totaldata.begin(),
  32. totaldata.end(),
  33. [](auto var){var.Interface.Verify(var.Data);});
  34. #endif //Way_2
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:5:1: error: 'Template' does not name a type
 Template<class Interface , class Data >
 ^
prog.cpp:9:1: error: 'verify' does not name a type
 verify<passwordverfier,string>();
 ^
prog.cpp:10:1: error: 'verify' does not name a type
 verify<IDcardverfier,vector<byte>>();
 ^
prog.cpp:17:2: error: 'passwordverfier' does not name a type
  passwordverfier Interface; 
  ^
prog.cpp:18:2: error: 'string' does not name a type
  string Data};
  ^
prog.cpp:21:2: error: 'IDcardverfier' does not name a type
  IDcardverfier Interface; 
  ^
prog.cpp:22:2: error: 'vector' does not name a type
  vector<byte> Data};
  ^
prog.cpp:25:6: error: 'list' in namespace 'std' does not name a template type
 std::list<boost::any> totaldata;
      ^
prog.cpp:26:1: error: 'totaldata' does not name a type
 totaldata.push_back(A);
 ^
prog.cpp:27:1: error: 'totaldata' does not name a type
 totaldata.push_back(B);
 ^
prog.cpp:30:14: error: expected constructor, destructor, or type conversion before '(' token
 std::for_each(
              ^
prog.cpp:33:47: error: expected unqualified-id before ')' token
  [](auto var){var.Interface.Verify(var.Data);});
                                               ^
stdout
Standard output is empty