fork download
  1. template<typename T, typename U>
  2. struct TemplateClass;
  3.  
  4. template<typename T, typename U = typename TemplateClass<T, void>::DefaultU>
  5. struct TemplateClass {
  6.  
  7. class DefaultU {
  8. T foo;
  9. /* ... */
  10. };
  11.  
  12.  
  13. T& baz;
  14. U bar;
  15. /* ... */
  16. };
  17.  
  18.  
  19. int main()
  20. {
  21.  
  22. int a = 0;
  23. TemplateClass<int, int>::DefaultU b;
  24. TemplateClass<int, decltype(b)> foo = {a, b};
  25. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
Standard output is empty