Size: a a a

2020 May 28

AD

Andrey Davydov in pro.cxx
ed braed
Господа, есть вот такой хитровыебанный код:
http://code.re/oUL
Суть его в том, чтобы "регистрировать" классы со строковыми именами в рантайме за счёт простенького макроса в целевом cpp файле.
И он в принципе замечательно работает, но..
Если всё это (+ пара "зарегистрированных" классов) запечь в динамическую библиотеку, и соответственно потом влинковать в целевую исполняшку.. Оно крашнется с сегфолтом при попытке заинсёртить в std::map (метод testObjRegistry::Registry). Очевидно где-то в инициализации ещё до вызова main

Не мог бы мне кто нибудь на пальцах объяснить почему так?
Есть несколько глобальных объектов в разных TU — testObjRegistry::regs, и те, что создаются макросом REGISTRY_TESTOBJ. Порядок их инициализации не опредрелен.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Igor Akhmetov
Для этой фичи NVidia отдельный компилятор выпустила чтобы на gpu параллельные алгоритмы исполнялись, а ты говоришь тулинг не нужен :)
Угу, и тулинг, кстати, его поддерживает (смак)😊
источник

AB

Alex Belov in pro.cxx
ed braed
Господа, есть вот такой хитровыебанный код:
http://code.re/oUL
Суть его в том, чтобы "регистрировать" классы со строковыми именами в рантайме за счёт простенького макроса в целевом cpp файле.
И он в принципе замечательно работает, но..
Если всё это (+ пара "зарегистрированных" классов) запечь в динамическую библиотеку, и соответственно потом влинковать в целевую исполняшку.. Оно крашнется с сегфолтом при попытке заинсёртить в std::map (метод testObjRegistry::Registry). Очевидно где-то в инициализации ещё до вызова main

Не мог бы мне кто нибудь на пальцах объяснить почему так?
а где  __declspec( dllexport )
источник

eb

ed braed in pro.cxx
Andrey Davydov
Есть несколько глобальных объектов в разных TU — testObjRegistry::regs, и те, что создаются макросом REGISTRY_TESTOBJ. Порядок их инициализации не опредрелен.
Но оно получается и в одном исполняемом файле работать не должно, а очень даже работает..
источник

AD

Andrey Davydov in pro.cxx
ed braed
Но оно получается и в одном исполняемом файле работать не должно, а очень даже работает..
Порядок не фиксирован, значит, что иногда может повезти.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Alex
А как тогда мне лабы сделать 😄
источник

eb

ed braed in pro.cxx
Andrey Davydov
Порядок не фиксирован, значит, что иногда может повезти.
Мне прям в 100% случаев везёт, тогда как в 100% случаев с использованием динамической библиотеки - не везёт.
Хотя я конечно не исключаю каких-то "нестандартных" особенностей системы.
Блин, значит это уб?
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Ioann_V
А можно ли сюда переслать, интересный Квиз вопрос по С++?
Да
источник

AD

Andrey Davydov in pro.cxx
ed braed
Мне прям в 100% случаев везёт, тогда как в 100% случаев с использованием динамической библиотеки - не везёт.
Хотя я конечно не исключаю каких-то "нестандартных" особенностей системы.
Блин, значит это уб?
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Вот вам квиз ещё: @CppQuizzBot
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Ioann_V
Знаю, не все из читающих программируют на C++, тем не менее, хотел бы узнать вот что:

Выражение состоящее из Шести подряд идущих точек стало возможным к написанию в...
Анонимная викторина
12%
Точно в C++11
5%
Точно в C++98
3%
Точно в C++03
16%
Точно в C++17
7%
Точно в C++14
15%
Точно в C++20
41%
Планируют принять в будущих стандартах
Проголосовало: 694
Too easy......
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Alexander Zaitsev
И вообще пытаются пилить, так что надежда есть :)

Будет отлично, если ещё автора cppcoro получится уговорить на cmake перевести либу вместо своей какашки
Да, смак был бы лучше как
источник

AD

Andrey Davydov in pro.cxx
ed braed
Мне прям в 100% случаев везёт, тогда как в 100% случаев с использованием динамической библиотеки - не везёт.
Хотя я конечно не исключаю каких-то "нестандартных" особенностей системы.
Блин, значит это уб?
повезет или не повезет решается в момент линковки а не runtime, так что наблюдаемое вами поведение объяснимо
источник

eb

ed braed in pro.cxx
О, спасибо!
источник

I

Ioann_V in pro.cxx
А если так:
источник

I

Ioann_V in pro.cxx
Я признателен тем, кто даёт обратную связь. За следующий вопрос, спасибо одному из читателей.

Выражение из скольки подряд идущих точек НЕ может быть представлено в C++:
Анонимная викторина
11%
1
7%
3
15%
5
8%
4
36%
4 и 5
2%
6
4%
4 и 6
1%
5 и 6
18%
4 и 5 и 6
Проголосовало: 171
источник

I

Ioann_V in pro.cxx
Тоже, easy? Ну, может и быть.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Ioann_V
Я признателен тем, кто даёт обратную связь. За следующий вопрос, спасибо одному из читателей.

Выражение из скольки подряд идущих точек НЕ может быть представлено в C++:
Анонимная викторина
11%
1
7%
3
15%
5
8%
4
36%
4 и 5
2%
6
4%
4 и 6
1%
5 и 6
18%
4 и 5 и 6
Проголосовало: 171
О, это поприкольнее
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Нет
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Это всрато короче очень, да
источник