define preprocesor definition

define NON_AMBIGOUS_OVERLOAD to prevent ambiguous overload
and use int instead of long to prevent ambiguous overload errors
This commit is contained in:
Jonathan Guzmán 2022-04-19 21:58:04 -06:00
parent 6b6078ab3f
commit 179ef091c6
No known key found for this signature in database
GPG Key ID: C2956F1668BA042A
2 changed files with 29 additions and 5 deletions

View File

@ -46,6 +46,8 @@ sqlitecpp_deps = [
sqlite3_dep, sqlite3_dep,
thread_dep, thread_dep,
] ]
## used to override the default sqlitecpp options like cpp standard
sqlitecpp_opts = []
## tests ## tests
@ -59,6 +61,10 @@ sqlitecpp_test_srcs = [
'tests/Exception_test.cpp', 'tests/Exception_test.cpp',
'tests/ExecuteMany_test.cpp', 'tests/ExecuteMany_test.cpp',
] ]
sqlitecpp_test_args = [
# do not use ambiguous overloads by default
'-DNON_AMBIGOUS_OVERLOAD'
]
## samples ## samples
@ -131,10 +137,11 @@ libsqlitecpp = library(
include_directories: sqlitecpp_incl, include_directories: sqlitecpp_incl,
cpp_args: sqlitecpp_args, cpp_args: sqlitecpp_args,
dependencies: sqlitecpp_deps, dependencies: sqlitecpp_deps,
# override the default options
override_options: sqlitecpp_opts,
# install: true, # install: true,
# API version for SQLiteCpp shared library. # API version for SQLiteCpp shared library.
version: '0', version: '0',)
)
install_headers( install_headers(
'include/SQLiteCpp/SQLiteCpp.h', 'include/SQLiteCpp/SQLiteCpp.h',
@ -164,10 +171,12 @@ if get_option('SQLITECPP_BUILD_TESTS')
sqlitecpp_dep, sqlitecpp_dep,
sqlite3_dep, sqlite3_dep,
] ]
sqlitecpp_test_args = []
testexe = executable('testexe', sqlitecpp_test_srcs, testexe = executable('testexe', sqlitecpp_test_srcs,
dependencies: sqlitecpp_test_dependencies) dependencies: sqlitecpp_test_dependencies,
cpp_args: sqlitecpp_test_args,
# override the default options
override_options: sqlitecpp_opts,)
test_args = [] test_args = []
@ -177,7 +186,9 @@ if get_option('SQLITECPP_BUILD_EXAMPLES')
## demo executable ## demo executable
sqlitecpp_demo_exe = executable('SQLITECPP_sample_demo', sqlitecpp_demo_exe = executable('SQLITECPP_sample_demo',
sqlitecpp_sample_srcs, sqlitecpp_sample_srcs,
dependencies: sqlitecpp_dep) dependencies: sqlitecpp_dep,
# override the default options
override_options: sqlitecpp_opts,)
endif endif
pkgconfig = import('pkgconfig') pkgconfig = import('pkgconfig')

View File

@ -374,7 +374,12 @@ TEST(Statement, bindings)
// Sixth row with uint32_t unsigned value and a long value (which is either a 32b int or a 64b long long) // Sixth row with uint32_t unsigned value and a long value (which is either a 32b int or a 64b long long)
{ {
const uint32_t uint32 = 4294967295U; const uint32_t uint32 = 4294967295U;
// preprocessor define to force not use long and use instead uint
#if NON_AMBIGOUS_OVERLOAD
const int integer = -123;
#else
const long integer = -123; const long integer = -123;
#endif
insert.bind(2, uint32); insert.bind(2, uint32);
insert.bind(3, integer); insert.bind(3, integer);
EXPECT_EQ(1, insert.exec()); EXPECT_EQ(1, insert.exec());
@ -493,7 +498,11 @@ TEST(Statement, bindByName)
{ {
const std::string second("second"); const std::string second("second");
const int64_t int64 = 12345678900000LL; const int64_t int64 = 12345678900000LL;
#if NON_AMBIGOUS_OVERLOAD
const int integer = -123;
#else
const long integer = -123; const long integer = -123;
#endif
const float float32 = 0.234f; const float float32 = 0.234f;
insert.bind("@msg", second); insert.bind("@msg", second);
insert.bind("@int", int64); insert.bind("@int", int64);
@ -606,7 +615,11 @@ TEST(Statement, bindByNameString)
{ {
const std::string second("second"); const std::string second("second");
const int64_t int64 = 12345678900000LL; const int64_t int64 = 12345678900000LL;
#if NON_AMBIGOUS_OVERLOAD
const int integer = -123;
#else
const long integer = -123; const long integer = -123;
#endif
const float float32 = 0.234f; const float float32 = 0.234f;
insert.bind(amsg, second); insert.bind(amsg, second);
insert.bind(aint, int64); insert.bind(aint, int64);