Да предположим, че имам код като този:
template<class T, T initial_t> class Bar {
// something
}
И след това опитайте да го използвате по следния начин:
Bar<Foo*, NULL> foo_and_bar_whatever_it_means_;
GCC излиза с грешка (на горния ред):
не можа да преобразува аргумента на шаблона '0' в 'Foo*'
Намерих тази тема: http://gcc.gnu.org/ml/gcc-help/2007-11/msg00066.html, но трябва да използвам NULL в този случай (добре, вероятно бих могъл да преработя - но няма да е тривиално; някакви предложения?). Опитах се да преодолея проблема, като създадох променлива със стойност NULL, но GCC все още се оплаква, че предавам променлива, а не адрес на променлива като аргумент на шаблона. И препратката към променлива, инициализирана с ctor по подразбиране, няма да бъде същата като NULL.