fork download
  1. #include <iostream>
  2. #include <ostream>
  3.  
  4. using namespace std;
  5.  
  6. struct OneOfParamCont
  7. {
  8. int param1;
  9. float param2;
  10. };
  11. template<typename ParamClass, typename ParamType>
  12. ParamType QueryParam( ParamType (ParamClass::*param), const ParamType& defaultVal = ParamType() )
  13. {
  14. return defaultVal;
  15. }
  16. template<typename ResultType, typename ParamClass, typename ParamType>
  17. ResultType QueryParam( ParamType (ParamClass::*param), const ResultType& defaultVal = ResultType() )
  18. {
  19. return defaultVal;
  20. }
  21. int main()
  22. {
  23. float t1 = QueryParam( &OneOfParamCont::param2, 1.f );
  24. float t2 = QueryParam( &OneOfParamCont::param2, 1 );
  25. float t3 = QueryParam( &OneOfParamCont::param2 );
  26. float t4 = QueryParam( &OneOfParamCont::param2 );
  27. float t5 = QueryParam<float>( &OneOfParamCont::param2, 1.f );
  28. float t6 = QueryParam<float>( &OneOfParamCont::param2, 1 );
  29. float t7 = QueryParam<int>( &OneOfParamCont::param2, 1.f );
  30. float t8 = QueryParam<int>( &OneOfParamCont::param2, 1 );
  31. }
Success #stdin #stdout 0s 2892KB
stdin
Standard input is empty
stdout
Standard output is empty