После обновления до eclipse 2019-03-R или 2019-06-R eclipse показывает ошибки для инициализации фигурной скобки.
, например
Неверные аргументы для
std::string portStr{cfg.portStrInit};
Символ counterStr не может быть разрешен
class Counter
{
private:
std::string counterStr {};
public:
Counter(std::string _counterStr) : counterStr{_counterStr}
}
Наш компилятор Windriver компилирует, что код и версии затмений 2018-12-R и старше не жалуются.
Проблема возникает со сложными типами, например, std :: string, std :: vector, собственные определенные классы ...
Использование простых типов int, long и т. Д. Работает для затмения.
например,
int test{cfg.testInit};
std:string{"Initializing with string and not with variable works for eclipse."};
Наверняка может быть лучше инициализировать с помощью () вместо {} при передаче переменных для сложных типов. Я все еще удивлен, что наш компилятор не жалуется на такую инициализацию.
std::string portStr(cfg.portStrInit); accepted by eclipse instead of
std::string portStr{cfg.portStrInit} not accepted by eclipse;
Но это расширенный код, и мы не хотим изменять сотни строк, чтобы удовлетворить затмение.
Есть ли возможность заставить затмение принимать этот тип инициализации с помощью {} для сложных типов?