fork download
  1.  
  2. template <
  3. typename Handler,
  4. typename In,
  5. typename Out,
  6. bool IsConst = false>
  7. struct ContractOperator;
  8.  
  9.  
  10. template <
  11. typename Handler,
  12. typename In,
  13. typename Out>
  14. struct ContractOperator<Handler, In, Out, true>
  15. {
  16. typedef Out(Handler::*type)(In) const;
  17. };
  18.  
  19. template <
  20. typename Handler,
  21. typename In,
  22. typename Out>
  23. struct ContractOperator<Handler, In, Out, false>
  24. {
  25. typedef Out(Handler::*type)(In);
  26. };
  27.  
  28. template <
  29. typename In,
  30. typename Out,
  31. typename Handler>
  32. std::true_type ConstnessCheck2(typename detail::ContractOperator<Handler, In, Out, true>::type op);
  33.  
  34. template <
  35. typename In,
  36. typename Out,
  37. typename Handler>
  38. std::false_type ConstnessCheck2(typename detail::ContractOperator<Handler, In, Out, false>::type op);
  39.  
  40. std::is_same<std::true_type, decltype(ConstnessCheck2<int, std::string, ClassWithConstMethod>(&ClassWithConstMethod::SpellThisNumber))>::value;
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty