【问题标题】:pqxx::result::tuple has not been declared (PostgreSQL library for c++)pqxx::result::tuple 尚未声明(用于 c++ 的 PostgreSQL 库)
【发布时间】:2017-05-10 10:52:05
【问题描述】:

我尝试编译使用 pqxx(PostgreSQL lib for c++)的程序。我的一个函数原型,如下所示:

bool compare(pqxx::result::tuple row1, pqxx::result::tuple row2);

编译器对这一行说:

classes.h:64:38: error: 'pqxx::result::tuple' has not been declared
   bool compare(pqxx::result::tuple row1, pqxx::result::tuple row2);

我不知道为什么会出现此错误。我已经像这样包含pqxx

#include <pqxx/pqxx>

我在其他地方使用pqxx::result,它可以工作。为什么我不能删除 pqxx::result::tuple 类型的变量?

谢谢,迈克

【问题讨论】:

    标签: c++ postgresql libpqxx


    【解决方案1】:

    查看不同的文档,pqxx::result::tuple 存在于库的 3.1 版中(请参阅here)。

    然后它在 4.0 版中变成了 pqxx::tuple(参见 here),并且看起来它在最新的开发版本中消失了(参见 here,也许它被 std::tuple 删除了)。

    因此,如果您使用的是 4.0 版,请将代码中的 pqxx::result::tuple 替换为 pqxx::tuple

    如果您使用的是最新的开发版本,请尝试将您的代码中的pqxx::result::tuple 替换为std::tuple

    编辑:

    你自己发现的:事实上,pqxx::tuple 在最新版本中被 pqxx::row 取代。

    【讨论】:

    • 非常感谢您的回答。不幸的是,将pqxx::result::tuple 更改为std::tuple,会从编译器返回相同类型的错误。我的 pqxx 版本是 5.0.1
    猜你喜欢
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2017-05-18
    • 2017-07-05
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多