错误:未定义模板 'llvm::yaml::MissingTrait 的隐式实例化

2024-02-03

我正在开发一个使用 LLVM YAML I/O 库的项目。这是我正在遵循的文档/教程:

  • https://www.llvm.org/docs/YamlIO.html https://www.llvm.org/docs/YamlIO.html

我正在尝试复制您定义专业化的示例llvm::yaml::MappingTraits for a struct数据类型。该示例位于页面顶部。

这是我写的代码:

#include <cstdlib>  /* for EXIT_FAILURE */
#include <string>
#include <vector>

#include "llvm/Support/YAMLTraits.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/YAMLParser.h"

using std::string;
using std::vector;

using llvm::outs;
using llvm::errs;

using llvm::yaml::ScalarEnumerationTraits;
using llvm::yaml::MappingTraits;
using llvm::yaml::IO;
using llvm::yaml::Input;
using llvm::yaml::Output;

struct Person {
    string name;
    int hatSize;
};

template <>
struct MappingTraits<Person> {
    static void mapping(IO& io, Person& info) {
        io.mapRequired("name", info.name);
        io.mapOptional("hat-size", info.hatSize);
    }
};

int main(int argc, const char **argv) {
    Person tom;
    tom.name = "Tom";
    tom.hatSize = 8;
    Person dan;
    dan.name = "Dan";
    dan.hatSize = 7;
    std::vector<Person> persons;
    persons.push_back(tom);
    persons.push_back(dan);

    Output yout(llvm::outs());
    yout << persons;

    return EXIT_SUCCESS;
}

在我看来,我已经完全复制了他们在该教程中的示例代码。但是当我尝试编译程序(使用 makefile)时,我收到以下神秘的错误消息:

clang++ -I/usr/local/include -std=c++11   -fno-exceptions -fno-rtti -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -std=c++14 -fcxx-exceptions -g -Wall   -c -o yaml_project.o yaml_project.cpp
In file included from yaml_project.cpp:12:
/usr/local/include/llvm/Support/YAMLTraits.h:1871:36: error: implicit instantiation of undefined template 'llvm::yaml::MissingTrait<std::vector<Person, std::allocator<Person> > >'
  char missing_yaml_trait_for_type[sizeof(MissingTrait<T>)];
                                   ^
yaml_project.cpp:153:10: note: in instantiation of function template specialization 'llvm::yaml::operator<<<std::vector<Person, std::allocator<Person> > >' requested here
    yout << persons;
         ^
/usr/local/include/llvm/Support/YAMLTraits.h:307:8: note: template is declared here
struct MissingTrait;
       ^
1 error generated.
<builtin>: recipe for target 'yaml_project.o' failed
make: *** [yaml_project.o] Error 1

我不认为错误出在我用来编译该程序的命令中,因为它之前曾将 LLVM 库编译并链接到我的可执行文件中。我认为问题出在代码中,但我无法确定问题出在哪里。

上述头文件的代码llvm/Support/YAMLTraits.h在这儿:

https://llvm.org/doxygen/YAMLTraits_8h_source.html https://llvm.org/doxygen/YAMLTraits_8h_source.html


阅读文档,在我看来,支持您的特定vector<Person>需要使用宏注册:

LLVM_YAML_IS_SEQUENCE_VECTOR(Person)
// or
LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(Person)

请参阅实用程序宏:https://llvm.org/docs/YamlIO.html#id22 https://llvm.org/docs/YamlIO.html#id22

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

