Ликбез по С++11, заметки про новый стандарт |
Здравствуйте, гость ( Вход | Регистрация )
Ликбез по С++11, заметки про новый стандарт |
Iron Bug |
18.11.2011, 16:01
Сообщение
#1
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Вот, положу-ка я сюда полезные линки по фичам нового стандарта С++, для просвещения молодёжи
Я последние дни сидела и ковыряла новые возможности C++. Честно говоря, даже для меня некоторые вещи оказались неожиданными и очень полезными. А вы умеете передавать параметры функций без операций копирования памяти? Теперь с С++ это возможно! C++ Rvalue References Explained Эту статью вообще полезно прочитать всем, кто пишет на C++. У этого автора есть другие статьи и ссылки на полезные материалы: http://thbecker.net/start_page_showing_articles.html Также там я нашла ссылку на весьма любопытный сайт, посвящённый вопросам современного С++: http://cpp-next.com Там есть интересные вещи про оптимизацию. Например: http://cpp-next.com/archive/2009/08/want-s...-pass-by-value/ Для любителей головоломок с шаблонами: Variadic templates (шаблоны с переменным числом аргументов): http://www.open-std.org/jtc1/sc22/wg21/doc.../2006/n2080.pdf (документ pdf) Пока поддерживается GCC и MinGW. Часть примеров реально используется в бусте, в библиотеке interprocess. Вот пока самое ценное, что я накопала по новому стандарту. Появится ещё полезный материал - буду сюда ссылки кидать. Сообщение отредактировал Iron Bug - 18.11.2011, 16:01 |
|
|
ViGOur |
19.11.2011, 17:41
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ну тогда сюда просто необходимо так же добавить описание работы с таким нововведением как Lambda Functions in C++11 - the Definitive Guide
А так же: C++11 range-based for loops, пример:
|
|
|
Iron Bug |
19.11.2011, 23:43
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
ну, это простые и понятные мелочи. по ним есть исчерпывающие примеры на обычных сайтах. я искала подробные статьи по сложным нововведениям.
лямбда функции в бусте сто лет назад появились, я даже и не обратила на них внимания они иногда весьма удобны, но реально они мне как-то не пригождались в работе. на самом деле, лямбда-функции - это просто автогенерация некоторых темплейтов, а не принципиально новая фича компилятора. чисто для краткости написания. раньше то же самое делалось через темплейты. да и range-based loops, по сути - чисто синтаксис. код там тот же самый, что и раньше, при объявлении через итератор. просто пишется кратко. но может, и это кому-то пригодится. а вот rvalue reference - это уже совершенно новый метод работы с памятью. так же как и variadic templates. у них нет аналогов или замен в предыдущих стандартах. особенно последнюю фичу я долго ждала. и дико обломалась, когда узнала, что мелкософт на неё просто забил в VC++ 11. теперь под вендой пока юзаю MinGW, хотя отладка там неудобная. |
|
|
Iron Bug |
22.10.2013, 23:13
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
В новой студии Microsoft Visual Studio 2013 появилась поддержка Variadic templates (стандарт С++11).
У них это не поддерживалось, когда-то давно я им об этом писала - вот, сообщили, что сделали, наконец-то. Я даже удивилась Цитата Variadic templates are supported in Visual Studio 2013. See http://msdn.microsoft.com/en-us/library/vstudio/hh409293 for the full list. Ну и какбэ новая студия выпущена, 2013-я. Пройдя по ссылке выше, можно про неё прочитать. Там ещё дополнения по стандарту есть. Кстати, там можно скачать студию 2013: http://www.microsoft.com/visualstudio/eng/downloads Триальные версии - 30 дней, плюс Express, как всегда. Ещё появилась какая-то шняга для тестирования и ведения проектов (как я поняла) - Visual Studio Test. Для скачивания нужна только регистрация на их сайте (это бесплатно и делается моментально). Скачаем - посмотрим. Сообщение отредактировал Iron Bug - 23.10.2013, 7:13 |
|
|
Анна |
3.12.2013, 13:23
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
Пока никак не сталкивалась с новым стандартом на практике , зато литературе несколько раз встречала с таким описанием класса
Правильно ли понимаю, что без Foo(const Foo&) = delete; по новому стандарту, встретив что-то вроде
компилятор сам сгенерит конструктор для копии, а с Foo(const Foo&) = delete; такая самодеятельность приведёт к ошибке? |
|
|
Iron Bug |
3.12.2013, 13:50
Сообщение
#6
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
обычно компилятор сам генерит конструкторы по умолчанию. default лишь ещё раз явно это указывает.
а delete запрещает эту автогенерацию. P.S. компилятор от мелкософта просто игнорирует данные настройки. он хоть и не ругается, но и ничего не делает. Сообщение отредактировал Iron Bug - 3.12.2013, 13:58 |
|
|
Litkevich Yuriy |
4.12.2013, 12:30
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
чёт я относительно delete не понял. Само слово никакого запрета не подразумевает, а подразумевает удаление чего-либо.
Да и чтобы запретить внешний вызов конструктора копирования его достаточно в раздел private поместить. |
|
|
Iron Bug |
4.12.2013, 13:14
Сообщение
#8
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 15:04 |