Ich bin neulich auf etwas Seltsames gestoßen, als ich eine Vorlagen-Metaprogrammierung durchgeführt habe. Es kommt im Grunde darauf an, dass diese Behauptung nicht (wie ich erwarten würde) vorübergeht.
static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>);
Zuerst dachte ich, ich hätte einen syntaktischen Fehler beim Definieren einer Funktionsreferenz gemacht, aber diese Behauptung ist erfolgreich und zeigt, dass dies nicht der Fall ist.
static_assert(std::is_same_v<void()&, void()&>);
Ich habe auch versucht, remove_reference
mich selbst zu implementieren, indem ich die Quelle von cppreference kopiert habe, aber das hat auch nicht funktioniert. Was geht hier vor sich?