можно ли тип переменной задать с помощью другой переменной?
Например
string type = "int";
<type> value = 5;
string type = "string";
<type> value = "asd";
1) можно 2) @supapro 3) decltype(type) value = "str";
Благодарю, я не в тот чат попал, так понимаю
А, то, что описал ты, уже только макросами если
С макросами тоже нет, если я правильно понял задачу
не не, decltype как раз то, что нужно
Хотите ли вы менять тип переменной во время работы программы?
Желательно да. У меня есть массив, но на данный момент пустой. И создавать на основе переменной другой массив, с нужным мне типом. Но тут еще вопрос в том, как его сделать динамичным. Грубый пример: Stack.init(string type = "string") Тут он создает нужный массив в классе, который буду заполнять Stack.push(string|float|double|int value) Тут уже, добавлять в конец массива значения, с нужным типом значения
Это уже не рантайм, а компайл-тайм
Я бы смотрел в сторону чего-то типа std::vector<std::any>
Понял, пойду гуглить
Менять тип переменной во время исполнения нельзя, поскольку язык имеет статическую типизацию. Однако, добиться желаемого поведения возможно с помощью std::variant, полиморфизма или type-erasure контейнеров. Однако, для использования этих инструментов требуются более продвинутые знания языка. Думаю, сейчас стоит чуть по-лучше освоить основы C++, в @supapro с этим помогут чуть охотнее, чем здесь
Хммм, если это уже более продвинутый уровень, может, я не правильно понял задачу. Задача такова: 1. Создать класс Stack, который будет реализовывать принцип работы структуры данных стек. Размер стека не должен быть ограничен (используйте динамический массив). 2. Реализовать для любого типа данных на выбор (int, float, double, string). Должны быть как минимум методы pop(), чтобы достать из стека верхний элемент, и push(), чтобы добавить новый элемент. Я так понял, что, нужно создать массив исходя того типа, который пришел, и этим типом заполнять его
1) @supapro 2) Для этого есть шаблоны
"на выбор" я понимаю как "по своему усмотрению". Я бы сделал IntStack без всяких шаблонов или type erasure и остановился бы на этом
Обсуждают сегодня