Speichern Sie die Wertkategorie von Pointed-to-Objekt (für später Deref)
Posted: 09 Mar 2025, 12:47
Ok, das ist möglicherweise ein bisschen schwer zu erklären:
Ich möchte eine Funktion Hallo aufrufen, die entweder für einen RValue oder einen Lvalue -Ref von JSON überlastet ist. Dieses JSON -Objekt wird von einem JSONKEY mit dem Operator json () Conversion Overloads konvertiert. Aber hier ist die Wendung: Ich erhalte diese JsonKey -Referation durch Dereferencing eines Zeigers, den ich in der Logger -Klasse speichere. Bei der Derferenzung gehen die Informationen über die ursprüngliche Wertkategorie (LVALUE / RVALUE-NESS) des zugrunde liegenden Objekts verloren. Dereferencing gibt mir immer eine LVALUE -Referenz (d. H. Std :: Forward (*_ Curr_key) liefert immer eine Lvalue -Referenz, die immer ich glaube). Hallo mit dem richtigen Überladen?
Ich möchte eine Funktion Hallo aufrufen, die entweder für einen RValue oder einen Lvalue -Ref von JSON überlastet ist. Dieses JSON -Objekt wird von einem JSONKEY mit dem Operator json () Conversion Overloads konvertiert. Aber hier ist die Wendung: Ich erhalte diese JsonKey -Referation durch Dereferencing eines Zeigers, den ich in der Logger -Klasse speichere. Bei der Derferenzung gehen die Informationen über die ursprüngliche Wertkategorie (LVALUE / RVALUE-NESS) des zugrunde liegenden Objekts verloren. Dereferencing gibt mir immer eine LVALUE -Referenz (d. H. Std :: Forward (*_ Curr_key) liefert immer eine Lvalue -Referenz, die immer ich glaube). Hallo mit dem richtigen Überladen?
Code: Select all
#include
#include
#include
struct Json
{
Json() = default;
};
auto hello(const Json& myjson)
{
std::cout