@Ashiful The error happens during the initial parse of
b
, not when it's instantiated, so the compiler can't see the lack of specializations at that point. This now isn't specific to your case, it's the same story as every other case where you need this->
in a template. Hard to say why exactly they did this, probably to be able to quickly reject misspelled global variables/functions even without the instantiation.