Предположим, у меня есть такой код:
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.