2017-05-10 71 views
1

我尝试编译使用pqxx(PostgreSQL lib for C++)的程序。我的一个函数原型的,看起来是这样的:pqxx :: result :: tuple尚未声明(PostgreSQL库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类型的变量?

谢谢,迈克

回答

1

寻找在不同的文档,pqxx::result::tuple库3.1版存在(见here)。

然后,它在4.0版本(见here)成为pqxx::tuple,和它看起来像它在最新的开发版本disapeared(见here,也许这是DROP掉了std::tuple)。

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

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

编辑:

你自己发现:其实,在pqxx::tuple最新版本替换为pqxx::row

+0

非常感谢您的回答。不幸的是,为'std :: tuple'更改'pqxx :: result :: tuple',会从编译器返回相同类型的错误。我的pqxx版本是5.0.1 – mpaw

0

OK,问题就解决了,感谢@wasthishelpful

我现在pqxx ::排

谢谢使用!