metaclass: (Default)
[personal profile] metaclass
Судя по тому, что я наблюдаю в либах на Си (например, libuv), магия из макросов весьма популярна, в том числе и для реализации разного рода структур данных вроде списков, хэшей (https://troydhanson.github.io/uthash/) и прочего такого.

Вопрос вот в чем - как это нормально отлаживать то? Падает с access violation где-нибудь в кишках макроса на три страницы, отладчик указывает на строку с макросом и единственный способ понять происходящее - медитировать до бесконечности на содержимое переменных, используемых в макросе, потому что кода не видно. Ну или пытаться в уме разложить дизассемблированный код на исходники.

Date: 2016-07-27 08:24 am (UTC)
From: [identity profile] blackyblack.livejournal.com
C++ и foreach макрос? Но зачем?!

Date: 2016-07-27 09:11 am (UTC)
From: [identity profile] psilogic.livejournal.com
так короче
- ваш Кэп

Date: 2016-07-27 09:13 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Ясно. Тут бы извернуться и сделать generic FOR_EACH для всего, но ХЗ как.

Date: 2016-07-27 09:38 am (UTC)
From: [identity profile] psilogic.livejournal.com
совсем для всего вряд ли получится, а если хочется единообразия для разных типов контейнеров - тогда через одинаковые названия итераторов и методов у итераторов по аналогии с std::for_each и вообще #include <algorithm>
Edited Date: 2016-07-27 09:40 am (UTC)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2025 11:44 pm
Powered by Dreamwidth Studios