Ведутся технические работы. Это может временно повлиять на скорость работы сайта. Приносим извинения за неудобства и благодарим за ваше понимание!

Современный С++: новые возможности и лучшие методологии (лекция 1)

Лекция Валерия Лесина (SimLabs, СПбАУ РАН) в Лектории CS центра (https://compscicenter.ru/lectures/).

Аннотация: Программы на С++ ценят за их эффективность в использовании ресурсов. Но это же становится и проблемой, поскольку сложность перекладывается на программиста, который должен сам следить за их своевременным освобождением. Если добавить еще и неожиданно вылетающие исключения, то программирование вообще может превратиться в хождение по минному полю. В первой части/лекции будут рассмотрены несколько приемов, позволяющие существенно упростить жизнь и, наконец, избавиться от головной боли, как и когда освобождать ресурсы, а также как их эффективно передавать: от идиомы RAII до move-семантики и rvalue ссылок. Во второй части/лекции пойдет рассказ о встроенных возможностях каррирования и замыкания функций, что делает крайне удобным выполнение обратных вызовов (callbacks). Героями этой части станут bind, function и примкнувшие к ним lamda-функции из стандарта С++11/14.

( ! ) Warning: Invalid argument supplied for foreach() in /home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php on line 44
Call Stack
#TimeMemoryFunctionLocation
10.0002350144{main}( ).../index.php:0
20.0002350424require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ).../index.php:17
30.13048468424require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.13228493112include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ).../template-loader.php:106

Мы рекомендуем


( ! ) Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/domains/malitikov.ru/public_html/wp-includes/class-wpdb.php on line 2322
Call Stack
#TimeMemoryFunctionLocation
10.0002350144{main}( ).../index.php:0
20.0002350424require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ).../index.php:17
30.13048468424require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.13228493112include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ).../template-loader.php:106
50.291222279104WP_Query->__construct( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../single.php:65
60.291222279104WP_Query->query( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../class-wp-query.php:4081
70.291222279104WP_Query->get_posts( ).../class-wp-query.php:3949
80.291622290968wpdb->get_col( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ', $x = ??? ).../class-wp-query.php:3300
90.291622290968wpdb->query( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ' ).../class-wpdb.php:3107
102.9967533108416mysqli_fetch_object( $result = class mysqli_result { public $current_field = 0; public $field_count = 1; public $lengths = [0 => 7]; public $num_rows = 1515341; public $type = 0 } ).../class-wpdb.php:2322