MinGW의 std::stoi 오류: 종속성 딜레마
MinGW에서 std::stoi를 사용하여 컴파일할 수 없습니까? 놀라운 이유와 잠재적 해결 방법을 알아보세요.
문제:
gcc 4.6.1에서 std::stoi와 같은 기능을 사용하려고 하면 MinGW에서 오류가 발생합니다. 특히 " 오류: 'stoi'는 'std'의 구성원이 아닙니다." 이러한 함수는 최신 버전의 GNU 표준 라이브러리(GSL)에 있는데 왜 MinGW에는 없나요?
답변:
범인은 비표준 선언입니다. Windows에서. GSL은 이 플랫폼에서 _GLIBCXX_HAVE_BROKEN_VSWPRINTF를 정의하여 변환 기능 std::stoi 및 기타 기능을 비활성화합니다.
해결 방법:
가능한 해결 방법은 GSL 헤더 파일을 수정하는 것입니다. .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h의 2754행에서 !definated(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) 매크로를 제거합니다. 또한 std::vswprintf를 참조하는 2905~2965행 주위에 매크로를 다시 추가합니다.
의미:
이 해결 방법은 std::to_wstring 기능을 비활성화하지만 다음을 허용합니다. 다른 변환 기능을 사용합니다. 이는 비표준 수정이므로 예상치 못한 결과를 초래할 수 있습니다.
위 내용은 MinGW에 `std::stoi`가 누락된 이유는 무엇입니까? 근본적인 문제와 가능한 해결책을 살펴보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!