fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <type_traits>
  4.  
  5. template <class Vector, class Scalar>
  6. typename std::enable_if<std::is_floating_point<Scalar>::value, Vector>::type
  7. operator*(const Scalar &a, const Vector &b)
  8. {
  9. return Vector { a*b[0], a*b[1], a*b[2] };
  10. }
  11.  
  12. int main()
  13. {
  14. const std::vector<double> v1({1,2,3});
  15. const double s1(2);
  16. const auto result(s1*v1);
  17. std::cout << result[0] << ", " << result[1] << ", " << result[2] << std::endl;
  18. }
Success #stdin #stdout 0s 3272KB
stdin
Standard input is empty
stdout
2, 4, 6