obj.bar<double>(1,2); // This line is faulty.
The template
keyword is required here, as obj
is an instance of a type Foo<T>
which depends on the template parameter T
, and so the above should be written as:
obj.template bar<double>(1,2); //This line is corrected :-)
Read @Johannes’s answer here for detail explanation:
- Where and why do I have to put the “template” and “typename” keywords?