2 messages in com.mysql.lists.plusplusRe : RE: 'long long' not supported
FromSent OnAttachments
np...@sfr.fr21 Jul 2005 02:14 
Warren Young21 Jul 2005 17:52 
Subject:Re : RE: 'long long' not supported
From:np...@sfr.fr (np@sfr.fr)
Date:07/21/2005 02:14:26 AM
List:com.mysql.lists.plusplus

Just for info, I had the same KIND OF problem on windows platform event with
2.0b2 while trying to integrate MYSQL server sources (4.11/4.12a/5.02b),
MYSQL++(1.7/2.0) and JASPER (free JPEG2000 Library). I saw then the following type redefinition problems : - MYSQL sources defines typedef long long my_longlong => OK - MYSQL++ defines typedef __int64 longlong - JASPER defines typedef long long longlong

When you try to remove the definition on MYSQL++ side, you can go on compiling
further but you reach SQLString::longlong types.

MYSQL++ team, do you think it could be interesting and not destructing regarding
MYSQL++ API to redfines 64 bits types to a name specific to MYSQL++(ex
mysqlpp_longlong) as it is done in MYSQL sources C API to avoid naming conflicts
?

NP.

---------- Message d'origine ----------- Expéditeur : "Purcell Dan Clifford \(UMR-Student\)" <dcp@umr.edu> A : "MySQL++ Mailing List" <plus@lists.mysql.com> CC : Date : Wed, 20 Jul 2005 23:45:28 -0500 Objet : RE: 'long long' not supported Warren Young said:

If you don't need this feature, you can #define NO_LONG_LONGS, but this will only affect MySQL++, not the C API. Also, there were problems with this mode until very recently in the MySQL++ v2.0 development; I'm not even sure if the fixes are in beta2. You may have to use the repository version.

Using the #define NO_LONG_LONGS got rid of that problem, but how can I get
around the problem of all of these redefinitions which result from this change.

g++ -g -Wall -W -I/usr/local/include -I/usr/include/mysql -c -o test.o
test.cpp In file included from /usr/local/include/query.h:49, from /usr/local/include/mysql++.h:45, from test.cpp:6: /usr/local/include/coldata.h:262: redefinition of `template <class Str> longlong mysqlpp::operator+ (mysqlpp::ColData_Tmpl<Str>, long int)' /usr/local/include/coldata.h:255: `template <class Str> long int mysqlpp::operator+ (mysqlpp::ColData_Tmpl<Str>, long int)' previously declared here /usr/local/include/coldata.h:262: redefinition of `template <class Str> longlong mysqlpp::operator+ (long int, mysqlpp::ColData_Tmpl<Str>)' /usr/local/include/coldata.h:255: `template <class Str> long int mysqlpp::operator+ (long int, mysqlpp::ColData_Tmpl<Str>)' previously declared here /usr/local/include/coldata.h:262: redefinition of `template <class Str> longlong mysqlpp::operator- (mysqlpp::ColData_Tmpl<Str>, long int)' /usr/local/include/coldata.h:255: `template <class Str> long int mysqlpp::operator- (mysqlpp::ColData_Tmpl<Str>, long int)' previously declared here /usr/local/include/coldata.h:262: redefinition of `template <class Str> longlong mysqlpp::operator- (long int, mysqlpp::ColData_Tmpl<Str>)' /usr/local/include/coldata.h:255: `template <class Str> long int mysqlpp::operator- (long int, mysqlpp::ColData_Tmpl<Str>)' previously declared here

... the same error is given for the other operators * , / , % , & , ^ , | , <<
, >>

... then these errors

In file included from /usr/local/include/manip.h:47, from /usr/local/include/vallist.h:31, from /usr/local/include/row.h:34, from /usr/local/include/result.h:38, from /usr/local/include/connection.h:39, from /usr/local/include/query.h:50, from /usr/local/include/mysql++.h:45, from test.cpp:6: /usr/local/include/coldata.h: In instantiation of
`mysqlpp::ColData_Tmpl<mysqlpp::const_string>': /usr/local/include/datetime.h:147: instantiated from here /usr/local/include/coldata.h:196: `mysqlpp::ColData_Tmpl<Str>::operator longlong () const [with Str = mysqlpp::const_string]' has already been declared in `mysqlpp::ColData_Tmpl<mysqlpp::const_string>' /usr/local/include/coldata.h:200: `mysqlpp::ColData_Tmpl<Str>::operator ulonglong () const [with Str = mysqlpp::const_string]' has already been declared in `mysqlpp::ColData_Tmpl<mysqlpp::const_string>' In file included from /usr/local/include/vallist.h:31, from /usr/local/include/row.h:34, from /usr/local/include/result.h:38, from /usr/local/include/connection.h:39, from /usr/local/include/query.h:50, from /usr/local/include/mysql++.h:45, from test.cpp:6: /usr/local/include/coldata.h: In instantiation of
`mysqlpp::ColData_Tmpl<string>': /usr/local/include/manip.h:171: instantiated from here /usr/local/include/coldata.h:196: `mysqlpp::ColData_Tmpl<Str>::operator longlong () const [with Str = string]' has already been declared in `mysqlpp::ColData_Tmpl<string>' /usr/local/include/coldata.h:200: `mysqlpp::ColData_Tmpl<Str>::operator ulonglong () const [with Str = string]' has already been declared in `mysqlpp::ColData_Tmpl<string>' make: *** [test.o] Error 1

thanks for your consideration, -Dan

Nicolas PERRIN