Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems with "arm64-v8a" and "x86_64" on Android on bind method #186

Closed
paulocoutinhox opened this issue Feb 27, 2019 · 22 comments
Closed
Assignees
Labels

Comments

@paulocoutinhox
Copy link
Contributor

paulocoutinhox commented Feb 27, 2019

Hi,

Im compiling a program in archs win64, macos64, all ios archs and all android archs.

But only on Android NDK 18 "arm64-v8a" and "x86_64" i get problem:

/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:91:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~

My method is simple:

void TodoDataService::update(int64_t id, const Todo & todo)
{
    auto sql = \
            "UPDATE todo SET " \
            "title = :title, " \
            "body = :body, " \
            "data = :data, " \
            "done = :done, " \
            "updated_at = :updated_at " \
            "WHERE id = :id";

    auto application = std::static_pointer_cast<ApplicationCoreImpl>(ApplicationCore::shared());
    auto db = application->getDB();

    SQLite::Statement query(*db, sql);

    query.bind(":id", id);    // <----- line with error
    query.bind(":title", todo.title);
    query.bind(":body", todo.body);
    query.bind(":data", MapHelper::toJsonString(todo.data));
    query.bind(":done", todo.done);
    query.bind(":updated_at", DateTime::getStringFromDateTime(todo.updatedAt));
    query.exec();
}

I cannot change from "int64_t" because it is used by djinni to generate all "i64" types.

Can you help me? Im need it to publish new version of my library.

Thanks.

FULL LOG

