Eclipse показывает ошибки для инициализации агрегата / фигурной скобки начиная с версии 201903-R - PullRequest
1 голос
/ 01 июля 2019

После обновления до 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;

Но это расширенный код, и мы не хотим изменять сотни строк, чтобы удовлетворить затмение.

Есть ли возможность заставить затмение принимать этот тип инициализации с помощью {} для сложных типов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...