>source

C++ 프로그래밍이 처음이고 VS 2010 프로젝트에서 Thread 클래스를 사용해야 합니다. 나는 이것을 발견했다 참조하지만 다음을 시도할 때:

#include <thread>

VS 2010은 분명히 '오류: "스레드" 소스 파일을 열 수 없습니다'라고 알려줍니다. 어떻게 든 c++ 11 표준을 "활성화"해야한다는 것을 이해합니다. 어디서부터 시작해야 할지조차 모르겠습니다.

그래서 Visual Studio 2010에서 () c++11 표준을 사용하려면 어떻게 해야 합니까?

는 VS2012에 추가되었고 VS2013에서 더 확장되었습니다. 따라서 를 활성화하려면 IDE를 업그레이드하거나 다른 컴파일러를 사용해야 합니다.

stellarossa2022-01-13 22:21:17

2010이라는 이름의 제품에서 2011 표준 지원을 원한다는 알람이 울리지 않습니까?

David Heffernan2022-01-13 22:21:17

@DavidHeffernan, 별로 관련이 없습니다. OP, 해킹으로 프로젝트에 대한 사용자 정의 빌드 옵션을 설정하고 mingw 또는 기타에서 GCC를 사용할 수 있다고 생각합니다.

Codecat2022-01-13 22:21:17

@AngeloGeels 어떻게 든 mingw를 사용하는 것이 관련이 있습니까?!

David Heffernan2022-01-13 22:21:17

GCC는 C++11(거의?)을 완벽하게 지원하기 때문에 그렇습니다.

Codecat2022-01-13 22:21:17
  • 답변 # 1

    d= (◕‿↼ )C++11기본적으로 활성화되어 있지만 불행하게도 "Visual Studio 2017"도 완전히C++11준수합니다.

    (빌드하는 동안 여기에 왔습니다.후원, 빌드 섹션은C++11호환 컴파일러 및 무엇과 함께MSVC테스트한 버전후원.)

    Microsoft는 다음과 같이 말합니다.

    "C11 및 C17 표준 지원은 Visual Studio 2019 버전 16.8 이상에서 사용할 수 있습니다."

    그러나 나는 그들의 주장을 아직 테스트하지 않았습니다.

  • 답변 # 2

    제가 직접 찾은 내용입니다.

    Visual Studio에서 C++11을 "활성화"하려면 project->에서 "플랫폼 도구 집합"을 설정해야 합니다. 속성을 v110 이상으로 설정합니다. 이것이 Visual Studio가 C++11 기능을 사용해야 한다는 것을 이해하는 방법입니다.

    하지만!

    Visual C++ 컴파일러는 C++11과 완전히 호환되지 않습니다. C++11 기능은 Visual Studio 2010부터 지원되었으며 점진적으로 추가되었습니다. Visual Studio의 다음 버전도 완전한 C++11 호환성을 제공하지는 않습니다.

    마리우스 반실라

    그래서 효과가 있었다< 스레드>(그리고< 미래> ) 비주얼 스튜디오 2012.

    vs2010에서 플랫폼 도구 집합을 v100 이상으로 설정하는 것이 불가능하므로 vs2010에서 c++11을 "활성화"하는 것이 불가능합니다.

    결론: Visual Studio에서 C++11 표준 기능을 사용하려면 Platform Toolset v110 이상을 지원하는 2012 이상 버전을 사용해야 합니다.

    틀렸다면 고쳐주세요!

  • 답변 # 3

    Visual C++ 컴파일러는 C++11과 완전히 호환되지 않습니다. C++11 기능은 Visual Studio 2010부터 지원되었으며 점진적으로 추가되었습니다. Visual Studio의 다음 버전도 완전한 C++11 호환성을 제공하지는 않습니다. 다양한 버전의 Visual Studio에서 사용할 수 있는 C++11 기능 매트릭스는 다음에서 찾을 수 있습니다.

  • 답변 # 4

    std::thread분명히 VS 2010에는 없습니다. 에서 지원하는 VS 2012에 추가된 것 같습니다. C++11의 훨씬 더 많은 부분을 지원하는 최신 버전인 2013이 아닌 2010을 사용하는 특별한 이유가 있습니까?

    또한 참고 사항: GCC와 달리 MSVC에는 최신 표준에 대한 "선택"이 없습니다. 구현되는 한 즉시 사용할 수 있도록 지원합니다.

    VS 2012 및 2013은 불안정성을 보이는 경향이 있습니다. 또한 VS 2010에는 매크로가 있지만 최신 버전에는 없습니다.

    Codecat2022-01-13 22:21:17

    매크로? 또한 지금까지 2012/2013에는 문제가 없었습니다(2012년에 깨진 std::regex 제외).

    Mario2022-01-13 22:21:17

    2012/2013은 거대한 프로젝트를 작업할 때 2010에 비해 훨씬 더 많은 리소스를 사용하는 경향이 있어 몇 시간마다 IDE를 다시 시작해야 합니다. (2010에도 있지만 훨씬 적음) 매크로: msdn.microsoft.com/en-us/library/b4c73967%28v=vs.100%29.aspx

    Codecat2022-01-13 22:21:17

    그런 문제에 대해 들어본 적도 없고 실제로 IDE 매크로를 건드린 적도 없습니다. 그러나 그 외에도 최신 IDE에 대해 걱정하는 경우 기존 설치(전체 IDE 또는 플랫폼 SDK만)와 병렬로 최신 버전을 설치한 다음 이를 프로젝트 설정(MSVC에 도입됨)과 다른 컴파일러로 선택할 수 있습니다. 2010).

    Mario2022-01-13 22:21:17

    vs2010용 소스 code와 솔루션 파일을 생성하는 특정 프로그램 때문에 2010을 사용하고 있습니다. 해당 프로그램에 2012년용으로 생성하는 옵션이 있지만 내 컴퓨터에는 이미 2010년이 설치되어 있습니다. 그래서 지금까지 필요하지 않았기 때문에 2012를 사용하려고 시도하지 않았습니다(스레드 클래스 필요). 지금은 답변을 확인하기 위해 2012 및 2013을 가져와 설치하고 있습니다.

    J. Leeroy2022-01-13 22:21:17
  • 답변 # 5

    C++11은 기본적으로 활성화되어 있지만 VS 2010에는 구현된 기능이 많지 않습니다. C++11 표준 라이브러리에는 VS 2010에서 많은 헤더가 없습니다. 여기 비교가 있습니다C++11 지원에 관한 지난 몇 가지 VS 릴리스.

  • 이전 python : Docker 빌드가 실패하고 내가 사용하지 않을 때 이전 버전의 pip를 사용하고 있다고 주장합니다.
  • 다음 Python에서 터미널 지우기 [중복]