11 Eylül 2020 Cuma

std::remove_pointer

Örnek
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