fork download
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. struct Argument {
  5. explicit Argument( const T &val );
  6. T get() const;
  7. };
  8.  
  9. template <typename T>
  10. Argument<T>::Argument(const T &val) { }
  11.  
  12. class Foo {
  13. public:
  14. typedef Argument<double> Val1;
  15. typedef Argument<double> Val2;
  16.  
  17. Foo( Val1 v1, Val2 v2 );
  18. };
  19.  
  20. Foo::Foo(Val1, Val2) { }
  21.  
  22. int main() {
  23. Foo foo1( Foo::Val1( 1.0 ), Foo::Val2( 2.3 ) );
  24. Foo foo2( Foo::Val2( 1.0 ), Foo::Val1( 2.3 ) );
  25.  
  26. return 0;
  27. }
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty