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

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

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

16 ответов

11 просмотров

что значит ведут себя как 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>;

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
3
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Карта сайта