УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.0 пользователей не могут ошибаться!
?6942
прекрасное6443
говно5905
говнорашка5512
хуита4713
anime3066
linux2652
music2634
bnw2601
рашка2565
log2354
ололо2171
дунч1823
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1418
дыбр1238
гімно1158

Зделал швабодную фирмварь для пятибаксового вайфай-выключателя: https://github.com/l29ah/sonoff-wifi-switch-sming
#5D79ST (0+3) / @l29ah / 2872 дня назад

Question: Why do I get a very long compile error when I define more than 20 rows in the transition table?

Answer: MSM uses Boost.MPL under the hood and this is the default maximum size. Please define the following 3 macros before including any MSM headers:
```

define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS

define BOOST_MPL_LIMIT_VECTOR_SIZE 30 // or whatever you need

define BOOST_MPL_LIMIT_MAP_SIZE 30 // or whatever you need

#P1TZGU (4+2) / @ninesigns / 2909 дней назад

TIL QtConcurrent

#4J8MJ2 (0+1) / @ninesigns / 2915 дней назад
c++

*c++ *?
Boost::MSM говно или ок?

#G24DEU (0) / @ninesigns / 2920 дней назад

Создаю asio::io_service, передаю его как reference вниз классу, который на нем открывает socket.
При разрушении всей этой хуйни разрушается io_service, а потом пытается разрушиться socket и радостно вычитвает данные по освобожденной памяти.

Это буст говно или я тупой и так делать нельзя? Ведь не спроста в basic_datagram_socket в конструкторе io_service передается не по const ref, а по обычному?

==2865==ERROR: AddressSanitizer: heap-use-after-free on address 0x604000535538 at pc 0x560b6cf18d1b bp 0x7ffce4792370 sp 0x7ffce4792368
READ of size 8 at 0x604000535538 thread T0
    #0 0x560b6cf18d1a in boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&) /usr/include/boost/asio/deta
il/impl/reactive_socket_service_base.ipp:87
    #1 0x560b6cf1f330 in boost::asio::datagram_socket_service<boost::asio::ip::udp>::destroy(boost::asio::detail::reactive_socket_service<boost::asio::ip::udp>::implementation_type&) /usr/in
clude/boost/asio/datagram_socket_service.hpp:138
    #2 0x560b6cf1f0d5 in boost::asio::basic_io_object<boost::asio::datagram_socket_service<boost::asio::ip::udp>, true>::~basic_io_object() /usr/include/boost/asio/basic_io_object.hpp:197
    #3 0x560b6cf1de95 in boost::asio::basic_socket<boost::asio::ip::udp, boost::asio::datagram_socket_service<boost::asio::ip::udp> >::~basic_socket() /usr/include/boost/asio/basic_socket.hp
p:1512
    #4 0x560b6cf1cfab in boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::datagram_socket_service<boost::asio::ip::udp> >::~basic_datagram_socket() /usr/include/boost/as
io/basic_datagram_socket.hpp:43
0x604000535538 is located 40 bytes inside of 48-byte region [0x604000535510,0x604000535540)
freed by thread T0 here:
    #0 0x7fcfdc9d21f0 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc31f0)
    #1 0x560b6cf26daf in boost::asio::datagram_socket_service<boost::asio::ip::udp>::~datagram_socket_service() /usr/include/boost/asio/datagram_socket_service.hpp:40
    #2 0x560b6cf149fa in boost::asio::detail::service_registry::destroy(boost::asio::io_service::service*) /usr/include/boost/asio/detail/impl/service_registry.ipp:101
    #3 0x560b6cf1493a in boost::asio::detail::service_registry::~service_registry() /usr/include/boost/asio/detail/impl/service_registry.ipp:45
    #4 0x560b6cf17963 in boost::asio::io_service::~io_service() /usr/include/boost/asio/impl/io_service.ipp:53
#LFJFXK (2) / @ninesigns / 2923 дня назад
https://gist.github.com/ndtimofeev/0a6a4e04b5b0c9f3aee17bae24b78db4#file-lambda-cpp — Почему если в 48ой строке заменить явный захват указателя на сокет на & (захватывать всё по ссылке) всё 1) компилируется 2) но сегфолтится при любой попытке обратиться к переменной socket внутри лямбды? При этом, если определить socket вне лямбды вообще, то всё прекрасно захватывается по &.
#H5E0IB (2) / @ndtimofeev / 3085 дней назад
Пришлось сесть за кресты впервые за последние года два. То ощущение когда внезапно на крестах проще городить абстракции и сложнее работать с данными чем в хаскеле.
#MEL43V (6) / @ndtimofeev / 3089 дней назад
  • Ставим rtags через ``M-x package-list-pachages&#39;&#39;
  • Ставим rtags daemon
  • Для текущего проекта генерим JSON compilation datatabse cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=1
  • Если проект не на cmake, ставим bear (есть в debian).
  • Делаем bear make
  • Делаем rc -J . в каталоге с compile_commands.json

Наслаждаемся несосущей навигацией по плюсовому проекту из любимого редактора.

#9009YZ (8+1) / @ninesigns / 3111 дней назад

Вот тут кто-то [наговнил] либу для параллелизма для Rust:

let total_price = stores.par_iter()
.map(|store| store.compute_price(&list))
.sum()

Конечно мало сделать параллелизм простым, его надо сделать ещё и безопасным. Rayon гарантирует, что использование его API никогда не приведёт к гонке данных.

Мне вот интересно, неужели в rust нет способа захватить ref на Weak Box и таким образом выстрелить себе в ногу (ну или организовать race condition).

Не слишком ли громкое заявление?

Олсо, реквестирую подобных либ для плюсцов.

#12REV0 (4) / @ninesigns / 3250 дней назад
... Внезапно АНДРЕЙ увидел ВЫЧИСЛЕНИЕ ЧИСЕЛ ФИБОНАЧЧИ ВО ВРЕМЯ КОМПИЛЯЦИИ НА C++ и замер. В его уставшей, больной голове что-то щелкнуло - он нашел, что искал. Он начал читать книги по C++. Чем дальше он проникал в тайны C++, тем больше он понимал, что этот язык создан для него. Мерзкие извращения, которые он наблюдал на страницах, глубоко резонировали с его истерзанной и едко ненавидящей все светлое душой. Его глаза наливались кровью от удовольствия и слезы текли по щекам, от осознания, что на свете есть люди, не намного менее больные, чем он. АНДРЕЙ понимал, что скоро ему сделают третью лоботомию и тогда он вряд ли сможет написать книгу. Времени до третьей лоботомии оставалось немного и АНДРЕЙ решил начать писать книгу прямо сейчас. "THE TIME IS NOW, ANDREI", сказал он вслух самому себе на ломаном английском с выблядски кривым акцентом и начал писать. Вначале он не знал, в чем суть того, что он пишет. Но со временем картина стала ясной как день. АНДРЕЙ взял самый гнилой, уродский и омерзительный язык программирования и решил довести его до уровня сумасшествия, до сих пор невиданного в мире людей. Первый (и последний) технический рецензент его книги, сошел с ума и убил всю свою семью, после прочтения нескольких глав. Узнав об этом АНДРЕЙ смеялся, пока не потерял сознание. АНДРЕЙ понимал, что все идет как надо. Сразу после того, как он дописал последнюю главу, ему сделали последнюю лоботомию и писать книги ему больше не хотелось. Представители издателя взяли книгу АНДРЕЯ и, согласившись ее издать, спросили у него, как бы он хотел ее назвать. На ломаном, кривом английском он ответил: "MODERN C++ DESIGN: GENERIC PROGRAMMING AND DESIGN PATTERNS APPLIED BY ANDREI ALEXANDRESCU". Его акцент был настолько уебищен, что представители издателя начали ржать, с такой силой, что моча начала струиться по их ногам. Но, слишком поздно они поняли, что это была моча АНДРЕЯ...
#9A9C8F (4+5) / @j123123 / 3264 дня назад
http://www.govnokod.ru/19105 похоже что я изобрел особый стиль говнопрограммирования. Комментарии эпичные, знатно я посрался там с одним типом на тему хуевости C++ шаблонов и constexpr
#RBGV9Q (5) / @j123123 / 3279 дней назад

Между json и boost::serialization выбрал glib-овский GVariant.
Такие дела.

#0B1ET7 (20) / @ninesigns / 3319 дней назад

Хочу анафорический if, который бы делал коньюнкция между операндами и возвращал первый сфейлившийся, плюс который бы анафорично захватывал все значения из операндов

Вот, например:

bool result =
  a_if_and<boost::variant<T>,  boost::none> (
    {msg.getString(v[1]), msg.getString(v[2]), msg.getString(v[3]), msg.getString(v[4])},

  // at least one operand == boost::none
  [&](unisgned int first_null, const std::tuple<boost::variant<T>, boost::variant<T>, ...> &evalValues) { 
    std::cerr << "value " << first_null "is bad" << std::endl;
    return false;
  },

  // otherwise                                                  
  [&](const std::tuple<boost::variant<T>, boost::variant<T>, ...> &evalValues) {
    std::cout << "value 0 =" << evalValues.get(0).get<T> << std::endl;
    std::cout << "value 1 =" << evalValues.get(1).get<T> << std::endl;
    // ...
    return true;
  });

То есть, a_if_end eval-ит аргументы и каждый на неравенство boost::none.
И в зависимости от этого дергает мою лямбдочку.
Что есть чо похожее? Или я слишком охуел?

#LUCOP3 (52) / @ninesigns / 3321 день назад

Пожрал говна с boost::serialization
terminate called after throwing an instance of 'boost::archive::archive_exception'
what(): unregistered void cast 11MediaSetMsg<-20IndicationMsgPayload

Есть чо полущ чтобы перекинуть структурку со строками между двумя процессами?

#RVSAUR (6) / @ninesigns / 3322 дня назад
? c++

Плюсбоги, спалите когда pimpl идиом не подходит?
(кроме очевидных кейсов когда прибавляет а не уменьшает сложность)

#UKWEQY (6) / @ninesigns / 3334 дня назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.