- C++ Containers Cheat Sheet:
1.
http://homepages.e3.net.nz/~djm/cppcontainers.html
2.
http://habrahabr.ru/company/infopulse/blog/194726/
- C++ Iterators & Algorithms Cheat Sheet:
1.
http://homepages.e3.net.nz/~djm/cppiterators.html
- Shifting from C to C++ strings:
1.
http://homepages.e3.net.nz/~djm/cppstrings.html
- C++03 vs C++11:
1.
http://dl.dropboxusercontent.com/u/13100941/C%2B%2B11.pdf
- C++ Quick Reference:
1.
http://www.dreamincode.net/downloads/ref_sheets/cpp_reference_sheet.pdf
- STL Quick Reference:
1.
http://www.digilife.be/quickreferences/QRC/STL%20Quick%20Reference%201.29.pdf
- C++ Concurency:
1.
http://cpprocks.com/wp-content/uploads/C++-concurrency-cheatsheet.pdf
Отдельно по ANSI C:
http://www.digilife.be/quickreferences/QRC/C%20Reference%20Card%20%28ANSI%29%202.2.pdf
Цикл статей камрада
Игоря Кальницкого для “самых маленький” про плюшки нового стандарта C++:
-
Введение в C++11: auto, decltype, nested templates и range-based-for
-
Введение в C++11: nullptr и нововведения в системе инициализации
-
Введение в C++11: лямбда функции
-
Введение в C++11: умные указатели
-
Введение в C++11: новые спецификаторы
-
Введение в C++11: пользовательские литералы
Так же стоит прочитать статью на Википедии, на удивление информативная: C++11

А как оказалось, на разделе с /tmp кончилось место, сказал об том Midnight Commander при запуске.
Надеюсь, что всё таки выберемся за пределы орбиты Земли..
Хорошее руководство:
http://www.newty.de/fpt/index.html
PDF версия:
http://www.newty.de/fpt/zip/e_fpt.pdf
Там же, прицепом: “Callback Implementations in C++”
Дано: контейнер примерно такого вида:
std::list< boost::weak_ptr<Item> > items;
Вместо %%boost::weak_ptr<>%% могу быть:
- %%std::tr1::weak_ptr<>%%
- %%std::weak_ptr<>%% для C++11
Задача: нужно удалить элемент по значению.
Казалось бы, просто сделай:
...
items.remove(value);
...
ан нет: для %%weak_ptr<>%% не определён оператор сравнения. Если потеоретизировать, можно предположить, почему так сделано: что бы гарантировать консистентность указателей при сравнении нужно их захватить (сделать %%value.lock()%%), т.е. создать два %%shared_ptr%% и уже их сравнивать, т.е. лишние накладные расходы.
Поэтому удаление можно делать так:
template <typename T>
bool operator == (const boost::weak_ptr<T>& a, const boost::weak_ptr<T>& b)
{
return a.lock() == b.lock();
}
после такого %%std::list::remove(const T&)%% будет работать для всех типов. Можно и сузить до конкретного.
Либо использовать %%std::list::remove_if(Predicate)%%, предикат объявить как:
struct EqPredicate
{
const boost::weak_ptr<Item>& item;
EqPredicate(const boost::weak_ptr<Item>& item)
: item(item)
{
}
bool operator () (const boost::weak_ptr<Item>& p) const
{
return p.lock() == item.lock();
}
};
и использовать так:
std::list< boost::weak_ptr<Item> > items;
...
items.remove_if(EqPredicate(value));
Информация взята отсюда:
http://stackoverflow.com/questions/1390340/how-can-i-use-stdremove-on-a-container-with-stdtr1weak-ptr
Вышесказанное верно для %%boost::weak_ptr%%, %%std::tr1::weak_ptr%%, %%std::weak_ptr%%
Проект новой игры от создателя Minecraft
-
0x10c
Канву и основные фичи читать на сайте, отмечу только, что в игре придётся заниматься программированием 16-битного компьютера на чипе
DCPU-16, спецификация чипа прилагается. Думаю, что тут можно будет проследить историю развития языков :)
Решил таки переопубликовать свою статью в OpenSource (
http://osa.samag.ru/info/OpenSource068.zip) и у себя в блоге. В журнале статья называется: “QLandKarte GT как замена OziExplorer в GNU/Linux”, здесь же публикую под оригинальным.
Как писал в
позапрошлой заметке - у блога новый домен. Собственно сразу стал вопрос - а как его использовать с моим-то динамическим белым IP адресом?
hatred.homelinux.net - предоставлен DynDNS.com, вот только незадача - они сделали чуть менее, чем всё у себя платным, даже если сейчас я освобожу этот хост - обратно в бесплатном аккаунте я его не выберу.
Именно поэтому в качестве DNS хостера и динамического DNS был выбран
http://dnspark.net
Как делегировать туда свой домен, что делать на nic.ru или у других регистраторов - это за пределами этой статьи, в конце концов, там всё достаточно очевидно, если нет - в комментарии с вопросами :)
Обзавёлся доменом второго уровня:
HTRD.SU. Как запомнить? А достаточно просто:
- Из моего ника выбрасываем все гласные буквы: HaTReD => HTRD
- Смотрим на клавиатуру: буквы образуют как бы трапецию, набираясь в одном направлении: H (влево вверх) T (влево) R (влево вниз) D
- Домен .SU просто запоминаем (да-да, я родился в Советском Союзе :)
- …
- PROFIT!
Посему новый адрес блога:
HTTPS://HTRD.SU
Старый адрес будет доступен ещё неопределённое время. А может и вообще останется как fail-over. Или будет использоваться для доступа домой… В общем не решил ещё :)
Что ещё планируется в ближайшем будущем:
- переезд на более стабильную площадку
- небольшая заметка: как это всё использовать с Dynamic DNS?