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