std::ranges:lower_bound std::ranges elemanı değil hatasını nasıl çözebilirim?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
3 May 2021
Mesajlar
51
Tepki puanı
3
Ödüller
2
Yaş
24
5 HİZMET YILI
C++:
#pragma once

#include <algorithm>
#include <cassert>
#include <memory>
#include <vector>
#include <type_traits>
#include <utility>


#include "fnv.h"

struct RecvTable;

class Netvars {
public:
    Netvars() noexcept;

    void restore() noexcept;

    uint16_t operator[](const uint32_t hash) const noexcept
    {
        const auto it = std::ranges::lower_bound(offsets, hash, {}, &std::pair<uint32_t, uint16_t>::first);
        if (it != offsets.end() && it->first == hash)
            return it->second;
        assert(false);
        return 0;
    }
private:
    void walkTable(const char*, RecvTable*, const std::size_t = 0) noexcept;
    std::vector<std::pair<uint32_t, uint16_t>> offsets;
};

inline std::unique_ptr<Netvars> netvars;

#define PNETVAR_OFFSET(funcname, class_name, var_name, offset, type) \
[[nodiscard]] auto funcname() noexcept \
{ \
    constexpr auto hash = fnv::hash(class_name "->" var_name); \
    return reinterpret_cast<std::add_pointer_t<type>>(this + netvars->operator[](hash) + offset); \
}

#define PNETVAR(funcname, class_name, var_name, type) \
    PNETVAR_OFFSET(funcname, class_name, var_name, 0, type)

#define NETVAR_OFFSET(funcname, class_name, var_name, offset, type) \
[[nodiscard]] std::add_lvalue_reference_t<type> funcname() noexcept \
{ \
    constexpr auto hash = fnv::hash(class_name "->" var_name); \
    return *reinterpret_cast<std::add_pointer_t<type>>(this + netvars->operator[](hash) + offset); \
}

#define NETVAR(funcname, class_name, var_name, type) \
    NETVAR_OFFSET(funcname, class_name, var_name, 0, type)
Post automatically merged:

beyler bu sorunu nasıl çözcem sabahtan beri araştırıyorum yok abi bulamıyorum yok!!!!!
 
CoreCheat CSGO
Griffin Premium
Katılım
10 May 2016
Mesajlar
1,766
Çözümler
5
Tepki puanı
720
Ödüller
14
Yaş
25
Sosyal
10 HİZMET YILI
Anlaşılan osiris pasteliyorsun. Neyse std::ranges bir c++20 eklentisi yani c++ sdk sını değiştirip c++ sürümünü de en sona çekmen lazım.

NOT: VisualStudio 2019 u güncellemen lazım ve genelde visualstudio otomatik c++17 seçer.
 
Onaylı Üye
Katılım
3 May 2021
Mesajlar
51
Tepki puanı
3
Ödüller
2
Yaş
24
5 HİZMET YILI
Anlaşılan osiris pasteliyorsun. Neyse std::ranges bir c++20 eklentisi yani c++ sdk sını değiştirip c++ sürümünü de en sona çekmen lazım.

NOT: VisualStudio 2019 u güncellemen lazım ve genelde visualstudio otomatik c++17 seçer.
yardım için teşekürler
 
Seçkin Üye
Katılım
2 Ara 2020
Mesajlar
304
Tepki puanı
11
Ödüller
4
Yaş
28
5 HİZMET YILI
discorda gel seste yapalım kral anlatması zor mr#0002
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst