Если вы можете использовать c ++ 17 , вы можете использовать std::variant
или std::any
, если ваши типы не имеют общего Базовый класс. Эти классы являются типобезопасными контейнерами для любых или указанных типов. Пример с std::variant
может быть следующим:
#include
#include
#include
int main() {
bool input = false;
std::cin >> input;
std::variant myVariant;
if(input)
myVariant = "Example1";
else
myVariant = 3.14;
std::visit([](auto&& arg) { std::cout << arg << std::endl; }, myVariant);
}
Вместо c ++ 17 вы также можете использовать boost::variant
или ] boost::any
.
Вы уверены, что снятие флажка:
Параметры -> Текстовый редактор -> C # -> Форматирование -> Новые строки -> Поместить открывающую скобку в новую строку для типов
не делать то, что вы хотите?
и также снимите флажок
Поместите открывающую скобку в новую строку для методов.
(nvrmind .. Я вижу, к чему вы клоните ... Это раздражает)
Вы покупаете ReSharper и используете его для всего форматирования, вы можете настроить его именно так, как хотите =)