/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:91:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:175:10: note: candidate function
    void bind(const char* apName, const int             aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:179:10: note: candidate function
    void bind(const char* apName, const unsigned        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:183:10: note: candidate function
    void bind(const char* apName, const long long       aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:187:10: note: candidate function
    void bind(const char* apName, const double          aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:239:17: note: candidate function
    inline void bind(const std::string& aName, const int            aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:246:17: note: candidate function
    inline void bind(const std::string& aName, const unsigned       aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:253:17: note: candidate function
    inline void bind(const std::string& aName, const long long      aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:260:17: note: candidate function
    inline void bind(const std::string& aName, const double         aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:112:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const int           aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:116:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const unsigned      aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:120:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const long long     aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:124:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const double        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:193:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    void bind(const char* apName, const std::string&    aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:199:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    void bind(const char* apName, const char*           apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:269:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    inline void bind(const std::string& aName, const std::string&    aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:278:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    inline void bind(const std::string& aName, const char*           apValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:130:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const std::string&  aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:136:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const char*         apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:170:10: note: candidate function not viable: requires single
      argument 'aIndex', but 2 arguments were provided
    void bind(const int aIndex);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:233:10: note: candidate function not viable: requires single
      argument 'apName', but 2 arguments were provided
    void bind(const char* apName); // bind NULL value
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:327:17: note: candidate function not viable: requires single
      argument 'aName', but 2 arguments were provided
    inline void bind(const std::string& aName) // bind NULL value
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:142:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const int aIndex, const void*         apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:205:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const char* apName, const void*           apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/2523426ca55b5c6ecb33b90575275e28ccb7fd4b/include/SQLiteCpp/Statement.h:287:17: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    inline void bind(const std::string& aName, const void*           apValue, const int aSize)
@SRombauts SRombauts self-assigned this Feb 28, 2019
@SRombauts SRombauts added the bug label Feb 28, 2019
@SRombauts
Copy link
Owner

Hi, yes I see what the problem is; int64_t is defined differently by compilers, sometimes as a typedef to long long (where long is only 32 bits), but sometimes only as a long, long (where long is 64 bits) and sometimes with recent compiler as a type of it's own

=> you might have to use precompiler #idfdef to try to define a new bind() method dedicated to this new int64_t type.
I though I had already deal with this, but either not completely, either someone else changed something, or you have found a new combination/a new platform (check the code elsewhere to see if I had to do specifics for 64 bits)

@paulocoutinhox
Copy link
Contributor Author

Hi,

Im using sqlitecpp from conan, i don't know if it is relevant.

Im searching for typedefs of int64_t inside ndk, and i found this:

image

This could help.

@SRombauts
Copy link
Owner

Yes, that's exactly what I was talking about.

The problem is there is already some code to deal with that

#if (LONG_MAX == INT_MAX) // sizeof(long)==4 means the data model of the system is ILP32 (32bits OS or Windows 64bits)
    /**
     * @brief Bind a 32bits long value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
     */
    void bind(const int aIndex, const long          aValue)
    {
        bind(aIndex, static_cast<int>(aValue));
    }
#else // sizeof(long)==8 means the data model of the system is LLP64 (64bits Linux)
    /**
     * @brief Bind a 64bits long value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
     */
    void bind(const int aIndex, const long          aValue)
    {
        bind(aIndex, static_cast<long long>(aValue));
    }
#endif

    /**
     * @brief Bind a 64bits int value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
     */
    void bind(const int aIndex, const long long     aValue);

but the #ifdef is probably not working on your platform (Android) because there the it's a new variant that would need a new #if else

@SRombauts
Copy link
Owner

I would love to help more but I am already quite overloaded at my day work nowadays, and I won't be able to reproduce what you see easily ;

  1. The perfect solution would be to find the correct sequence of #if else to deal with all platforms
  2. the easiest solution for you would be to remove entirely all these and remove the ambiguity

The ambiguity comes from the fact that you have a multiple definitions of bind() that could match int64 (long and long long) so just remove the second one

@SRombauts
Copy link
Owner

For the clean solution I would like to now if you are in the #id defined LP64 branch

@paulocoutinhox
Copy link
Contributor Author

Hi,

How I can change source code if I’m in conan. Conan download source and compile automatic.

I will check the define.

@paulocoutinhox
Copy link
Contributor Author

paulocoutinhox commented Mar 2, 2019

Hi, yes. LP64 is enable for all 64bits. Because this i only have problems with arm64-v8a and x86_64.

https://stackoverflow.com/questions/6721037/where-is-lp64-defined-for-default-builds-of-c-applications-on-osx-10-6

#define __LP64__ 1

Can you help me solve it?

@SRombauts
Copy link
Owner

I will try to fix this this morning

@SRombauts
Copy link
Owner

I am unable to reproduce, I would like to get the full error logs from your project if possible

@paulocoutinhox
Copy link
Contributor Author

Thanks man. Im using it with conan. Only this dependency is left fix to finish this and publish to github. I will put here the full log now. 1min.

@paulocoutinhox
Copy link
Contributor Author

FULL LOG:

[INFO] Running "build" on target "android_aar"...
[INFO] Building for: arm64-v8a/Debug...
Configuration:
[settings]
arch=armv8
arch_build=x86_64
build_type=Debug
compiler=clang
compiler.libcxx=libc++
compiler.version=7.0
os=Android
os.api_level=21
os_build=Macos
[options]
android_aar:project_config_name=core
[build_requires]
*: android-ndk/r18@theodelrieu/testing
[env]

sqlitecpp/2.2.0@bincrafters/stable requirement sqlite3/3.20.1@bincrafters/stable overridden by android_aar/0.0.1@None/None to sqlite3/3.27.2@bincrafters/stable 
sqlitecpp/2.2.0@bincrafters/stable: WARN: Can't update, no package in remote
sqlite3/3.27.2@bincrafters/stable: WARN: Can't update, no package in remote
android-ndk/r18@theodelrieu/testing: ************************************************************
android-ndk/r18@theodelrieu/testing:   This package defines both 'os' and 'os_build' 
android-ndk/r18@theodelrieu/testing:   Please use 'os' for libraries and 'os_build'
android-ndk/r18@theodelrieu/testing:   only for build-requires used for cross-building
android-ndk/r18@theodelrieu/testing: ************************************************************
conanfile.py (android_aar/0.0.1@None/None): Installing package
Requirements
    rapidjson/1.1.0@bincrafters/stable from 'conan-center' - Cache
    sqlite3/3.27.2@bincrafters/stable from 'conan-center' - Cache
    sqlitecpp/2.2.0@bincrafters/stable from 'conan-center' - Cache
Packages
    rapidjson/1.1.0@bincrafters/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
    sqlite3/3.27.2@bincrafters/stable:68ec06f66bc621526ba5191c8f71c9b2f0c00e38 - Cache
    sqlitecpp/2.2.0@bincrafters/stable:833334dd7a6b904d7b430e9ab3e47d81ac70807b - Cache
Build requirements
    android-ndk/r18@theodelrieu/testing from 'theodelrieu' - Cache
Build requirements packages
    android-ndk/r18@theodelrieu/testing:089e0bdb9fdcbe66e71ad399fd4591508697382b - Cache

Cross-build from 'Macos:x86_64' to 'Android:armv8'
android-ndk/r18@theodelrieu/testing: Already installed!
rapidjson/1.1.0@bincrafters/stable: Already installed!
sqlite3/3.27.2@bincrafters/stable: Already installed!
sqlitecpp/2.2.0@bincrafters/stable: Already installed!
conanfile.py (android_aar/0.0.1@None/None): Applying build-requirement: android-ndk/r18@theodelrieu/testing
conanfile.py (android_aar/0.0.1@None/None): Generator cmake created conanbuildinfo.cmake
conanfile.py (android_aar/0.0.1@None/None): Generator txt created conanbuildinfo.txt
conanfile.py (android_aar/0.0.1@None/None): Generated conaninfo.txt
conanfile.py (android_aar/0.0.1@None/None): Generated graphinfo
conanfile.py (android_aar/0.0.1@None/None): Running build()
-- Check for working C compiler: /Users/paulo/.conan/data/android-ndk/r18/theodelrieu/testing/package/089e0bdb9fdcbe66e71ad399fd4591508697382b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
-- Check for working C compiler: /Users/paulo/.conan/data/android-ndk/r18/theodelrieu/testing/package/089e0bdb9fdcbe66e71ad399fd4591508697382b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Users/paulo/.conan/data/android-ndk/r18/theodelrieu/testing/package/089e0bdb9fdcbe66e71ad399fd4591508697382b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
-- Check for working CXX compiler: /Users/paulo/.conan/data/android-ndk/r18/theodelrieu/testing/package/089e0bdb9fdcbe66e71ad399fd4591508697382b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: called by CMake conan helper
-- Conan: Checking correct version: 7.0
-- Conan: Using cmake global configuration
-- Conan: Adjusting default RPATHs Conan policies
-- Conan: Adjusting language standard
-- Conan: Adjusting fPIC flag (ON)
-- Conan: C++ stdlib: libc++
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_DATAROOTDIR
    CMAKE_INSTALL_INCLUDEDIR
    CMAKE_INSTALL_LIBDIR
    CMAKE_INSTALL_LIBEXECDIR
    CMAKE_INSTALL_OLDINCLUDEDIR
    CMAKE_INSTALL_SBINDIR


-- Build files have been written to: /Users/paulo/Developer/workspaces/cpp/ezored/build/android_aar/Debug/arm64-v8a
Scanning dependencies of target core
[  4%] Building CXX object files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/002-app-core/cpp/ezored/core/ApplicationCoreImpl.cpp.o
[  9%] Building CXX object files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp.o
[ 14%] Building CXX object files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/004-app-system-service/cpp/ezored/systemservices/CustomerSystemService.cpp.o
[ 19%] Building CXX object files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/005-app-helpers/cpp/ezored/helpers/DatabaseHelper.cpp.o
/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:91:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:175:10: note: candidate function
    void bind(const char* apName, const int             aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:179:10: note: candidate function
    void bind(const char* apName, const unsigned        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:183:10: note: candidate function
    void bind(const char* apName, const long long       aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:187:10: note: candidate function
    void bind(const char* apName, const double          aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:239:17: note: candidate function
    inline void bind(const std::string& aName, const int            aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:246:17: note: candidate function
    inline void bind(const std::string& aName, const unsigned       aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:253:17: note: candidate function
    inline void bind(const std::string& aName, const long long      aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:260:17: note: candidate function
    inline void bind(const std::string& aName, const double         aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:112:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const int           aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:116:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const unsigned      aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:120:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const long long     aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:124:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const double        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:193:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    void bind(const char* apName, const std::string&    aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:199:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    void bind(const char* apName, const char*           apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:269:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    inline void bind(const std::string& aName, const std::string&    aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:278:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    inline void bind(const std::string& aName, const char*           apValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:130:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const std::string&  aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:136:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const char*         apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:170:10: note: candidate function not viable: requires single
      argument 'aIndex', but 2 arguments were provided
    void bind(const int aIndex);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:233:10: note: candidate function not viable: requires single
      argument 'apName', but 2 arguments were provided
    void bind(const char* apName); // bind NULL value
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:327:17: note: candidate function not viable: requires single
      argument 'aName', but 2 arguments were provided
    inline void bind(const std::string& aName) // bind NULL value
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:142:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const int aIndex, const void*         apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:205:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const char* apName, const void*           apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:287:17: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    inline void bind(const std::string& aName, const void*           apValue, const int aSize)
                ^
/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:124:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:175:10: note: candidate function
    void bind(const char* apName, const int             aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:179:10: note: candidate function
    void bind(const char* apName, const unsigned        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:183:10: note: candidate function
    void bind(const char* apName, const long long       aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:187:10: note: candidate function
    void bind(const char* apName, const double          aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:239:17: note: candidate function
    inline void bind(const std::string& aName, const int            aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:246:17: note: candidate function
    inline void bind(const std::string& aName, const unsigned       aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:253:17: note: candidate function
    inline void bind(const std::string& aName, const long long      aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:260:17: note: candidate function
    inline void bind(const std::string& aName, const double         aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:112:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const int           aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:116:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const unsigned      aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:120:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const long long     aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:124:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const double        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:193:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    void bind(const char* apName, const std::string&    aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:199:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    void bind(const char* apName, const char*           apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:269:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    inline void bind(const std::string& aName, const std::string&    aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:278:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    inline void bind(const std::string& aName, const char*           apValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:130:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const std::string&  aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:136:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const char*         apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:170:10: note: candidate function not viable: requires single
      argument 'aIndex', but 2 arguments were provided
    void bind(const int aIndex);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:233:10: note: candidate function not viable: requires single
      argument 'apName', but 2 arguments were provided
    void bind(const char* apName); // bind NULL value
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:327:17: note: candidate function not viable: requires single
      argument 'aName', but 2 arguments were provided
    inline void bind(const std::string& aName) // bind NULL value
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:142:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const int aIndex, const void*         apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:205:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const char* apName, const void*           apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:287:17: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    inline void bind(const std::string& aName, const void*           apValue, const int aSize)
                ^
/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:192:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:175:10: note: candidate function
    void bind(const char* apName, const int             aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:179:10: note: candidate function
    void bind(const char* apName, const unsigned        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:183:10: note: candidate function
    void bind(const char* apName, const long long       aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:187:10: note: candidate function
    void bind(const char* apName, const double          aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:239:17: note: candidate function
    inline void bind(const std::string& aName, const int            aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:246:17: note: candidate function
    inline void bind(const std::string& aName, const unsigned       aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:253:17: note: candidate function
    inline void bind(const std::string& aName, const long long      aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:260:17: note: candidate function
    inline void bind(const std::string& aName, const double         aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:112:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const int           aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:116:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const unsigned      aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:120:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const long long     aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:124:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const double        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:193:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    void bind(const char* apName, const std::string&    aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:199:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    void bind(const char* apName, const char*           apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:269:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    inline void bind(const std::string& aName, const std::string&    aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:278:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    inline void bind(const std::string& aName, const char*           apValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:130:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const std::string&  aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:136:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const char*         apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:170:10: note: candidate function not viable: requires single
      argument 'aIndex', but 2 arguments were provided
    void bind(const int aIndex);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:233:10: note: candidate function not viable: requires single
      argument 'apName', but 2 arguments were provided
    void bind(const char* apName); // bind NULL value
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:327:17: note: candidate function not viable: requires single
      argument 'aName', but 2 arguments were provided
    inline void bind(const std::string& aName) // bind NULL value
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:142:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const int aIndex, const void*         apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:205:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const char* apName, const void*           apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:287:17: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    inline void bind(const std::string& aName, const void*           apValue, const int aSize)
                ^
/Users/paulo/Developer/workspaces/cpp/ezored/files/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp:206:11: error: call to member function 'bind' is ambiguous
    query.bind(":id", id);
    ~~~~~~^~~~
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:175:10: note: candidate function
    void bind(const char* apName, const int             aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:179:10: note: candidate function
    void bind(const char* apName, const unsigned        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:183:10: note: candidate function
    void bind(const char* apName, const long long       aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:187:10: note: candidate function
    void bind(const char* apName, const double          aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:239:17: note: candidate function
    inline void bind(const std::string& aName, const int            aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:246:17: note: candidate function
    inline void bind(const std::string& aName, const unsigned       aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:253:17: note: candidate function
    inline void bind(const std::string& aName, const long long      aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:260:17: note: candidate function
    inline void bind(const std::string& aName, const double         aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:112:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const int           aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:116:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const unsigned      aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:120:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const long long     aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:124:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const double        aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:193:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    void bind(const char* apName, const std::string&    aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:199:10: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    void bind(const char* apName, const char*           apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:269:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 2nd argument
    inline void bind(const std::string& aName, const std::string&    aValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:278:17: note: candidate function not viable: no known conversion
      from 'int64_t' (aka 'long') to 'const char *' for 2nd argument
    inline void bind(const std::string& aName, const char*           apValue)
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:130:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const std::string&  aValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:136:10: note: candidate function not viable: no known conversion
      from 'const char [4]' to 'const int' for 1st argument
    void bind(const int aIndex, const char*         apValue);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:170:10: note: candidate function not viable: requires single
      argument 'aIndex', but 2 arguments were provided
    void bind(const int aIndex);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:233:10: note: candidate function not viable: requires single
      argument 'apName', but 2 arguments were provided
    void bind(const char* apName); // bind NULL value
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:327:17: note: candidate function not viable: requires single
      argument 'aName', but 2 arguments were provided
    inline void bind(const std::string& aName) // bind NULL value
                ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:142:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const int aIndex, const void*         apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:205:10: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    void bind(const char* apName, const void*           apValue, const int aSize);
         ^
/Users/paulo/.conan/data/sqlitecpp/2.2.0/bincrafters/stable/package/833334dd7a6b904d7b430e9ab3e47d81ac70807b/include/SQLiteCpp/Statement.h:287:17: note: candidate function not viable: requires 3
      arguments, but 2 were provided
    inline void bind(const std::string& aName, const void*           apValue, const int aSize)
                ^
4 errors generated.
[ 23%] Building CXX object files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/005-app-helpers/cpp/ezored/helpers/EZRCustomerHelper.cpp.o
gmake[2]: *** [files/targets/android_aar/cmake/CMakeFiles/core.dir/build.make:76: files/targets/android_aar/cmake/CMakeFiles/core.dir/__/__/__/src/003-app-data-services/cpp/ezored/dataservices/EZRTodoDataService.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:109: files/targets/android_aar/cmake/CMakeFiles/core.dir/all] Error 2
gmake: *** [Makefile:84: all] Error 2
ERROR: conanfile.py (android_aar/0.0.1@None/None): Error in build() method, line 45
	cmake.build()
	ConanException: Error 512 while executing cmake --build '/Users/paulo/Developer/workspaces/cpp/ezored/build/android_aar/Debug/arm64-v8a' '--' '-j4'
[OK] 

@SRombauts
Copy link
Owner

SRombauts commented Mar 2, 2019

Also, I am pretty sure that there should be a' online compiler that support Android ; never thought about it (I am using Travis-ci to compile for Linux)

Do you know anything about an easy way to try to compile a short source code online or in CI for Android?

(I am not able to really dig into this myself right now)

@paulocoutinhox
Copy link
Contributor Author

Im creating a sample and publishing it to github.

@paulocoutinhox
Copy link
Contributor Author

paulocoutinhox commented Mar 2, 2019

Hi,

I have tested now:
https://github.com/prsolucoes/cmake-sqlitecpp

It is a simple repository to test.

But i detect that master version is compiling but 2.2.0 tag no.

My repository is with version 2.2.0 as described in README. If you run "build-android.sh" you will get the problem.

@SRombauts
Copy link
Owner

Great, thank you, I am currently looking into it.

But if I understand well what you are saying, if I release a new version of SQLiteCpp you could simply switch to it and have your app compiling! True?

@SRombauts
Copy link
Owner

SRombauts commented Mar 2, 2019

Ah yes, I fixed the issue one year ago:

Commit a41629f by Sébastien Rombauts, 23/02/2018 08:07

Fix #155 Statement::bind truncates long integer to 32 bits on x86_64 Linux

Reproduced the problem with a dedicated unit test, then fixed the bug.

@paulocoutinhox
Copy link
Contributor Author

Ok. But can you launch a new version with this fixes?

Thanks.

@SRombauts
Copy link
Owner

Yes, that's what I was proposing two comments before :)

I have been making some cleanup, and I need to go through opened issues, but I should be able to release SQLiteCpp 2.3.0 on tomorrow

@paulocoutinhox
Copy link
Contributor Author

Ok, thanks. I’m waiting for this to release my project too.

@paulocoutinhox
Copy link
Contributor Author

Only post here when you release to I’m be notified.

@SRombauts
Copy link
Owner

Fixed by Fix #155 Statement::bind truncates long integer to 32 bits on x86_64

@SRombauts
Copy link
Owner

Happy to have finally released the 2.3.0 version of SQLiteCpp!
https://github.com/SRombauts/SQLiteCpp/releases

Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants