Вопросов: 774
Ответов: 7241
на новую работу, и тут повсеместно используется size_t для того, чтобы "что-то посчитать", т.е. в качестве "целочисленного типа общего назначения". Я полностью согласен с Джоном Калбом, что подобный тип должен быть знаковым https://youtu.be/wvtFGa6XJDU. Так что size_t - плохой выбор. Долгое время я для этих целей использовал просто int, но т.к. пишу код для 64-битных процессоров, более естественным и более эффективным: https://gcc.godbolt.org/z/fMEvsn6aE является int64_t или даже ещё лучше intptr_t. Но вот беда - его неудобно печатать. Ну то есть надо тянуться пальцами до "64", а потом ещё и зажимать шифт для подчёркивания. К тому же, "64" звучит как некая деталь реализации. Я хочу просто какой-то наиболее подходящий в общем случае целочисленный тип. В котором можно что-то посчитать, поумножать и повычитать, который можно использовать для индексирования массива. Вот если бы я что-то сериализовывал - тогда да, можно было бы явно указать, что там 64 бита. А так - мме. Вот я бы сделал #define int intptr_t, но мне нравятся мои ноги, не хочу отстреливать. Можно сделать using Int = intptr_t. Но это выглядит как какой-то шибко умный тип. Есть предложение using word = intptr_t, что мне пока кажется наиболее интересным. Но может будут ещё какие-то идеи? Что вообще думаете по этому поводу?
написано "If an exception is thrown during the destruction of temporaries or local variables for a return statement [stmt.return], the destructor for the returned object if any is also invoked" https://godbolt.org/z/9E587deEf https://eel.is/c++draft/except.ctor#2
про Restbed.
Есть события изменения размера окна: SDL_WINDOWEVENT_RESIZED и SDL_WINDOWEVENT_SIZE_CHANGED. То есть сначала пользователь нажимает на рамку окна, растягивает окно, затем отпускает мышку и происходит событие. А мне нужно событие что пользователь нажал мышкой на границу окна и начал растягивать окно но еще не отпустил мышку. Другими словами событие на то что окно в процессе изменения размера. Не знаете куда нужно посмотреть чтобы это сделать?
сети несколько гигов. Таким образом boost::beast::http::async_readstate->socket, *state->streambuf, *state->response, [this, state]const boost::system::error_code& ec, std::size_t bytesTransfered { OnReadstate, ec, bytesTransfered; }; он выкачивается целиком, т.е слишком много жрёт оперативки. Если ставлю максимальный размер для streambuf, то получаю buffer overflow искючение. Как большой файл по частям читать из сети?
вывожу но у меня постоянно десятки и единицы нулевые. почему я не могу получить наносекунды в единицах?
const std::unique_ptr<string> t = std::make_unique<std::string>text; on_send_text_shim*this, t; } void on_send_text_shimMyClass& self, std::unique_ptr<std::string>& text noexcept; Нужна ли в const std::unique_ptr<string> t ссылка для t? Копирование по идее очень дёшево для unique_ptr или всё же нет?
кривой и я чего-то не вижу, но все равно, буду рад любому фидбеку... Допустим имеется некоторый метод: bool isIni std::string_view fileFormat { if fileFormat == ".ini" { return true; } return false; } Можно ли как-то ускорить факт осуществление проверки, например, делать это за константу? Я не знаю, есть ли в плюсах такое, но почему бы для каждого модуляметода класса/функции не создать некую структурунапример, хеш-таблицу, которая будет содержать значения переданных аргументов в моменте выполнения, чтобы потом можно было оперировать ими быстрее?
языков при компиляции? я имею в виду, есть исходники, но при компиляции я хочу иметь собранный .exe на английском и немецком, не внося правок в исходный код? пока что нашёл только soluling, но что-то мне не нравится это... заранее спасибо
указатель на таблицу виртуальных функций расположен по смещению 0 а дальше идут поля? Если нельзя, есть ли более-менее надёжный кроссплатформенный способ прочитать vtable для объекта?