Сообщение Re[6]: Вопрос знатокам от 03.04.2023 20:59
Изменено 03.04.2023 21:05 kov_serg
Re[6]: Вопрос знатокам
Здравствуйте, rg45, Вы писали:
R>Есть предложения?
Напиться.
R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?
С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным объявлением функции.
R>Есть предложения?
Напиться.
R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?
С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным объявлением функции.
Re[6]: Вопрос знатокам
Здравствуйте, rg45, Вы писали:
R>Есть предложения?
Напиться.
R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?
С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным насильным объявлением сигнатуры функции.
ps:
R>Есть предложения?
Напиться.
R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?
С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным насильным объявлением сигнатуры функции.
ps:
void ok() { void fn(); fn(); }
void fail(int x) { template<> void f(int); f(x); } // с чем связан запрет подобных объявлений?