C++17 可选树,错误:不完整类型的无效使用

2023-12-07

当我编译包含可选类型的二叉树时:

#include <optional>

class BinaryTree
{
public:
    BinaryTree();
    int value;
    std::optional<BinaryTree> left,right;
};

int main()
{
    return 0;
}

via

g++ -std=c++17 -Wfatal-errors main.cpp 

我面临这个错误

In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/stl_pair.h:59,
                 from /usr/include/c++/7/utility:70,
                 from /usr/include/c++/7/optional:36,
                 from main.cpp:1:
/usr/include/c++/7/type_traits: In instantiation of ‘struct std::is_trivially_copy_constructible<BinaryTree>’:
/usr/include/c++/7/optional:103:8:   required from ‘class std::_Optional_base<BinaryTree>’
/usr/include/c++/7/optional:451:11:   required from ‘class std::optional<BinaryTree>’
main.cpp:8:28:   required from here
/usr/include/c++/7/type_traits:1409:12: error: invalid use of incomplete type ‘class BinaryTree’
     struct is_trivially_copy_constructible
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.

我应该如何修复这个错误?


可选包含参与时类型的完整实例。

在一个类型的实例中存储该类型的两个实例是不可能的;它需要 2

考虑使用指向类型的唯一指针而不是可选指针。

如果您希望能够复制树,那么您必须编写一个值指针。值指针是一个知道如何深度复制自身的指针。

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

C++17 可选树,错误:不完整类型的无效使用 的相关文章

随机推荐

  • 我的 cookie 真的只是 HTTP 吗? Cookie 请求标头中缺少标志

    我做了一些配置 最终 仅在 HTTP 上设置我的 cookie 似乎 有效 我试过了postman我有以下内容 当我点击登录页面时 在 cookies 部分 我的名为 JSESSIONID 的 cookie 似乎只是 HTTP 它有检查 当
  • 使用MySQL,如何选择某一特定行的查询结果排名?

    今天我花了很多时间尝试各种事情 但似乎都不起作用 这是我的情况 我希望能够根据特定排序行中的 ID 选择行的排名 例如 如果我的查询类似于 SELECT id name FROM people ORDER BY name ASC 结果如下
  • Emgu - CalcHist _rowRange 错误

    我正在尝试使用 OpenCV 的 Emgu C 包装器为图像的反向投影创建直方图 我有以下 OpenCV C 代码 我试图将其转换为 Emgu C char filename char C Images items jpg Mat im i
  • JSF PRG 存在验证错误

    我正在使用带有 PRG 模式的 JSF 在我的导航规则中使用 问题是当我收到验证错误时 例如 用户未设置强制值 重定向未完成 即发布后紧接着获取同一页面 场景是 用户没有输入必填值并提交表单 发生验证错误 并且显示相同视图时出现错误 消息
  • 如何在 ASP.Net MVC 中初始化 Webhook 接收器

    我正在遵循本指南here用于在 ASP Net MVC 中安装和使用 webhook 但看起来本指南适用于 wep api 类型项目 我正在使用 MVC 类型的项目 并且没有 Register 方法 这与 API 项目不同 在 MVC 中
  • 相当于Angular2中的ng-repeat来获取JSON对象的键[重复]

    这个问题在这里已经有答案了 我正在寻找一种使用 Angular2 将 JSON 对象浏览到 HTML 页面的方法 为了得到每个键和每个值 在 AngularJS 中 可以使用指令ng repeat div key div 但在 Angula
  • 如何使用 SharpSVN 访问预提交挂钩中的文件信息

    总的来说 我对 SharpSVN 和 SVN 很陌生 我正在尝试实现一个预提交挂钩 当用户提交某种类型的 XML 文件时 在允许提交文件之前 我需要拦截该文件并对其进行分析 以确保它们包含某些元素 由于 SVN 似乎提交了两个参数 存储库路
  • 获取具有特定时间的 Date() 对象

    我想获取一周的开始日期 我能够获取日期 只是返回的日期具有当前系统时间的时间 例如 如果现在是 19 20 我得到的周开始日期为日期 2012 年 3 月 26 日星期一 19 20 16 GMT 0530 IST 为了准确计算 我需要时间
  • React js从父组件更改子组件的状态

    我有两个组件 父组件我想从中更改子组件的状态 class ParentComponent extends Component toggleChildMenu render return div div
  • SwiftUI显示gif图像

    swiftUI中显示动画gif图片的方法 因为图像 Image fall leaves 不支持gif 回答如下 在 swiftUI 中显示 gif 图像的最简单 最快的方法是使用Preview QuickLook QL QLPreviewV
  • 在sql中生成随机名称

    我有 5 个男性和女性的随机名字 我需要根据性别插入随机名称 但是我们如何在 SQL 中从一组 5 个名称中随机插入名称 是否可以 select name from table order by newid
  • JSF 中组件的水平放置

    应该很简单 但我找不到答案 我想水平放置组件而不是垂直放置 我想要实现的是一个丰富的 具有 2 行或更多行的工具栏 我一直在尝试使用具有面板网格和两个面板组的工具栏来做到这一点 如下所示
  • 如何让窗口绝对置顶?

    我用设置窗口位置api 使用 HWND TOPMOST 参数使我的窗口位于最顶层 它工作正常 但工具提示仍然位于其之上 如何让我的窗口位于所有窗口之上 我缺少一个 api 吗 Edit 我用计时器检查前景窗口然后将我的窗口设置为最上面来修复
  • Ramda:通过与另一个数组中的每个项目进行比较来从数组中获取对象

    我有一个像这样的数组 ids 1 3 5 和另一个数组 例如 items id 1 name a id 2 name b id 3 name c id 4 name d id 5 name e id 6 name f 我想要的是另一个数组
  • Mavericks 安装后 Sublime Text 2 命令行无法运行

    我已经准备好通过 Stack Overflow 上的其他线程 尽管我付出了努力 但问题似乎并未解决 自从安装 OS X Mavericks 以来 我无法从命令行打开 Sublime Text 2 我尝试遵循以下准则 http benkwok
  • 自定义将结构解组为切片映射

    我以为我现在已经理解了解组 但我想还没有 我在用 Go 解组地图时遇到了一些麻烦 这是我到目前为止的代码 type OHLC RESS struct Pair map string Candles Last int64 json last
  • 在发布到服务器之前如何正确地将文件附加到 formData?

    我一直在关注这个FormData 教程在这里 但尚未了解如何表单数据对象 works 我的输入表格
  • 运行时错误 287 - 设置 Inspector.wordeditor 时的 Outlook

    Set oApp CreateObject Outlook Application Set oMailItem oApp CreateItem 0 oMailItem BodyFormat olFormatRichText Set oIns
  • 对 Amazon Alexa Skill Kit (ASK) Lambda 交互进行故障排除

    我从 ASK 开发开始 我对某些行为有点困惑 我想知道如何从 服务模拟器 控制台调试错误 我怎样才能获得更多关于The remote endpoint could not be called or the response it retur
  • C++17 可选树,错误:不完整类型的无效使用

    当我编译包含可选类型的二叉树时 include