Рассмотрите следующую настройку. У меня есть проект Windows Phone, который импортирует компонент Runtime для Windows Phone. Этот компонент включает статический lib. Статический lib - это общий код, который я использую в нескольких проектах.Инициализация члена Windows Phone 8.0 C++
Если я создаю библиотеку как статическую библиотеку 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 Project? Моя библиотека очень большая, и было бы очень неудовлетворительной работу по изменению всей инициализации.
Одна мысль состоит в том, чтобы изменить член от простого bool до пользовательского типа, который имеет неявные преобразования в/из bool и инициализирует себя как false. Тогда вам не нужно менять код нигде больше –