2016-04-26 3 views
2

как uninitialize std :: experimental :: optional?как uninitialize std :: experimental :: optional

std::experimental::optional<std::string> name; 

    name = std::string("hello"); //how to uninitialize name? 

    if(name) 
    { 
    std::cout << "name is set" << std::endl; 
    } 
    else 
    { 
    std::cout << "name is not set" << std::endl; 
    } 

Как я могу попасть в ветку другого?

+1

Мне сложно понять, что вы хотите. Вы хотите, чтобы исполняемые блоки if и else выполнялись или вы хотите «исключить» из 'name', поэтому выполняется только блок else? – NathanOliver

+0

Я хочу, чтобы неинициализировать имя. – user3828398

ответ

3
name = std::experimental::nullopt; 

link

станд :: экспериментальный :: nullopt является константой типа станда :: экспериментального :: nullopt_t, который используется для указания дополнительного типа с неинициализированным состоянием.

Смежные вопросы