Другое С/С++ Вопрос - Ответ

loganhackerdff

Известный
868
519
Ну как минимум emlace_back возвращает lvalue reference, а у тебя auto&&, который rvalue reference
А зачем 2 &&? Один вроде нужен. Да и лучше обращаться к елементам контейнеров через at и попробуй еще в try catch взять код и посмотреть, что за ошибку выдает.
всё равно выбивает, в консоль не выводиться сообщение о исключении, не доходит до него(я не забыл добавить)
 

loganhackerdff

Известный
868
519
так похоже что выбивает только при отладке в визуал студии

или просто намного чаще
 

loganhackerdff

Известный
868
519
cпс пацаны, замена && на & помогла, странно, у меня почти везде auto&& было написано, заменил, а с
RenderClass(RenderClass&) = default;
RenderClass(RenderClass&&) = default;
вообще не компилилось, даже по одной
А нет не помогла
 
Последнее редактирование:

.deserve

Участник
32
36
У тебя не с кодом проблемы, а с тем, где у тебя он вызывается
У тебя указатель на объект CustomRender похерился и сейчас там нул птр
 

san0

Известный
Друг
411
268
Ну как минимум emplace_back возвращает lvalue reference, а у тебя auto&&, который rvalue reference
Неа, в этом случае оба объявления являются идентичными https://en.cppreference.com/w/cpp/language/reference.
C++:
auto&& lvref = objs.emplace_back();
auto& fref = objs.emplace_back();

static_assert(std::is_same<
    decltype(fref), decltype(lvref)>());

RenderClass(RenderClass&) = default;
RenderClass(RenderClass&&) = default;
Посоветовал бы при использовании конструктора копирования помечать соответствующий параметр модификатором const, так как в противном случае это немного не общепринятая практика, особенно если используется семантика перемещения, которая была создана с целью устранения проблем первого конструктора.

А вообще зачем это? Использования вектора априори накладывает ограничения на тип элементов CopyAssignable и CopyConstructible, а emplace_back - MoveInsertable and EmplaceConstructible. Компилятор и так сгенерирует нужные конструкторы.

вообще не компилилось, даже по одной
Так как вы явно указали компилятору, что необходимо создать два конструктора, в частности копирования и перемещения, то также нужно и указать, что требуется создать конструктор по умолчанию.
C++:
RenderClass() = default;
 
  • Нравится
Реакции: kin4stat и shinoa

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
Так как вы явно указали компилятору, что необходимо создать два конструктора, в частности копирования и перемещения, то также нужно и указать, что требуется создать конструктор по умолчанию.
Он у него и так объявлен был
 
У

Удалённый пользователь 448549

Гость
Хочу сделать беск.бег, но когда захочу долго побегать персонаж устает, помогите пожалуйста 🙂
123:
#include <Windows.h>

BOOL APIENTRY DllMain(HMODULE, DWORD  fdwReason, LPVOID) {
    if (fdwReason == DLL_PROCESS_ATTACH) {
        *reinterpret_cast<bool*>(0xB7CEE4) = true; // 0xB7CEE4 - [byte/boolean] Вкл/выкл бесконечный бег
    }
    return TRUE;
}
 
Последнее редактирование модератором:

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
Хочу сделать беск.бег, но когда захочу долго побегать персонаж устает, помогите пожалуйста 🙂
123:
#include <Windows.h>

BOOL APIENTRY DllMain(HMODULE, DWORD  fdwReason, LPVOID) {
    if (fdwReason == DLL_PROCESS_ATTACH) {
        *reinterpret_cast<bool*>(0xB7CEE4) = true; // 0xB7CEE4 - [byte/boolean] Вкл/выкл бесконечный бег
    }
    return TRUE;
}
Переменная при загрузке игры скорее всего сбрасывается. Делай это после загрузки игры
 

loganhackerdff

Известный
868
519
пацаны как хукать wndproc до сампа, чтоб можно было отменить ввод в чат например, самп быстрее чем я походу хукает, есть варик Lowlevel kbd hook, но я не хочу его ставить
мой хук
C++:
    D3DDEVICE_CREATION_PARAMETERS d3dcp;
    pGame->GetDevice()->GetCreationParameters(&d3dcp);

    OrigWndProc = (WNDPROC)SetWindowLongPtr(d3dcp.hFocusWindow, GWL_WNDPROC, (LONG)(LONG_PTR)funcWndProc);
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
пацаны как хукать wndproc до сампа, чтоб можно было отменить ввод в чат например, самп быстрее чем я походу хукает, есть варик Lowlevel kbd hook, но я не хочу его ставить
мой хук
C++:
    D3DDEVICE_CREATION_PARAMETERS d3dcp;
    pGame->GetDevice()->GetCreationParameters(&d3dcp);

    OrigWndProc = (WNDPROC)SetWindowLongPtr(d3dcp.hFocusWindow, GWL_WNDPROC, (LONG)(LONG_PTR)funcWndProc);
До создания CNetGame надо свой хук ставить вроде. Правда некоторые клавиши типа F4 и F5 все равно работают почему-то. Лень разбираться было