Замечательный C++14 мчится нам на встречу. Нововведений масса, из самых интересных я бы отметил Transactional Memory (N3859, N3861) и Concepts Lite (N3889, N3878).
Posts Tagged → C/C++
Overload #119
Коллеги, а знаете ли вы о таком замечательном журнале как Overload? Я уже несколько выпусков как собираюсь о нем написать, но все забываю. На мой взгляд, это лучший журнал посвященный C++ разработке на данный момент. В журнале есть все, начиная от алгоритмов и структур данных, заканчивая особенностями язка C++ и оптимизацией кода.
Явное удаление функций в C++11
Думаю что все помнят что в C++03 для того, что бы сделать какой-либо класс защищенным от копирования было необходимо объявить его конструктор копирования и защищенными.
public:
Foo(){}
~Foo(){}
private:
Foo(const Foo&);
Foo& operator=(const Foo&);
};
Получение сертификатов сайта
Практически любая, сколь-нибудь не стандартная задача выливается в часы малопродуктивного гугления, что печалит. Сегодня я искал ответ на вопрос, как в OSX получить сертификаты сайта, с которым ты планируешь общаться по HTTPS. До кучи дело осложняется тем, что все должно работать не только напрямую, но и через прокси.
Если говорить о Windows, данная задача решается довольно просто, благодаря библиотеке WinHTTP (кажется, ее так звать) и функции
О двух интересных проектах
В этих ваших интернетах, за последнюю неделю, я узнал о двух проектах которые, на мой взгляд, как минимум заслуживают того, что бы о них прочитать. Речь идет о двух новых “почти ОС”, одна из которых совсем уж наброски, а вторая вполне себе рабочий прототип. Интересны системы, в первую очередь, тем на чем они написаны и в какой среде работают. Continue reading
Что бы такое посмотреть, что бы такое почитать? IV
Последнии пару дней необычайно радуют всякими интересностями. Во-первых, появилось несколько заслуживающих внимания предложений по включению в состав моего любимого языка программирования, а именно:
Ну и Майерс с Саттером понарассказали всякого:
- An Effective C++11/14 Sampler. Первый, похоже что делает наброски к новой книге по эффективному использованию C++11;
- One C++. А второй всячески хвалит C++ демонстрируя его пригодность для всего-всего на свете. Да, это выступление можно и не смотреть, я скорее промотал, нежели просмотрел.
Что бы такое посмотреть, что бы такое почитать? III
Надо сказать, эта неделя выдалась довольно интересной: несколько отличных статей по C++, обзор состояния C++1Y и пара выступлений о Rust.
Если говорить о C++, то отличился Саттер, выдавший одну интересную статью и небольшую головоломку:
- О пользе ключевого слова auto и робких аргументах против него;
- Квест на тему минимизации времени сборки;
- Статус C++1Y в рамках библиотеки libc++, будет интересен тем, кому повезло пользоваться приличным C++ компилятором %)
А новости относительно Rust вообще необычайно приятны:
- Старый, базирующийся на C++ runtime заменен на новый, написанный на Rust. Небольшой отчет на этот счет, который хоть и не раскрывает деталей, но более-менее интересен;
- А так же рассказ о движке Servo, посути ради которого и создается Rust.
Да, чуть не забыл. Некоторое время назад я наткнулся на сайт с описанием основных структур данных и алгоритмов с информацией о сложности той или иной операции. Удобно сделано!
C++11 for VIM
Озаботился поддержкой C++11 для самого лучшего редактора на земле, который в кривых руках имеет всего два режима: бибикать и всё портить. Как оказалось, достаточно приемлемую поддержку можно найти тут.
Что бы такое посмотреть, что бы такое почитать? II
По моему мнению, на данный момент существуют 3 книги посвященные C++, которые должен прочитать любой C++ разработчик, который хочет хорошо знать свой основной рабочий инструмент. Continue reading
Инициализация константных переменных
В Rust мне сразу понравилась возможность присваивать переменным результат оператора
let someFlag = false;
let value = if someFlag {
-1
} else {
1
};
io::println(fmt!("value == %d", value))
}
В случае же с C++, для того что бы инициализировать константную переменную приходилось вводить дополнительную функцию или, что чаще, плевать на константность и обходиться обычной переменной. Ну а с C++11 данная проблема решается куда проще
bool someFlag = false;
const auto value = [&]{
if(someFlag)
return -1;
else
return 1;
} ();
std::cout << "value == " << value << std::endl;
return 0;
}
Ну и конечно не забываем про то, что это C++11
P.S. подсмотренно у Саттера.