错误:未定义模板 'llvm::yaml::MissingTrait 的隐式实例化 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 配置 Oracle XStream

    我正在尝试由官方配置 Oracle XStream文档 https docs oracle com database 121 XSTRM xstrm xout config htm XSTRM1496 所以 很快 我将以 sysdba 身份
  • 在 Bootstrap Modal 中嵌入标签在 FireFox 中不可见

    我有一个Bootstrap Modal 内的标签用于播放视频 使用 vlc 2 1 3 插件和 flash 进行测试 它在 Chrome Safari 和 Opera 中工作正常 但在 Firefox 中 视频没有显示 而是在后台运行 我可
  • Eclipse - 在不明确的导入上自动导入 java.util 类

    有没有办法 Eclipse 可以自动导入 https stackoverflow com questions 3982885 can eclipse be configured to automatically fix missing im
  • 从 Firebase Promise 分派操作后,ngrx 商店不更新 UI

    我正在尝试使用 Angular 4 开发一个基本的 NativeScript 应用程序 我还使用 ngrx 存储和 firebase 作为实时数据库 当我使用示例数组并更新存储而不与 firebase 集成时 程序工作正常 UI 也得到更新
  • 在 Tkinter python 中相对于父窗口放置子窗口

    我有一个包含按钮的父小部件 当按下按钮时 我想在与其左侧对齐的父窗口小部件正下方打开一个无边框 即没有 Windows 装饰按钮 窗口 我很困惑 似乎 设置窗口位置的唯一方法是使用 geometry 但更糟糕的是 我似乎无法获得父小部件的绝
  • 在 Windows 中为 Docker 容器增加 GB 的 RAM

    我正在关注这个教程https docs docker com docker for windows docker settings dialog https docs docker com docker for windows docker
  • 如何从本地路径ios swift加载图像(按路径)

    在我的应用程序中 我将图像存储在本地存储中 并将该图像的路径保存在数据库中 如何从该路径加载图像 这是我用来保存图像的代码 let myimage UIImage UIImage data data let fileManager NSFi
  • jQuery mobile:如何调用此(默认)错误加载页面消息?

    我正在构建 RESTful 移动应用程序 我喜欢找不到资源时的默认行为 jQuery Mobile 显示了这一点 但是 当我在 onError 中执行自定义 AJAX 时 因为未找到资源 我想显示奇特的消息 但是 我的代码中没有任何反应 默
  • bigtable、cassandra、simpledb、dynamo、couchdb、hypertable、riak、hbase,它们有什么共同点?

    抱歉 如果这个问题有点主观 我对 可以存储 分布式存储 或类似的概念很陌生 我真的很想知道它们有什么共同点 并希望对它们有一个总体的了解 如果我想写一个类似这样的产品 我需要准备什么 The NoSQL 数据库站点 http nosql d
  • 无法更新或安装包:已添加具有相同密钥的项目

    Problem 在特定项目中 我无法更新或安装任何 NuGet 包 当我尝试使用 NuGet GUI 执行此操作时 它会执行一些操作 然后停止运行 什么也不说 当我尝试使用包管理器控制台执行此操作时 我得到以下输出 PM gt Update
  • Julia 0.6中不同类型词典的向量

    我对新的有点困惑whereJulia 0 6 中的语法 我有这样的事情 a Dict a gt b b Dict a gt 3 c Dict a gt c 我想要一个接收字典向量而无需进行显式转换的函数 我尝试过 function bbb
  • 将 jQuery fullcalendar 集成到 PHP 网站中

    我想将 jQuery fullcalendar 集成到我的 PHP 网站中 但我不知道如何处理该事件以及如何使用 MySQL 中的 JSON 数据 任何意见 将不胜感激 确保你的 PHP 可以输出 f以下 HTML 代码 http docs
  • 在项目中使用 Node.js 作为独立的 LESS 编译器?

    我一直在尝试将lessc https github com cloudhead less js tree master bin在一个大型项目中使用 Bootstrap 进行基本设置的编译器 只会导致各种编译错误 每个人都有不同解决方案的票证
  • 服务上的 AccessViolationException

    我正在运行一项服务 该服务连接到一些客户端 它已经启动并运行了几周 这个函数每分钟都会被调用很多次 我在不同的函数中有一些捕获 但是这个异常使它一路崩溃 我以前从未见过这个问题 谁能让这一切发生 Stack Framework Versio
  • 资源与 SQLite

    我正在尝试分析对于需要附带相当大量文本 几本书 的应用程序使用 SQLite 与使用资源之间的权衡 我读了这篇关于原始 XML 文件与 SQLite 的文章 https stackoverflow com questions 5213550
  • 使用 Capistrano 的 Git 工作流程

    我正在尝试使用 capistrano 来了解一个良好的 git 工作流程 我找到了一个few http nakedstartup com 2010 04 simple daily git workflow good http reinh c
  • 如何生成 AdWords API 脚本的 USER_AGENT

    生成 USER AGENT 以使用 Python 从 AdWords API 提取数据的最有效方法是什么 该值是我需要能够提取数据的最后一个值 任何帮助将不胜感激 user agent INSERT USER AGENT HERE 值得庆幸
  • SublimeText 片段的正则表达式

    我现在已经在这个 Sublime Snippet 上停留了一段时间了 我想在创建新类时显示正确的包名称 使用TM FILEPATH and TM FILENAME 打印时TM FILEPATH变量 我得到这样的东西 Users caubry
  • 一个小游戏/测验:你看到我的价值观了吗? (解释十六进制值)

    好的 我需要一些帮助 我有一个蓝牙体重秤 我可以将我的 Raspberry Pi 连接到该秤并获取一些数据 但对我来说 在这个六角沙拉中读懂我的价值观并不容易 每次测量后 我都会得到两行信息 其中应包含我的值 我模拟了所有测量结果 第5个人
  • 错误:未定义模板 'llvm::yaml::MissingTrait 的隐式实例化

    我正在开发一个使用 LLVM YAML I O 库的项目 这是我正在遵循的文档 教程 https www llvm org docs YamlIO html https www llvm org docs YamlIO html 我正在尝试