[NEWS] Вышла статья о новшествах С++17 от ПВС
От: Анатолий Широков СССР  
Дата: 13.10.17 12:08
Оценка: 78 (9)
На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: kov_serg Россия  
Дата: 13.10.17 13:24
Оценка: +1
Здравствуйте, Анатолий Широков, Вы писали:

АШ>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/

Первая мысль была что они проверили реализацию одного из компиляторов.
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Alexander G Украина  
Дата: 13.10.17 13:25
Оценка:

Также, в отличие от union, std::variant позволяет хранить non-POD типы.


Я бы не сказал, что union не может хранить non-POD типы. Уже есть unrestricted unions начиная с С++11.
Русский военный корабль идёт ко дну!
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: rg45 СССР  
Дата: 13.10.17 15:34
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/


pdf-ку бы
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Дрободан Фрилич СССР  
Дата: 13.10.17 20:00
Оценка: :)
Alexander G:

AG>Я бы не сказал, что union не может хранить non-POD типы. Уже есть unrestricted unions начиная с С++11.

Еще бы рефлексию хорошую, и можно будет эффектно взламывать private
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 20.10.17 00:48
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/


Наконец-то нормальный язык начал получаться

А не встречали подобных статей по 11/14ым стандартам?

Кстати, какая студия 17ый стандарт поддерживает?
Маньяк Робокряк колесит по городу
Re[2]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Анатолий Широков СССР  
Дата: 20.10.17 08:12
Оценка:
Здравствуйте, Marty, Вы писали:

M>Кстати, какая студия 17ый стандарт поддерживает?


Можно здесь отслеживать и фичи и версии, в которых они реализованы: http://en.cppreference.com/w/cpp/compiler_support
Re[3]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: johny5 Новая Зеландия
Дата: 20.10.17 08:30
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>Alexander G:


ДФ>Еще бы рефлексию хорошую, и можно будет эффектно взламывать private


#define private public
Re[4]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Дрободан Фрилич СССР  
Дата: 20.10.17 11:17
Оценка: +1
johny5:

ДФ>>Еще бы рефлексию хорошую, и можно будет эффектно взламывать private

J>#define private public
Неа. Саттер раскритиковал такое рещение как неуниверсальное.
У методов с разным спецификатором доступа может быть разный мэнглинг.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Vain Россия google.ru
Дата: 21.10.17 18:46
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/

То самое чувство когда вместо модулей колбасы привезли сахар. Причём в кубиках.

Вопрос:
Когда будет нормальное управление инлайнингом для time critical кода или тоже потом? Вот прямо сейчас два уважающих (или нет?) компилятора Visual Studio 2015 и Intel Parallel Studio 2017 сосут лапу (или что покрупнее?) на инлайне, так что приходится ему подсказывать через __forceinline. По другому эти творения инженерной мысли не понимают.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Анатолий Широков СССР  
Дата: 22.10.17 14:29
Оценка:
Здравствуйте, Vain, Вы писали:

V>Вопрос:

V>Когда будет нормальное управление инлайнингом для time critical кода или тоже потом? Вот прямо сейчас два уважающих (или нет?) компилятора Visual Studio 2015 и Intel Parallel Studio 2017 сосут лапу (или что покрупнее?) на инлайне, так что приходится ему подсказывать через __forceinline. По другому эти творения инженерной мысли не понимают.

По идее, ты можешь участвовать в формировании языка, направляя предложения в комитет по стандартизации С++ через рабочую группы: https://stdcpp.ru/
Отредактировано 23.10.2017 8:34 Анатолий Широков . Предыдущая версия .
Re: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Kluev  
Дата: 31.10.17 14:12
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/


Опережающее описание для вложенных классов в каком тысячелетии сделают?
switch по строкам?
строка как параметр шаблона?
enum в строку и обратно?

PS: Ящитаю, что язык давно пора объявлять deprecated. Хотя бы назначить дату прекращения разработки вместо того чтобы продолжать на пол шишечки насиловать труп.
Re[2]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: so5team https://stiffstream.com
Дата: 31.10.17 18:32
Оценка: :)
Здравствуйте, Kluev, Вы писали:

АШ>>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/


K>Опережающее описание для вложенных классов в каком тысячелетии сделают?


А это что?

K>строка как параметр шаблона?


Вроде как только в D такое есть. Насколько часто это там используется? Можно пример того, что бы вам хотелось сделать в C++ с помощью данной фичи?

K>enum в строку и обратно?


Когда добавят compile-time рефлексию и/или метаклассы, это появится. Т.е. в С++20 или C++23 можно ждать.

K>PS: Ящитаю, что язык давно пора объявлять deprecated. Хотя бы назначить дату прекращения разработки вместо того чтобы продолжать на пол шишечки насиловать труп.


А с мегатоннами легаси что делать?
Re[3]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Kluev  
Дата: 01.11.17 12:14
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, Kluev, Вы писали:


АШ>>>На хабре вышла хорошая статья от ПВС о новшествах С++17: https://habrahabr.ru/company/pvs-studio/blog/340014/


K>>Опережающее описание для вложенных классов в каком тысячелетии сделают?


S>А это что?


Опережающее описание. Для вложенных классов.

S>Когда добавят compile-time рефлексию и/или метаклассы, это появится. Т.е. в С++20 или C++23 можно ждать.


все это было нужно еще в с++98

K>>PS: Ящитаю, что язык давно пора объявлять deprecated. Хотя бы назначить дату прекращения разработки вместо того чтобы продолжать на пол шишечки насиловать труп.


S>А с мегатоннами легаси что делать?


для легаси можно использовать С++RipEdition
Re[4]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: so5team https://stiffstream.com
Дата: 01.11.17 12:32
Оценка:
Здравствуйте, Kluev, Вы писали:

