   Default values for templated argument possible?
  IMO the code below should work:template <typename T>struct Foo{};template <typename T, typename K>voidbar(T t, K k = Foo<T>()){}voidtest(){int a;bar(a);   // Can't compilebar(a, Foo<int>()); // Compiles fine}Does the standard allow this?If not what's the reasoning behind that?Any other workarounds available?   
  Here's a work-around using overloading:template <typename T, typename K>void bar(T t, K k){}template <typename T>void bar(T t, Foo<T> k = Foo<T>()){bar<T,Foo<T> >( t, k );};  How could I've missed that!It's so obvious, time to do a brain check soon, this whole parenting stuff must cause more damage than I imagined ;)TY!