Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Visual Studio 2015 - auto 반환 타입 및 thread_local 예약어 지원(C++ 11 표준)

Visual Studio 2013의 C/C++ 컴파일러에서는 다음의 경우,

auto GetT()
{
    return 1;
}

"error C3551: expected a trailing return type" 컴파일 오류가 발생합니다. 또한 thread_local 예약어를 쓰면,

void T()
{
    thread_local int t;
}

"error C2065: 'thread_local' : undeclared identifier"라는 컴파일 오류가 발생합니다.

하지만, (CTP기준) Visual Studio 2015에서는 해당 구문을 모두 정상적으로 컴파일합니다.

auto GetT()
{
    thread_local int t;

    t = 50;

    return 1;
}

위의 2가지 기능에 대해 회사 동료가 물어본 것인데... 지원된다는 소식에 반가워하는 군요. ^^ (C++ 11에 있던 표준을 이제서야 지원하는 것이 좀 아쉽긴 합니다.)

그런데, __cplusplus의 값은 여전히 199711을 반환한다는 사실에 쪼끔 실망했습니다.

int _tmain(int argc, _TCHAR* argv[])
{
    printf("%d", __cplusplus); // 199711
    return 0;
}

CTP 딱지를 떼고 정식 버전의 Visual Studio 2015가 나왔을 때는 바뀔지 모르겠지만!




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 3/18/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2015-06-20 01시08분
정성태
2018-04-09 11시40분
15.7 Preview 3부터, /Zc:__cplusplus 옵션을 주면 새로운 버전으로 정의된 __cplusplus 값으로 바뀐다고 합니다. (하위 호환성을 위해 해당 옵션을 주지 않으면 그대로일 거라고.)

MSVC now correctly reports __cplusplus
; https://blogs.msdn.microsoft.com/vcblog/2018/04/09/msvc-now-correctly-reports-__cplusplus/
정성태

... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
2868정성태2/23/201530467VS.NET IDE: 97. Visual C++ 프로젝트 디버깅 시에 Step-Into(F11) 동작이 원치 않는 함수로 진입하는 것을 막는 방법 [2]
2867정성태2/23/201523673오류 유형: 273. File History - Failed to initiate user data backup (error 80070005)
2866정성태2/23/201526065오류 유형: 272. WAT080 : Failed to locate the Windows Azure SDK. Please make sure the Windows Azure SDK v2.1 is installed.
1868정성태2/20/201523261오류 유형: 271. The type '...' cannot be used as type parameter 'TContext' in the generic type or method 'System.ServiceModel.DomainServices.EntityFramework.LinqToEntitiesDomainService<T>
1866정성태2/20/201523963오류 유형: 270. "aspnet_regiis -i" 실행 시 0x00000006 오류 해결 방법
1865정성태2/20/201525283.NET Framework: 499. 특정 닷넷 프레임워크 버전 이후부터 제공되는 타입을 사용해야 한다면?
1864정성태2/18/201530085.NET Framework: 498. C#으로 간단하게 만들어 본 ASCII Art 프로그램 [2]파일 다운로드1
1862정성태2/18/201534654.NET Framework: 497. .NET Garbage Collection에 대한 정리 [6]
1861정성태2/18/201530014.NET Framework: 496. 마우스 커서가 놓인 지점의 문자열 얻는 방법 [1]파일 다운로드1
1860정성태2/18/201529915.NET Framework: 495. CorElementType의 요소 값 설명파일 다운로드1
1859정성태2/17/201531107Windows: 106. 컴퓨터를 재부팅하면 절전(Power Saver) 전원 모드로 돌아가는 경우
1858정성태2/16/201540468Windows: 105. 자동으로 로그아웃/잠김 화면 상태로 전환된다면? [2]
1857정성태2/16/201527415.NET Framework: 494. 값(struct) 형식의 제네릭(Generic) 타입이 박싱되는 경우의 메타데이터 토큰 값파일 다운로드1
1856정성태2/15/201526131.NET Framework: 493. TypeRef 메타테이블에 등록되는 타입의 조건파일 다운로드1
1855정성태2/10/201526039개발 환경 구성: 256. WebDAV Redirector - Sysinternals 폴더 연결 시 "The network path was not found" 오류 해결 방법
1854정성태2/10/201527106Windows: 104. 폴더는 삭제할 수 없지만, 그 하위 폴더/파일은 생성/삭제/변경하는 보안 설정
1853정성태2/6/201558005웹: 29. 여신금융협회 웹 사이트의 "Netscape 6.0은 지원하지 않습니다." 오류 메시지 [5]
1852정성태2/5/201528512.NET Framework: 492. .NET CLR Memory 성능 카운터의 의미파일 다운로드1
1851정성태2/5/201530261VC++: 88. 하룻밤의 꿈 - 인텔 하스웰의 TSX Instruction 지원 [3]
1850정성태2/4/201549679Windows: 103. 작업 관리자에서의 "Commit size"가 가리키는 메모리의 의미 [4]
1849정성태2/4/201528602기타: 51. DropBox의 CPU 100% 현상 [1]파일 다운로드1
1848정성태2/4/201525259.NET Framework: 491. 닷넷 Generic 타입의 메타 데이터 토큰 값 알아내는 방법 [2]
1847정성태2/3/201528093기타: 50. C# - 윈도우에서 dropbox 동기화 폴더 경로 및 종료하는 방법
1846정성태2/2/201537190Windows: 102. 제어판의 프로그램 추가/삭제 항목을 수동으로 실행하고 싶다면? [1]
1845정성태1/26/201539191Windows: 101. 제어판의 "Windows 자격 증명 관리(Manage your credentials)"를 금지시키는 방법
1844정성태1/26/201536178오류 유형: 269. USB 메모리의 용량이 비정상적으로 보여진다면? [7]
... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...