Перенос предложения: голоса +0, -7
Автор идеи:Максим Некипелов
В языке не помешал бы инструмент, который позволял добавить дедукцию для вывода типа в auto. Предлагаю добавить ключевое слово auto_deduction, которое и будет этим заниматься.
Как это работает сейчас:
template<class T>
struct Property
{
operator T() const { return { }; }
};
int main()
{
auto value = Property<int>{ }; // auto будет иметь тип Property<int>
}
Как предлагаю сделать:
template<class T>
struct Property
{
operator T() const { { }; }
};
template<class T>
auto_deduction Property<T> = T;
int main()
{
auto value = Property<int>{ }; // будет иметь тип int
}
Также для этого дела не помешала перегрузка:
template<class T>
struct Property
{
operator T() const { { }; }
};
template<class T>
auto_deduction Property<T> = T;
auto_deduction Property<float> = double;
int main()
{
auto value = Property<float>{ }; // будет иметь тип double
}
Перенос предложения: голоса +0, -7 Автор идеи: Максим Некипелов
В языке не помешал бы инструмент, который позволял добавить дедукцию для вывода типа в auto. Предлагаю добавить ключевое слово auto_deduction, которое и будет этим заниматься.
Как это работает сейчас:
Как предлагаю сделать:
Также для этого дела не помешала перегрузка:
Ну и аналогично поддержку концептов из C++ 20.