Извиняюсь за глупый вопрос, но откуда у пользователя возьмётся корректный стек вызовов?
если приложение чисто серверное, то бояться декомпиляции не стоит?
на практике в релизных сборках устанавливают ли колбэки на системные исключения, вроде сегфолта, с последующим выводом стека вызовов?
хотел переводить
inline
.inline
или static
. Иначе попытка трансляции кода выявит нарушение ODR. Инстанцирование шаблона функции или метода будет помечено как взятое оттуда, где оно определено.static
[?] дает пометку внутреннего связывания для сущности. Константа или переменная в этом случае будет доступна только из того модуля трансляции, который ей пользуется. Статическая глобальная функция помечается как недоступная для связывания в других модулях трансляции. Статический метод будет все так же иметь внешнее связывание, в чем есть свои проблемы.inline
[?] дает пометку слабого внешнего связывания для любой сущности. Что константа или глобальная переменная, что функция или метод (даже статический), помечаются как сущности с внешним связыванием, которое не нарушает ODR в случае если все определения цели связывания во всех модулях трансляции являются полностью одинаковыми. Если хоть одно определение цели связывания отличается - будет нарушение ODR.inline
.../includes/Socket.hpp
?int newEvents = kevent(kq, NULL, 0, tEvent, 32, NULL);
когда ты используешь свою обертку сокета. Но как только меняю тип у переменной fd все ломается.
ft::Socket::Socket(int fd) : _socket(fd) {}
fd
меняешь тип и на что ты его меняешь.kevent
в обоих случаях: когда ты оперируешь сокетом и когда ты оперируешь оберткой сокета.Единственное, что я смогу попытаться сделать это реализовать графику из примитивных объектов или несложных моделей.