main() {
int i = create();
return 0;
}
C++ не умеет дедусить тип из возвращаемого значения или нужно как-то по-особому писать?
Не умеет
template<typename T> operator T(); Но никогда и ни в коем случае так всерьёз делать не стоит, ибо auto i = create<int>(); выглядит предпочтительнее даже ценой 6 дополнительных символов. Кроме того, не имеет пачки серьезных проблем
Не, эт уже перебор будет) Тут пример очень простой, в моём коде там куча неймспейсов, просто писать лень было
Не совсем понятно, причем тут неймспейсы. Возможно, нужно это: auto create() { ... } Возвращаемый тип будет выведен автоматически
у меня тип вида Foo<T>, в таком случае это сработает?
Сработает. Но это не вывод на вызывающей стороне (auto x = create() не выведется в auto x = create<T>()), а именно возможность не указывать возвращаемый тип самому
ок, кажется это то что нужно, т.к. у меня это всё в полях лежит с указанными типами. Спасибо за подсказку
Зачем такую функцию писать вообще ? Тип шаблона при инстанциации должен быть указан.
Обсуждают сегодня