← All posts tagged C++

Bogolt
C++ Испытал шок, вот так работаешь работаешь, а потом вдруг узнаешь как оно работает. Оказывается директива #include просто включает тело одного файла в тело другого... Что дает совершенно дикие возможности, например в середине описания класса вызывать #include "noncopyable.h" и получить в код еще пару функций. Или прямо в теле функции заинклюдить какой-то другой код.. Сейчас проверил, все работает, безумие.
Bogolt
C++ программирование Написал код. Честно ожидал что он крэшнется, но ничего подобного. Я всегда думал что красно-черные деревья, используемые в std::map перебалансируются после каждого insert/erase. Но то что код работает подсказывает, что после erase() ничего не меняется ( в принципе логично если там внутри обычный сортированный список ). Отсюда вопрос — это всегда будет так, или на какой-то другой имплементации мэпа — оно таки упадет? pastebin.com
Bogolt
C++ он такой си++ / void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Server, Session*, boost::system::error_code const&>, boost::_bi::list3<boost::_bi::value<Server*>, boost::_bi::value<Session*>, boost::arg<1> ()()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, Server, Session, boost::system::error_code const&>, boost::_bi::list3<boost::_bi::value<Server*>, boost::_bi::value<Session*>, boost::arg<1> ()()> > >(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Server, Session, boost::system::error_code const&>, boost::_bi::list3<boost::_bi::value<Server*>, boost::_bi::value<Session*>, boost::arg<1> ()()> >, boost::system::error_code> const&, boost::_bi::bind_t<void, boost::_mfi::mf2<void, Server, Session, boost::system::error_code const&>, boost::_bi::list3<boost::_bi::value<Server*>, boost::_bi::value<Session*>, boost::arg<1> (*)()> >&) (handler_invoke_helpers.hpp:41) /
Bogolt
C++ задача: есть вектор интов — от него нужно посчитать црц32. Црц32 считается от сишной строки. И тут так и просится решение crc32((const char*)v)) — но это ошибка. Потому что вначале ко всем интам нужно применить ntohl — очень подлая бага