c++ - Windows Phone 8.0 C++ 成员初始化

标签 c++ c++11 windows-phone-8 windows-runtime initialization

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

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

MyClass{
  private:
    bool _myMember = false;
}

就像我提到的,这对 WP 8.1 工作正常,但对 WP 8.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

我知道成员初始化的内联样式是在C++11中添加的,而Micosoft最近才添加了这个功能。 如果我能让它在 Windows Phone 8.0 项目中工作,有人知道吗?我的库非常大,更改所有初始化将是一项非常不令人满意的工作。

最佳答案

遗憾的是,定位手机 8.0 意味着您将使用 v11 平台工具集。因此,您使用的是不支持此功能的 VS2012 编译器。

可能能够使用 VS2013 中的 v12 编译器将您的代码编译为静态库,并将其链接到针对手机 8.0 的框架项目中(运行时库中的模数差异)。

我有一些轶事证据证明它是成功的(v11 编译静态库链接到 v12 运行时组件),但该库主要是 C 代码。

关于c++ - Windows Phone 8.0 C++ 成员初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914328/

相关文章:

c# - 如何提高 Windows Phone 8 map 控制性能

c# - Windows Phone - 如何调出标准拨号盘?

c++ - Release模式和 Debug模式之间的编译时间差异

c++ - 将类的 move 成员作为const引用参数传递

c++ - C++0x 中的缩小转换。只是我,还是这听起来像是一个重大变化?

c++ - 用于复制/转换对象的一系列函数的模板

c++ - 如何将删除器传递给 shared_ptr 持有的同一类中的方法

c++ - 冒泡排序链表不排序

c++ - 等同于 "typename",表示从属名称确实是 'template template parameter'

php - Microsoft 推送通知服务 403 - 禁止 : Access is denied