Tip tipteki pointer sayısını bulmak için özyinelemeli (recursive) olarak Şöyle yaparız
#include <type_traits>
template<typename T, int N = 0>
consteval int deref_level()
{
if constexpr (std::is_pointer<T>::value) {
typedef typename std::remove_pointer<T>::type U;
return deref_level<U, N + 1>();
} else {
return N;
}
}
int main() {
return deref_level<int****>(); // Returns 4
}
Hiç yorum yok:
Yorum Gönder