170 похожих чатов

Привет. Нужен алиас на тип, который отличался бы от других.

Типа
using Param = Type<std::string, class ParamTag>;
using Var = Type<std::string, class VarTag>;
Param и Var ведут себя как стринг, но имеют разные типы. Как это реализовать?

16 ответов

46 просмотров

что значит ведут себя как string?

Слава- Автор вопроса
Denis P
что значит ведут себя как string?

То что в месте где может использоваться std::string можно std::string заменить на этот тип

Слава- Автор вопроса
Denis P
class param: public std::string{}: ?)

Конструктора от std::string нет

Слава
Конструктора от std::string нет

если честно всё ещё не понятно что ты хочешь

https://github.com/foonathan/type_safe

Слава- Автор вопроса
Denis P
если честно всё ещё не понятно что ты хочешь

Ну условно есть два типа, которые ничем не отличаются от строк. Например, константа и переменная, но их нужно различать все еще

Слава- Автор вопроса
Слава- Автор вопроса
Denis P
так и в чем проблема различать?

Проблема не в том чтобы различать, а в том чтобы этот тип вел себя как строка. Конструировался от строки, кастился к строке неявно и т.д.

Слава
Проблема не в том чтобы различать, а в том чтобы э...

тогда кажется можно просто шаблонную структуру сделать со строкой внутри, и с тегом, ну либо какую-то либо взять, но имхо оверкил если надо только конструктор и оператор каста

ну заведи enum на тип, и им параметризируй шаблон. Будет тебе серия гарантировано различных типов

Слава- Автор вопроса
Denis P
тогда кажется можно просто шаблонную структуру сде...

Ну можно и так. Просто если есть какой-то исчерпывающий пример как написать себе strong typedef

Слава
Ну можно и так. Просто если есть какой-то исчерпыв...

ну для бедных наверное как-то так) template<typename Tag, typename T> struct SType { SType(T t): t_{std::move(t)} {} operator T() { return t_; } T t_; }; using S1 = SType<struct S1Tag, std::string>; using S2 = SType<struct S2Tag, std::string>;

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта