Anonymous
Учитывая что знаю java
Alexey
лучше сразу плюсы тогда
Anonymous
Если хочешь выучить си - учи си, если с++ - учи с++
Thorn
rm -rf /usr/src/linux
Anonymous
может утрудиться , скинуть ссылки на современные версии книги, видео итд? буду благодарен
Igor
A.cpp
static X global_codecs = { ... };
size_t codecs_num() { return _COUNT_OF(codecs); } // + declaration in header
B.cpp
static Y var(codecs_num(), ...);
да, я всё ещё на гцц4.4, std::array у меня нет (но возможно есть boost::array, хм...), про вред и ужос глобальных переменных я знаю, и вообще этот код уже некоторое время напрашивается на рефактор
здесь мне оторвёт ноги неопределенным порядком инициализации, или всё-таки оно будет работать как дОлжно?
Berkus
Pavel
синглтон — прекрасная штука для управления порядком инициализации глобальных статических переменных
Igor
оторвет
ок, спасибо, рефакторим 😊
Berkus
немного приятного и красивого
// getchar is defined as a macro in uClibc. Use parenthesis to fix
// gcc bug 58952 for gcc <= 4.8.2.
(std::getchar)();
Stanislav
Berkus
это буст.тест да
Sergey
народ, привет всем, собираю so. Как в cmake указать, что собираемая либа использует другую либу?
Anatoly
Pavel
target_link_libraries
еще add_dependencies - для правильного порядка сборки если несоклько таргетов
Stanislav
еще забыли сказать что для гцц нужно в определенном порядке указывать либы)
Ignat
казалось бы, при чём тут гцц
Anton
sendto() thread safe?
Pavel
Pavel
слать он всёравно будет последовательно
Berkus
Pavel
и если он пошлет меньше, чем попросили?
Berkus
add_dependencies нужен в очень редких случаях
Berkus
Dumitru
Dumitru
Два потока могут писать в один и тот же fd
Ignat
Pavel
другое дело что они не обязаны писать столько, сколько попросили, и всё сломается на уровне логики приложения
Dumitru
Dumitru
А это уже не thread safe
Dumitru
То же самое что писать в stdout с двух потоках
Pavel
однако.
Ignat
интересное определение thread safety, конечно
Дмитрий ⬡
Тут не threadsafe значит "Вызовешь из двух потоков и готовься к повреждениям памяти", к сожалению.
Ignat
см. putchar/putchar_unlocked
Dumitru
А ну если так, то да
Alexander "SonnySlave"
Anonymous
pavel
TLSF аллокатор в современной либе C++ юзается? Если нет, чем он плох на роль дефолтного.
Alexander "SonnySlave"
Alexander "SonnySlave"
а ещё лучше скорее всего спросить у glibc всяких
Anonymous
Pavel
Berkus
Pavel
Berkus
dlmalloc/jemalloc в качестве general purpose используются
pavel
только в RTOS
А на большой машине это типа слишком роскошно или слишком бестолково?
Berkus
Berkus
Caveats
Not designed to be thread safe; the user must provide this
Berkus
https://code.google.com/archive/p/compcache/wikis/AllocatorsComparison.wiki
Berkus
Berkus
lock-free это будет уже медленно
Berkus
со сравнениями, описаниями, анализом, выводами
Berkus
Berkus
Berkus
могу забанить, пойдешь тогда читать?
Berkus
ну это нормально, у меня 6 пдфок ща открыто
Berkus
стр 19 из 229 и всё такое
Andrey
Пишу юниттесты с помощью Catch. Есть cmake проект А в котором один файл с catch_main дефайном, больше ничего. Есть cmake проект Б в котором срр файл с тестами. Проект Б - статическая библиотека. Но если слинклвать Б в А, то тесты не работают. No test runs. Кто нибудь сталкивался? Как-то можно через библиотеки организовать тесты или только напрямую исходники использовать можно?
Berkus
Berkus
и фиксить его яебал
Andrey
Можешь пример что не работает?
Berkus
любой код с фикстурами, TEST_CASE(Fixture, "blabla") в статик либе ломается
Berkus
яхз как они это смогли, в бусте все работает
Andrey
А без фикстуры работает?