fork download
  1. #include <iostream>
  2.  
  3. template <class T>
  4. struct X {
  5. using value_type = T;
  6. T value;
  7. };
  8.  
  9. template <class Y, class T = typename Y::value_type>
  10. void f(Y& y) {
  11. T value = 42;
  12. y.value = value;
  13. }
  14.  
  15. int main() {
  16. X<int> x;
  17. f(x);
  18. std::cout << x.value << std::endl;
  19. return 0;
  20. }
  21.  
Success #stdin #stdout 0s 16048KB
stdin
Standard input is empty
stdout
42