std :: variant를 사용하여 코드를 컴파일하는 데 문제가 있습니다.C++ variant 해당 파일 또는 디렉토리가 없습니다.
#include <variant>
#include <string>
int main()
{
std::variant<int, float> v, w;
v = 12; // v contains int
int i = std::get<int>(v);
w = std::get<int>(v);
w = std::get<0>(v); // same effect as the previous line
w = v; // same effect as the previous line
try {
std::get<float>(w); // w contains int, not float: will throw
}
catch (std::bad_variant_access&) {}
std::variant<std::string> v("abc"); // converting constructors work when unambiguous
v = "def"; // converting assignment also works when unambiguous
}
cppreference.com에서 찾을 수 있지만,이 오류 추가합니다 : "심각한 오류 : 변종 : 나는 -std와 g ++ 우분투 5.4/6.2와 페도라이 코드 = C++ (17)를 컴파일하려고 그런 파일 또는 디렉토리 ".
는 모든 플래그를 갖춘 컴파일러의 호출을 포함하십시오. 'std :: variant'는 C++ 17 기능입니다. '-std = C++ 17'을 지정 했습니까? – Jonas
감사합니다. –