Вышел GCC 7.1
От: Шахтер Интернет  
Дата: 03.05.17 15:07
Оценка: +1
здесь

С++17

Буду пробовать...

Upd.

Ну, вроде работает. Ничего не поломали. Концепты тоже работают. Будем пробовать новые фичи.

--- inline variables ---

inline int CommonInt = 100 ;


Теперь можно инлайнить не только функции, но и переменные. Т.е. подобная декларация может быть включена в несколько единиц трансляции (например, через заголовок) без нарушения ODR.

--- Вывод типов для шаблонов классов ---

Теперь можно сделать удобный scope guard.

template <FuncArgType<> Func>
class ScopeGuard : NoCopy
 {
   Func func;

  public:

   explicit ScopeGuard(const Func &func_) : func(func_) {}

   ~ScopeGuard()
    {
     func();
    }
 };


  int x=12345;

  {
   ScopeGuard guard( [&x] () { x=0; } );

   Printf(Con,"#;\n",x);
  }

  Printf(Con,"#;\n",x);
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Отредактировано 04.05.2017 20:03 Шахтер . Предыдущая версия . Еще …
Отредактировано 03.05.2017 18:11 Шахтер . Предыдущая версия .
Отредактировано 03.05.2017 17:18 Шахтер . Предыдущая версия .
Re: Вышел GCC 7.1
От: Masterspline  
Дата: 03.05.17 15:16
Оценка: -2
Ш>Буду пробовать...

Вот когда в Debian разморозится ветка testing, вот тогда можно будет пробовать. А щас это удел экстремалов арчеводов и, возможно, гентушников.
Re[2]: Вышел GCC 7.1
От: cures Россия cures.narod.ru
Дата: 03.05.17 15:39
Оценка:
Здравствуйте, Masterspline, Вы писали:

M>Вот когда в Debian разморозится ветка testing, вот тогда можно будет пробовать. А щас это удел экстремалов арчеводов и, возможно, гентушников.


Или можно взять сорсы и самому скомпилить. Другой вопрос — зачем? Вкусных фишек в стандарте C++ 17 вроде бы особо нет, на скорость результата работы этих новомодных версий GCC, стремительным домкратом догоняющих по номеру Chrome, народ тоже жалуется, фичи выкидываются, у меня на какой-то версии перестал работать ключ, позволяющий выравнивать long double на 12 байт вместо 16, стал выдавать Internal Compiler Error (отдельный котёл тому, кто вообще решил, что оно должно принудительно "выравниваться"). Сейчас с этой гонкой отстанут по скорости (уже почти), по фичам и по надёжности от шланга — и можно будет с чистой совестью закапывать.
Re[3]: Вышел GCC 7.1
От: so5team https://stiffstream.com
Дата: 03.05.17 15:55
Оценка: +2
Здравствуйте, cures, Вы писали:

C>Вкусных фишек в стандарте C++ 17 вроде бы особо нет


Ну это как кому: if init, structured bindings (особенно в сочетании с if init), constexpr if, fold expressions, [[nodiscard]] attribute, template<auto>... Как-то все это вместо более чем вкусно выглядит.
Re: Вышел GCC 7.1
От: _NN_ www.nemerleweb.com
Дата: 04.05.17 10:54
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>--- inline variables ---


Ш>
Ш>inline int CommonInt = 100 ;
Ш>


Ш>Теперь можно инлайнить не только функции, но и переменные. Т.е. подобная декларация может быть включена в несколько единиц трансляции (например, через заголовок) без нарушения ODR.

Есть ли где-нибудь сравнение с MS __declspec(selectany) ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Вышел GCC 7.1
От: Шахтер Интернет  
Дата: 04.05.17 13:24
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, Шахтер, Вы писали:


Ш>>--- inline variables ---


Ш>>
Ш>>inline int CommonInt = 100 ;
Ш>>


Ш>>Теперь можно инлайнить не только функции, но и переменные. Т.е. подобная декларация может быть включена в несколько единиц трансляции (например, через заголовок) без нарушения ODR.

_NN>Есть ли где-нибудь сравнение с MS __declspec(selectany) ?

Без понятия. Я даже не знаю, что такое __declspec(selectany).
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[3]: Вышел GCC 7.1
От: _NN_ www.nemerleweb.com
Дата: 04.05.17 17:50
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Без понятия. Я даже не знаю, что такое __declspec(selectany).

Также позволяет объявлять переменные в заголовочных файлах: https://github.com/search?q=__declspec(selectany)&amp;type=Code&amp;utf8=
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Вышел GCC 7.1
От: uncommon Ниоткуда  
Дата: 11.05.17 05:34
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Ну, вроде работает. Ничего не поломали. Концепты тоже работают. Будем пробовать новые фичи.


Поломали. LTO работает через пень колоду. Clang стандартыне хедеры libstdc++ теперь не компилирует.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.