派生类作为默认参数 g++

2024-04-17

请看一下这段代码:

template<class T>
class A
{
 class base
 {

 };

 class derived : public A<T>::base
 {

 };

public:

 int f(typename A<T>::base& arg = typename A<T>::derived())
 {
  return 0;
 }
};

int main()
{
 A<int> a;
 a.f();
 return 0;
}

编译在 g++ 中生成以下错误消息:

test.cpp: In function 'int main()':
test.cpp:25: error: default argument for parameter of type
                    'A<int>::base&' has type 'A<int>::derived'

基本思想(使用派生类作为基本引用类型参数的默认值)适用于 Visual Studio,但不适用于 g++。我必须将我的代码发布到大学服务器,在那里他们用 gcc 编译它。我能做些什么?我有什么遗漏的吗?


您无法创建对右值的(可变)引用。尝试使用常量引用:

 int f(const typename A<T>::base& arg = typename A<T>::derived())
//     ^^^^^

当然不能修改arg带有常量引用。如果必须使用(可变)引用,请使用重载。

 int f(base& arg) {
   ...
 }
 int f() {
   derived dummy;
   return f(dummy);
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

派生类作为默认参数 g++ 的相关文章

  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 我可以将 char 或 DateTime 设置为 null 吗?

    我可以将 null 设置为char数据类型 并且DateTime在 C 中 多谢你们 这是不可能的 它是一个值类型 使用 char myChar null DateTime myDate null 这相当于 Nullable
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 选择initializer_list迭代器定义

    Why std initializer list
  • 在 .NET Core 中从 HttpResponseMessage 转换为 IActionResult

    我正在将之前在 NET Framework 中编写的一些代码移植到 NET Core 我有这样的事情 HttpResponseMessage result await client SendAync request if result St
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • 如何调试.NET Windows Service OnStart方法?

    我用 NET 编写的代码仅在作为 Windows 服务安装时才会失败 该故障甚至不允许服务启动 我不知道如何进入 OnStart 方法 如何 调试 Windows 服务应用程序 http msdn microsoft com en us l
  • std::make_pair 与浮点数组(float2,无符号整数)

    我有一个用 float2 unsigned int 对模板化的向量 例如 std vector
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 调试错误:在 vc++ 项目中使用 COM 时发生 所需的运行时?

    我为我的工作创建了一个 COM 组件 我也注册了该组件 在我的系统上 我有两个虚拟机工作站 在我的第一个工作站中 它运行良好 在我的第二个工作站中 它显示一个包含消息的错误框该程序需要一段时间并以不寻常的方式关闭 请联系应用程序管理员 我认
  • 意外的 const 引用行为

    include
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 为什么 C++ 标准没有将 sizeof(bool) 定义为 1?

    Size of char signed char and unsigned char由 C 标准本身定义为 1 个字节 我想知道为什么它没有定义sizeof bool also C 03 标准 5 3 3 1 说 sizeof char s
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和
  • 创建进程默认浏览器

    我目前正在使用 ShellExecute 打开 在用户浏览器中打开 URL 但在 Win7 和 Vista 中遇到了一些麻烦 因为该程序作为服务运行提升 我想获取线程 id 因此 ShellExecute 无法获取线程 id 因此我开始使用

随机推荐

  • Mercurial 合并两个命名分支:工作目录没有祖先

    我有两个命名分支 SPRINT 009 和 SPRINT 010 一些变更集已提交给 SPRINT 009 我想将其合并到 SPRINT 010 中 我能够毫无问题地将分支中的变更集合并回默认值 我在将变更集从branch one合并到br
  • Bash 中的多维关联数组

    我正在尝试创建一个多维关联数组 但需要一些帮助 我已审查过这个SO答案中建议的页面 https stackoverflow com questions 3020713 how to print bash varibles contents
  • facebook画布高度在ie8和firefox中没有设置滚动

    嘿 我想设置一个长页面应用程序 没有FB会限制我的应用程序的高度并附加滚动 我做了 iframes canvas 并在设置中自动调整大小并应用该代码 它限制了我在 ie 中显示滚动并在 firefox 中剪切内容 代码在这里 http pa
  • 在python中使用windows资源管理器浏览器存储文件路径

    我在 python 中编写了一些加密代码 它从用户那里获取原始输入消息 然后使用 AES 对其进行加密和解密 现在我想增强工作 我希望我可以从代码中打开 Windows 资源管理器并浏览到计算机上的任何文件 选择它 当我按 确定 按钮时 文
  • noscript 标签的正文样式?

    如果没有启用 JavaScript 我希望我的身体有overflow hidden 没有滚动条 我该如何解决这个问题 是否可以在 内部使用 noscript 标签并在其中设置特定样式 如果你的意思是对于 HTML 文档 我会构建 HTML
  • 根据 XSD 验证 XML 时忽略元素顺序

    我们有一个 XML 需要根据 XSD 进行验证 XML 由 XSTREAM 生成 我们正在使用 jaxp api 根据相应的 XSD 验证 XML 不幸的是 目前我们的测试用例失败 因为生成的 XML 的元素 标签的顺序 顺序与 XSD 不
  • 如何根据本地子网自动切换ssh配置?

    当我在某个网络 子网为 10 10 11 x 上时 我需要跳过中间主机才能到达目的地 因为我无法更改目的地端口 并且可以退出受限网络的端口有限 我成功地使用了如下所示的 ssh 配置 Host web direct web HostName
  • Android:即使视图滚动,如何将广告对齐到屏幕底部?

    之前我问过一个问题 至今没能解决 http stackoverflow com questions 3126347 android relativelayout how to alignparentbottom when wrapped i
  • 有没有办法通过 JNI 将 Java 数组传递给 C 而无需复制它?

    据我所知 使用GetDoubleArrayElements 是JVM决定是否复制Array的元素 这种情况下 有什么办法可以避免复制呢 如果没有 有没有其他方法可以从Java转移到C而无需复制 我正在传递非常大的数组 我希望我可以避免复制
  • Soapui 添加节点到请求 (Groovy)

    我遇到了问题 所以我得到了这样的 WSDL
  • 如何使用 python + NumPy / SciPy 计算滚动/移动平均值?

    numpy scipy 上似乎没有简单计算移动平均值的函数 导致复杂的解决方案 https stackoverflow com questions 12816011 weighted moving average with numpy co
  • 用 Ruby 测量两根弦之间的距离?

    我可以用 Ruby 测量两根弦之间的距离吗 I e compare Test est Returns 1 compare Test Tes Returns 1 compare Test Tast Returns 1 compare Test
  • IIS 6 上的多个域、相同的 Web 应用程序

    在 IIS 6 上 是否可以让多个域名指向同一个 Web 应用程序 并根据域名有条件地从 Web 应用程序内提供 CSS 我需要在同一个 Web 应用程序上托管数百个不同的 皮肤 皮肤取决于域名 而且我真的不想启动大量的 Web 应用程序
  • 如何以编程方式获取服务的状态(正在运行/已停止)

    我需要在我的 C 应用程序中获取 Windows 打印后台处理程序 服务的状态 shikarssj提供的功能运行良好 加载服务时只需要管理员权限 这是一个不需要完全许可的版本 include
  • Ionic/Cordova 更改 Android 导航栏颜色

    我正在尝试更改 Android 中导航栏的颜色 在底部 带有返回键和返回键 在没有硬件返回键和返回键的手机上 在我使用 Cordova 的 Ionic 应用程序中 有没有办法做到这一点 Example 发现了这个很棒的 cordova 插件
  • 如何设置 IntelliJ Idea Scala 项目来识别本地 Ivy2 缓存?

    您可能知道 新版本的 SBT 0 11 旨在维护公共库缓存 ivy2 cache而不是复制项目目录中的完整依赖项集 但是 IntelliJ Idea 我使用 SBT 插件生成 Idea 项目 默认似乎忽略了公共缓存 只看到放在项目目录下的库
  • 将 Python 转换为 R

    我知道有一个模块 rpy 和 rpy2 可以将 R 代码转换为 Python 有什么简单的方法可以做到相反吗 rpy 2 不转换代码 它只允许您通过 python 与 R 进行通信并从 python 中发出 R 命令的接口 鉴于 R 非常依
  • dyld:未加载库:@rpath/SwiftyJSON.framework/SwiftyJSON

    我一直在使用模拟器来测试我的应用程序 今天 我决定在模拟器中使用其他设备来测试它 令我惊讶的是 它在某些设备上启动时崩溃 而在其他设备上却运行得很好 我的应用程序构建运行于 iPad Air 可调整大小的iPad iPhone 5S iPh
  • 在结构体中动态分配结构体

    我正在动态分配一个具有不同结构作为成员的结构 struct a other members struct b struct b基本上持有一个指向另一个的指针struct b 所以想到struct b作为链接列表 如果我动态分配struct
  • 派生类作为默认参数 g++

    请看一下这段代码 template