Berlari ke sesuatu yang aneh ketika melakukan beberapa metaprogramming pemrograman tempo hari. Ini pada dasarnya datang ke pernyataan ini tidak (seperti yang saya harapkan) lewat.
static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>);
Pada awalnya saya pikir saya membuat kesalahan sintaksis mendefinisikan referensi fungsi, tetapi pernyataan ini berlalu, menunjukkan itu tidak terjadi.
static_assert(std::is_same_v<void()&, void()&>);
Saya juga mencoba menerapkan remove_reference
sendiri menyalin sumber dari cppreference tetapi itu tidak berhasil. Apa yang terjadi disini?
Jenis yang Anda miliki bukan referensi ke fungsi, tetapi fungsi dengan kualifikasi referensi .
sumber