Giriş
Template kodlarda kullanılır.
Örnek
Şöyle yaparız. Template parametresi float ise, T2 float olur. double ise optix::double olur
Elimizde şöyle bir kod olsun. Template parametresine göre bit_type std::uint8 veya daha büyük bir şey olur
Elimizde şöyle bir kod olsun.
Template kodlarda kullanılır.
Örnek
Şöyle yaparız. Template parametresi float ise, T2 float olur. double ise optix::double olur
#include <type_traits> // std::conditional, std::is_same
template <class T>
class MyClass
{
using T2 = typename std::conditional<std::is_same<T, float>::value,
optix::float2, optix::double2>::type;
T2 my_T2_variable;
// ... other code
};
ÖrnekElimizde şöyle bir kod olsun. Template parametresine göre bit_type std::uint8 veya daha büyük bir şey olur
template<std::size_t N>
using bit_type =
std::conditional_t<N == std::size_t{ 8 }, std::uint8_t,
std::conditional_t<N == std::size_t{ 16 }, std::uint16_t,
std::conditional_t<N == std::size_t{ 32 }, std::uint32_t,
std::conditional_t<N == std::size_t{ 64 }, std::uint64_t, void>>>>;
Şöyle yaparız.bit_type<8u> a; // == std::uint8_t
bit_type<16u> b; // == std::uint16_t
bit_type<32u> c; // == std::uint32_t
bit_type<64u> d; // == std::uint64_t
ÖrnekElimizde şöyle bir kod olsun.
template<int N, int M>
struct commondivs {
static const int val = ...
};
val alanına değer atamak için şöyle yaparız.static const int val = std::conditional_t<N < M, foo<N,(M-N)>, bar<(N-M),M>>::val;
Hiç yorum yok:
Yorum Gönder