>  기사  >  백엔드 개발  >  std::stoi가 Windows의 MinGW 4.6.1에서 작동하지 않는 이유는 무엇입니까?

std::stoi가 Windows의 MinGW 4.6.1에서 작동하지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 09:29:27624검색

Why is std::stoi not working with MinGW 4.6.1 on Windows?

MinGW 4.6.1에서 std::stoi 컴파일 오류

MinGW 4.6에서 std::stoi를 사용하여 프로그램을 컴파일하려고 할 때 .1의 경우 'stoi'가 'std'의 구성원이 아니라는 오류 메시지가 나타날 수 있습니다. 이 문제는 Windows에서 vswprintf의 비표준 선언으로 인해 발생합니다.

문제 원인

GNU 표준 라이브러리는 Windows에서 _GLIBCXX_HAVE_BROKEN_VSWPRINTF 매크로를 정의합니다. std::stoi를 포함한 변환 함수. 이 매크로는 해당 플랫폼의 vswprintf 문제로 인해 Windows에서 MinGW를 사용할 때 활성화됩니다.

문제 해결

이 문제를 해결하려면 다음 해결 방법을 고려하십시오.

  1. MinGW 헤더 파일 수정(권장하지 않음):

    • .. ./lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
    • std::vswprintf를 참조하는 2905~2965행 주위에 매크로를 다시 추가합니다.

    이 수정으로 std::to_wstring 기능이 비활성화되지만 다른 변환 기능을 사용할 수 있게 됩니다.

추가 정보

  • 이 문제에 대한 자세한 내용은 GNU Bugzilla 보고서(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522)를 참조하세요.
  • 이 해결 방법은 모든 사용자에게 적합하지 않을 수 있습니다. 사용자이므로 주의해서 구현해야 합니다.

위 내용은 std::stoi가 Windows의 MinGW 4.6.1에서 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.