C++Niche 语法:函数引用类型声明:const 引用?

问题描述 投票:0回答:2

这是一个小众问题,但我正在努力寻找足够的答案。结构体成员可以是 const,但是函数指针/引用成员可以声明为 const 吗?根据我对 C++17 第 9.3 节的阅读,我不这么认为......

struct Ex {
  const int i;
  void (*pfn)(int i); // can pfn be a const member?
  void (&rfn)(int i); // can rfn be a const member?
};
c++ reference
2个回答
1
投票
  1. 是的:
    struct Ex {
        const int i;
        void (*const pfn)(int i); // can pfn be a const member?
        void (&rfn)(int i); // can rfn be a const member?
    };
    
  2. 它已经是 - 您不能分配给引用函数的成员。

0
投票

使用一点抽象使这变得非常简单:

using fpr_t = void(*)(int);

struct Ex {
  const int i;
  const fpr_t pfn;
  const fpr_t rfn;
};
© www.soinside.com 2019 - 2024. All rights reserved.