I would like to know why implicit type conversion doesn\'t work with outside operator overloading on class templates. Here is the working, non-templated version:
<
All possible foo are equally valid conversions from int since the constructor takes int, not the template type. The compiler isn't able to use the other parameter in the operator to guess which one you might mean, so you get the error. If you explicitly tell it which instantiation you want I believe it would work.