- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚发现 C++ 11 中存在 std::add_pointer
。我查看了以下链接中的文档,但我并没有真正理解这样一个对象的目的:
http://www.cplusplus.com/reference/type_traits/add_pointer/
std::add_pointer<int>
之间的主要区别是什么和一个经典的指针,即 int*
?::value
吗?)最佳答案
template<class T>struct tag_t{using type=T;};
template<class Tag>using type=typename Tag::Type;
template<template<class...>class Z, template<class...>class Test, class T>
struct apply_if:
std::conditional_t< Test<T>{}, tag_t<Z<T>>, tag_t<T> >
{};
template<template<class...>class Z, template<class...>class Test, class T>
using apply_if_t = type<apply_if<Z,Test,T>>;
这需要一个元函数 Z
和测试Test
和类型 T
,并返回 Z<T>
如果Test<T>
为 true,否则返回 T
.
您无法通过just put a * after the type
至apply_if_t
如Z
。您可以通过std::add_pointer
或add_pointer_t
.
假设您只想在函数类型(如 int(int)
)时添加指针。然后apply_if_t< std::add_pointer_t, std::is_function, X >
将是X*
如果X
是一个函数类型,并且 X
如果没有。
std::add_pointer<T>::type
是T*
如int inc(int x){return x+1;}
是x+1
.
关于pointers - std::add_pointer 与经典指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716843/
我刚刚发现 C++ 11 中存在 std::add_pointer 。我查看了以下链接中的文档,但我并没有真正理解这样一个对象的目的: http://www.cplusplus.com/referen
我想使用 std::add_pointer来自 C++ 的模板 header 构造一个指向数组类型的指针。 但是,下面会产生错误 double *y[2]; std::add_pointer::ty
在 cppreference add_pointer ,据说我们可以将其实现为: namespace detail { template struct type_identity { using t
这个问题是A question regarding the implementation of std::add_pointer的后续问题 下std::add_pointer 有如下引用: Other
来自 std::add_pointer Possible implementation namespace detail { template struct type_identity { usin
我是一名优秀的程序员,十分优秀!