делать? Чем вот так не устраивает?
var
v1: T;
уточняю задачу, мне нужно чтобы тип NewT всегда был беззнаковым аналогом типа T т.е. T - Integer => NewT - Cardinal T - Cardinal => NewT - Cardinal T - Int64 => NewT - UInt64 T - UInt64 => NewT - UInt64
То есть нужен аналог плюсового std::make_unsigned<type> ?
Изначально вопрос стоял более шире, могу ли я вообще любой тип объявлять в зависимости от того, какой прилетает снаружи, это мне хоть уже и не нужно, но вопрос остался интересным для меня А так, да, наверное это и нужно (если судить только по названию)
судя по доке delphi нормального решения нет Note: Generics in Delphi are unlike templates in C++ or generic types in C#. Most notably, a type parameter cannot be constrained to a specific simple type, such as Integer, Double, String, and so forth. In cases where different types need to be expressed (including simple types), consider using overloaded functions for each needed type or use a record type such as TValue from the System.Rtti unit, which offers operators and methods for storing and querying these data types. https://docwiki.embarcadero.com/RADStudio/Athens/en/Overloads_and_Type_Compatibility_in_Generics
Традиционный вопрос, а C++ так может? В зависимости от "входящего" типа, создать внутри любой другой тип данных?
Обсуждают сегодня