K>>>Опережающее описание для вложенных классов в каком тысячелетии сделают?


S>>А это что?


K>Опережающее описание. Для вложенных классов.


В виде примеров кода вы свои хотелки выразить можете? Как по поводу вложенных классов, так и по поводу строк в качестве параметров для шаблонов.

Или в ваши намерения конструктивное общение не входит?
Re[5]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: Kluev  
Дата: 01.11.17 13:25
Оценка: :))) :)))
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, Kluev, Вы писали:


K>>>>Опережающее описание для вложенных классов в каком тысячелетии сделают?


S>>>А это что?


K>>Опережающее описание. Для вложенных классов.


S>В виде примеров кода вы свои хотелки выразить можете? Как по поводу вложенных классов, так и по поводу строк в качестве параметров для шаблонов.


S>Или в ваши намерения конструктивное общение не входит?


Мое конструктивное предложение язык не развивать, комитет распустить. Примеры кода здесь не нужны.
Re[3]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: alex_public  
Дата: 05.11.17 20:12
Оценка:
Здравствуйте, so5team, Вы писали:

K>>строка как параметр шаблона?

S>Вроде как только в D такое есть. Насколько часто это там используется? Можно пример того, что бы вам хотелось сделать в C++ с помощью данной фичи?

Очень много чего можно делать с помощью этой возможности, о чём в C++ можно только мечтать. Вот http://vibed.org/docs#html-templates известный пример (если что, приложение собирается без всяких препроцессоров, только компилятором D). В общем можно задавать различные EDSL в качестве строк (при этом разбираемым в процессе компиляции и превращаемыми в код). Правда для удобной работы с подобными инструментами требуется не только задание строки, как параметра шаблона, но и нормальная работа со строками (применение различных строковых функций и т.п.) во время компиляции. Но это уже проще добавить, собственно развитие подхода constexpr движется в этом направление, только очень медленно.

Кстати, в современном C++ уже написано множество страшнейших велосипедов для эмуляции слабого подобия подобной функциональности из D, в основном через посимвольное задание строк времени компиляции. Так что очевидно, что имеется огромная проблема в этой области.
Re[4]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: so5team https://stiffstream.com
Дата: 06.11.17 09:46
Оценка:
Здравствуйте, alex_public, Вы писали:

K>>>строка как параметр шаблона?

S>>Вроде как только в D такое есть. Насколько часто это там используется? Можно пример того, что бы вам хотелось сделать в C++ с помощью данной фичи?

_>Очень много чего можно делать с помощью этой возможности, о чём в C++ можно только мечтать. Вот http://vibed.org/docs#html-templates известный пример (если что, приложение собирается без всяких препроцессоров, только компилятором D).


Покажите, пожалуйста, пальцем на конкретный пример из документации. Может быть речь идет вот об этом?:
router.get("/", staticTemplate!"index.dt");

Если так, то что staticTemplate делает с именем "index.dt" в компайл-тайм? Загружает содержимое файла с именем "index.dt" и генерирует из него D-шный код?
Re[5]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: alex_public  
Дата: 06.11.17 21:30
Оценка:
Здравствуйте, so5team, Вы писали:

_>>Очень много чего можно делать с помощью этой возможности, о чём в C++ можно только мечтать. Вот http://vibed.org/docs#html-templates известный пример (если что, приложение собирается без всяких препроцессоров, только компилятором D).

S>Покажите, пожалуйста, пальцем на конкретный пример из документации. Может быть речь идет вот об этом?:
S>
router.get("/", staticTemplate!"index.dt");

S>Если так, то что staticTemplate делает с именем "index.dt" в компайл-тайм? Загружает содержимое файла с именем "index.dt" и генерирует из него D-шный код?

Да, именно так. Причём всё это делается исключительно средствами метапрограммирования на шаблонах, такого же идеологически, как и в C++, только гораздо более продвинутого.
Re[6]: [NEWS] Вышла статья о новшествах С++17 от ПВС
От: so5team https://stiffstream.com
Дата: 07.11.17 07:39
Оценка:
Здравствуйте, alex_public, Вы писали:

S>>Если так, то что staticTemplate делает с именем "index.dt" в компайл-тайм? Загружает содержимое файла с именем "index.dt" и генерирует из него D-шный код?


_>Да, именно так. Причём всё это делается исключительно средствами метапрограммирования на шаблонах, такого же идеологически, как и в C++, только гораздо более продвинутого.


Ну тогда ключевой момент здесь вовсе не в строковом параметре шаблона, а в двух свойствах D-шной конструкции mixin, которой вообще нет в C++: a) возможность взять содержимое внешнего файла и b) возможность отдать компилятору строку для включения ее содержимого в процесс компиляции (строка может быть сформирована и в compile-time). При наличии возможности инжекции нового кода в C++ можно было бы обойтись и без строковых параметров шаблонов, только за счет constexpr. Тогда, теоретически, можно было бы сделать что-то вроде:
constexpr auto index_template() {
  return R"template{...}template";
}
...
router.get("/", make_page(index_template());
...
}

Проблема отсутствия таких средств в C++ на данный момент в большей степени в отсутствии средств инжекции (вероятно, Саттер сейчас эту тему продвинет) и, возможно, в более слабых возможностях constexpr-функций/типов в C++ по сравнению с CTFE в D.

Изначальный же вопрос, на который хотелось бы получить ответ, касается именно использования строк как параметров шаблонов. Если в 99% процентах случаев в D строки-параметры нужны только для последующих mixin-ов, то понятно. Если есть какие-то другие кейсы, то интересно было бы их увидеть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.