Size: a a a

2021 March 24

W

Wild_Wind in pro.cxx
Sergey
Они вообще не об этом.

Я имею ввиду, что мне нужно массово объявлять много некастуемых друг к другу типов, внутри которых примитивные интегральные и флоты.

У нас сейчас это делается макроснёй. В лучшем случае макрос на 2-3 строчки, который объявляет пустой тип-тег и инстанс шаблона с этим тегом.
источник

W

Wild_Wind in pro.cxx
Не оно?
источник

S

Sergey in pro.cxx
Pavel Zhigulin
Я боюсь это никогда не появится, ибо сломает тонны кода.
Не обязательно же такой синтаксис как я предложил.
Можно что-то вроде

strong using Foo = int;

или что-нибудь со старыми ключевыми словами, чтоб не совсем не ломать:

using class Foo = int; // По аналогии с "сильным" enum class.
источник

S

Sergey in pro.cxx
Wild_Wind
Не оно?
Оно самое.

Но всё равно многословно:

using FirstName = NamedType<std::string, struct FirstNameTag>;

Ещё нужно тег объявить, и по желанию всё это в макрос завернуть.
источник

AC

Alex Chernov in pro.cxx
Тут вопрос сколько это будет стоить в рантайме
источник

PZ

Pavel Zhigulin in pro.cxx
Если юзать недавно обсуждаемые лупхолы, можно тэг-типы генерить автоматически :) :)
источник

W

Wild_Wind in pro.cxx
Sergey
Оно самое.

Но всё равно многословно:

using FirstName = NamedType<std::string, struct FirstNameTag>;

Ещё нужно тег объявить, и по желанию всё это в макрос завернуть.
*разводит руками*
источник

W

Wild_Wind in pro.cxx
Врядли без макросни можно сделать лучше.
источник

S

Sergey in pro.cxx
Alex Chernov
Тут вопрос сколько это будет стоить в рантайме
Вроде 0, как обычный юзинг.
источник

AC

Alex Chernov in pro.cxx
У нас специальная сборка переодически собиралась для того что бы найти где неявное преобразование будет
источник

S

Sergey in pro.cxx
Sergey
Вроде 0, как обычный юзинг.
Это всё про проверку на этапе компиляции.
источник

AC

Alex Chernov in pro.cxx
Если так то прям круто
источник

AC

Alex Chernov in pro.cxx
Просто обертки чего то да стоят
источник

PZ

Pavel Zhigulin in pro.cxx
Alex Chernov
Тут вопрос сколько это будет стоить в рантайме
Должно быть ноль :) Компилятор достаточно умный для этого.
источник

S

Sergey in pro.cxx
Alex Chernov
У нас специальная сборка переодически собиралась для того что бы найти где неявное преобразование будет
Что за сборка? Какой-то очень специальный варнинг включали?
источник

PZ

Pavel Zhigulin in pro.cxx
Alex Chernov
Просто обертки чего то да стоят
Времени компиляции они стоят :)
источник

AC

Alex Chernov in pro.cxx
Да там тупо using и обертки
источник

AC

Alex Chernov in pro.cxx
Флаг есть одна ветка
источник

AC

Alex Chernov in pro.cxx
Нет - другая
источник

AC

Alex Chernov in pro.cxx
Или native тип
источник