Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
跟风的结果是什么?它是不规范的、未定义的行为还是定义明确且规范的?
struct A {}; std::pointer_traits<A> x;
我问的原因是因为我想知道好奇,因为我想知道任意类型是否是指针。有了这个,我还意味着包括 shared_ptr 和朋友。我想知道是否有一个类型特征(谓词),或者,如果没有,我是否可以使用 pointer_traits 并检测 element_type 是否被声明。
它说它从 20.6.3p1 开始格式错误,因为它没有element_type并且不是类模板实例化
element_type
typedef 见下文 element_type; 类型:Ptr::element_type 如果存在这样的类型;否则,如果 Ptr 是形式的类模板实例化,则为 T SomePointer<T, Args>,其中 Args 是零个或多个类型参数;否则,专业化是不正确的。
typedef 见下文 element_type;
类型:Ptr::element_type 如果存在这样的类型;否则,如果 Ptr 是形式的类模板实例化,则为 T SomePointer<T, Args>,其中 Args 是零个或多个类型参数;否则,专业化是不正确的。
SomePointer<T, Args>