gpt4 book ai didi

c++ - 非静态成员函数的 std::add_pointer 实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:24 24 4
gpt4 key购买 nike

这个问题是A question regarding the implementation of std::add_pointer的后续问题

std::add_pointer

有如下引用:

Otherwise (if T is a cv- or ref-qualified function type), provides the member typedef type which is the type T.

基于阅读Non-static member functions: const-, volatile-, and ref-qualified member functions ,我的理解是对于具有给定 cv 和/或 ref 资格的非静态成员函数,

a) 函数的 cv 限定也适用于函数范围内的 this 指针

b) 函数的ref限定不适用于函数范围内的this指针

鉴于此,为什么 std::add_pointer 不能提供成员 typedef type T*在具有 cvref 资格的非静态成员函数的情况下?

最佳答案

根据 [dcl.ptr]/4 :

Note: Forming a pointer to reference type is ill-formed; see [dcl.ref]. Forming a function pointer type is ill-formed if the function type has cv-qualifiers or a ref-qualifier; see [dcl.fct]. Since the address of a bit-field cannot be taken, a pointer can never point to a bit-field.  — end note ]

您想象中的 pointer-to-cv-qualified-function 类型实际上是不存在的。因此,std::add_pointer 不能产生这样的类型:)

关于c++ - 非静态成员函数的 std::add_pointer 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57569505/

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