2014-11-13 4 views
1

다음 설치를 고려하십시오. Windows Phone 런타임 구성 요소를 가져 오는 Windows Phone Project가 있습니다. 이 구성 요소에는 정적 라이브러리가 포함되어 있습니다. 정적 lib는 여러 프로젝트에서 사용하는 공유 코드입니다.Windows Phone 8.0 C++ 멤버 초기화

lib를 Windows Phone 8.1 정적 라이브러리로 만들면 모든 것이 잘 동작합니다. Windows Phone 8.0 프로젝트로 라이브러리를 만들려고 할 때 멤버 초기화가 작동하지 않습니다.

MyClass{ 
    private: 
    bool _myMember = false; 
} 

나는이 WP 8.1을 위해 잘 작동하지만, WP 8.0 실패 언급 한 것처럼 다음과 같이 내 구성원이 정의된다. 다음과 같은 오류 메시지가 비주얼 스튜디오에 의해 인쇄 :

Error 77 error C2864: 'MyClass' : only static const integral data members can be 
initialized within a class <MyPath>\MyClass.h 141 1 MyLib 

나는 멤버 초기화의 인라인 스타일은 C++ (11)와 Micosoft는 최근에이 기능을 추가 한에 추가 된 것을 알고있다. Windows Phone 8.0 프로젝트에서이 기능을 사용할 수 있다면 단서가 있습니까? 제 lib는 매우 크고 모든 초기화 작업을 변경하는 것은 매우 불만스러운 작업입니다.

+0

단순한 bool에서 bool 로의 /로부터의 암시 적 변환이있는 사용자 정의 유형으로 멤버를 변경하고 자체를 false로 초기화하는 것이 하나의 생각입니다. 그럼 아무데도 코드를 바꿀 필요가 없어. –

답변

1

슬프게도 휴대 전화 8.0을 타겟팅하면 v11 플랫폼 도구 세트를 사용하게됩니다. 따라서이 기능을 지원하지 않는 VS2012 컴파일러를 사용하고 있습니다.

VS2013의 v12 컴파일러를 사용하여 코드를 정적 라이브러리로 컴파일하고이 코드를 전화 8.0을 대상으로하는 골격 프로젝트에 링크 할 수 있어야합니다 (런타임 라이브러리의 모듈러스 차이점).

다른 방법으로도 성공한 예가 있습니다 (v11 런타임 라이브러리의 정적 라이브러리가 v12 런타임 구성 요소에 링크되어 있음).하지만이 라이브러리의 코드는 대부분 C 코드였습니다.

+0

정보를 제공해 주셔서 감사합니다. 나는 오늘 그것을 시험 할 것이다. –

+1

투어 중에. WP 8.0에서 작동하도록하는 방법은 없을 것 같습니다. 문제가 더 이상 지속되지 않으므로 WP 10이 폭 넓은 적응을하게되기를 바랍니다. –

관련 문제