gpt4 book ai didi

c++ - `std::nullptr_t` 模板参数的正确用例是什么?

转载 作者:IT老高 更新时间:2023-10-28 12:54:08 31 4
gpt4 key购买 nike

今天才知道C++允许std::nullptr_t:

类型的非类型模板参数
template<std::nullptr_t N> struct A { };

template<std::nullptr_t N> void f() { }

在我的一生中,我无法为这些提出任何明智的用例。任何人都可以为此提出一个理由吗?

最佳答案

这似乎可以避免使用指针类型和 std::nullptr_t 值的特殊情况模板的需要。也就是说,用例看起来像这样:

template <typename T, T Ptr>
struct pointer_object {
static T get_pointer() { return Ptr; }
};

int int_ptr(0);

typedef pointer_object<int*, &int_ptr> int_ptr_t;
typedef pointer_object<std::nullptr_t, nullptr> null_ptr_t;

也就是说,指针值可以是模板参数,因此 nullptr 也应该是。

关于c++ - `std::nullptr_t` 模板参数的正确用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665349/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com