C++ Windows Phone 8.0 C++;成员初始化

C++ Windows Phone 8.0 C++;成员初始化,c++,c++11,windows-phone-8,windows-runtime,initialization,C++,C++11,Windows Phone 8,Windows Runtime,Initialization,考虑以下设置。我有一个导入Windows Phone运行时组件的Windows Phone项目。该组件包括一个静态库。静态库是我在多个项目中使用的共享代码 如果我将lib创建为windowsphone8.1静态库,那么一切正常。当我尝试将库创建为Windows Phone 8.0项目时,我的成员初始化不起作用。我的成员定义如下: MyClass{ private: bool _myMember = false; } 就像我提到的,这对wp8.1来说很好,但对wp8.0来说失败了。V

考虑以下设置。我有一个导入Windows Phone运行时组件的Windows Phone项目。该组件包括一个静态库。静态库是我在多个项目中使用的共享代码

如果我将lib创建为windowsphone8.1静态库,那么一切正常。当我尝试将库创建为Windows Phone 8.0项目时,我的成员初始化不起作用。我的成员定义如下:

MyClass{
  private:
    bool _myMember = false;
}
就像我提到的,这对wp8.1来说很好,但对wp8.0来说失败了。Visual Studio打印了以下错误消息:

Error   77  error C2864: 'MyClass' : only static const integral data members can be 
initialized within a class  <MyPath>\MyClass.h  141 1   MyLib
Error 77 Error C2864:“MyClass”:只能使用静态常量整型数据成员
在类中初始化\MyClass.h 141 1 MyLib
我知道内联风格的成员初始化是在C++11中添加的,而Micosoft最近刚刚添加了这个特性。
有没有人知道我是否可以在WindowsPhone8.0项目中使用它?我的库非常大,更改所有初始化将是一项非常不令人满意的工作。

遗憾的是,以phone 8.0为目标意味着您将使用v11平台工具集。因此,您使用的是不支持此功能的VS2012编译器

您可以使用VS2013的v12编译器将代码编译为静态库,并将其链接到以phone 8.0为目标的框架项目中(运行库中的模差异)


我有一些轶事证据表明,它在另一方面是成功的(v11编译的静态库链接到v12运行时组件),但该库大部分是C代码。

一个想法是将成员从简单的bool更改为自定义类型,该类型具有与bool的隐式转换,并将自身初始化为false。然后你不需要在任何地方更改任何代码,因为它会自动运行。似乎没有办法让它在WP 8.0上运行。希望WP 10在发布时能得到广泛的适应,这样问题就不会再存在了。