LINUX.ORG.RU

Шаблонный расширитель типов

 , ,


0

1

Собственно, требуется простенькая вещь типа такой:

ExpandType<float>::type x;// <-- double
ExpandType<char>::type y;// <-- int64_t
ExpandType<unsigned int>::type y;// <-- uint64_t
Велосипед изобретать не хотел. Что-то нагуглить такое в boost например не могу, но кажется, что то должно такое быть. Есть ли там такое?

что такое расширение?

почему float расширяется в double, а не в long double?

почему unsigned int расширяется в uint64_t, хоть int64_t и вмещает весь диапазон unsigned int?

почему char расширяется до int64_t, хоть он и не signed, и не unsigned?

Сомневаюсь, что это где-то есть, так как такая задача не нужна.

vzzo ★★★
()

а где такое может понадобиться?

anonymous
()

нагуглить такое в boost например не могу, но кажется, что то должно такое быть

Чот смахивает на boost::variant, или я тебя не понял.

no-such-file ★★★★★
()

Напиши сам, шаблон простой, тут только специализацию надо выписать, а стандартных типов не так много.

anonymous
()

Уже сам написал, зря создавал. Просто думал, может оно есть уже, и я вспомнить не могу

CatsCantFly
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.