【问题标题】:Using ODB pragmas使用 ODB 编译指示
【发布时间】:2015-03-17 11:42:39
【问题描述】:

我正在尝试了解 ODB 模型的工作原理。

这是来自the official site的sn-p:

  #pragma db object
  class person
  {
  private:
    friend class odb::access;
    person () {}

    #pragma db id
    string email_;

    string name_;
    unsigned short age_;
  };

我的问题是,如何指定这些自定义 pragma,然后重用它们? (#pragma db 对象)

【问题讨论】:

标签: c++ odb


【解决方案1】:

任何#pragma 都是依赖于编译器的、实现定义的功能。任何#pragma 都被并且只能由相关的特定编译器记录。

【讨论】:

  • 而且因为我永远无法抗拒使用这个精彩的引用:“ANSI 标准中指定'#pragma' 命令具有任意实现定义的效果。在 GNU C 预处理器中, “#pragma”首先尝试运行游戏“rogue”;如果失败,它会尝试运行游戏“hack”;如果失败,它会尝试运行显示河内塔的 GNU Emacs;如果失败,它会报告致命错误。无论如何,预处理不会继续。-- Richard M. Stallman,GNU C 预处理器,版本 1.34"
  • 为什么不能将#pragma写入c标准?
  • @LeiYang:它们在标准中——作为访问依赖于编译器、实现定义的特性的方式(标准除外pragmas,#pragma STDC,是访问特定 标准 功能的标准方式 -- FP_CONTRACTFENV_ACCESSCX_LIMITED_RANGE)。 OP 的 ODB 编译指示不是标准的,请注意我为他们添加了指向“官方网站”的链接到问题中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
相关资源
最近更新 更多