2014-04-30 1 views
9

vs 2013에서 코드를 작성할 때 C++ 11 기능을 비활성화하는 방법이 있습니까? vs2008과 같은 이전 컴파일에서도 코드를 컴파일해야합니다.vs2013에서 C++ 11 기능을 비활성화합니다.

I를 통해 변경 피곤 : 프로젝트 -> 속성 -> 일반 -> 플랫폼 도구 세트, 세 뭔가 "비주얼 스튜디오 2013 (V120)"을 을 변경, 그러나 이것은 내가에있는 유일한 일이 드롭 다운 메뉴가 있습니다.

+0

를 참조? –

+7

im new to C++, C++ 11 기능인 경우 모든 기능을 설명 할 수 없습니다. – user3066442

+1

그런 다음 [추천 참조 사이트] (http://en.cppreference.com/w/cpp)를 권해 주시겠습니까? C++ 03, C++ 11 또는 C++ 14의 기능과 클래스 및 기능을 명확하게 보여줍니다. 그러나 가장 좋은 방법은 프로그램을 컴파일하는 데 이전 버전을 사용하는 것입니다 (C++ 11 이상 버전은 지원하지 않습니다). –

답변

6

다른 버전의 Visual Studio가 설치되어있는 경우 이전 도구 세트를 선택할 수 있습니다. 이것은 조금 도움이 될 수 있습니다.

더 나은 솔루션 인 IMHO는 지원되는 모든 컴파일러, 구성 및 플랫폼에 대한 코드를 빌드하는 연속 통합 서버를 설정하는 것입니다. 그런 다음 지원되지 않는 작업을 수행하는 즉시 빌드가 중단됩니다. 이상 적으로 CI 서버는 또한 모든 유닛 테스트를 실행하므로 구성 중 하나라도 테스트를 중단하는지 확인할 수 있습니다.

+0

VS 2007을 vs 2013과 나란히 설치했으며 드롭 다운에서 vs2008을 선택할 수 있음을 알고 있습니다. help – user3066442

0

사용 된 표준을 명시 적으로 설정하고 (Clang과 GCC는 표준 버전을 선택할 수 있음) 컴파일러를 사용하거나 C++ 11의 변경 사항을 익숙하게하여 코드에서 피할 수 있습니다.

참조가 필요한 경우 : http://en.cppreference.com/w/ 측면에는 특정 기능이 도입 된 표준 버전이 명확하게 나와 있습니다.

+11

C++ 03 코드를 작성할 때 실수로 C++ 11 기능을 사용하는 것이 쉽습니다. 예를 들어 C++ 03의 std :: vector는 [Copy-Assignable] (http://en.cppreference.com/w/cpp/concept/CopyAssignable) 및 [Copy-Constructable] (http : //en.cppreference.com/w/cpp/concept/CopyConstructible), C++ 11에서는 이러한 제한 사항을 제거합니다. 따라서 어떤 경우에는 "C++ 11 기능 피하기"라는 말은 "버그를 피하지 마십시오"라는 문구만큼 쓸모가 없습니다. – JDiMatteo

8

수 없습니다.

Visual Studio에서 C++ 11 기능을 비활성화하고 C++ 03 또는 C++ 98로 다운 그레이드 할 수 없습니다. 어떤 기능이 C++ 11 herehere에 속하는지 보시고, 사용하지 않으십시오.

그러나 더 나은 선택은 이전 VS 버전을 사용하여 새로운 기능을 사용하지 않는 것입니다.

는 개인적으로, 나는 Windows에서는 MinGW/GCC를 사용하고 난 -std=c++11를 사용하여 컴파일러 스위치 -std=c++03, -std=c++98 여부를 사용하여 C++ (11)을 사용하지 않도록 설정할 수 있습니다.

0

Visual Studio에서 C++ 11 기능을 지원하지 않는 다른 컴파일러를 사용하도록 구성하십시오. 인텔리 여전히 C++ 11 개 기능 표시됩니다,하지만 당신은 그것을 확인하기 전에 로컬 컴파일에 문제를 잡을 수있는 비주얼 스튜디오 2015

How to use GCC with Microsoft Visual Studio?

1

은 업데이트 3 개의 새로운 스위치 (/ 표준 소개합니다. C++ (14) 및/std : C++ latest)를 사용하여 프로젝트에서 사용하려는 C++ 프로그래밍 언어의 버전을 제어 할 수 있습니다. 이 업데이트에서 이들 중 하나가 아닌 언어 버전을 지정하면 컴파일러는 경고와 함께 스위치를 무시하고 C++ 14를 기본값으로 사용합니다. 단순히 어떤 C++ 11 (이상) 기능을 사용하지 않는하지 왜

https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/

관련 문제