請考慮以下設置。我有一個導入Windows Phone運行時組件的Windows Phone項目。該組件包含一個靜態庫。靜態庫是我在多個項目中使用的共享代碼。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。以下錯誤消息由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項目?我的庫是非常大的,它將是一個非常不滿意的工作來改變所有的初始化。
一個想法是將成員從一個簡單的bool更改爲一個自定義類型,該類型具有隱式轉換爲/從bool並將其自身初始化爲false。那麼你不需要在其他地方更改任何代碼 –