diff --git a/platform/default/include/mbgl/storage/sqlite3.hpp b/platform/default/include/mbgl/storage/sqlite3.hpp index 19898b63a..3c815013d 100644 --- a/platform/default/include/mbgl/storage/sqlite3.hpp +++ b/platform/default/include/mbgl/storage/sqlite3.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace mapbox { namespace sqlite { @@ -77,7 +77,7 @@ private: public: Database(const Database&) = delete; Database& operator=(const Database&) = delete; - static mapbox::util::variant tryOpen(const std::string& filename, int flags = 0); + static std::variant tryOpen(const std::string& filename, int flags = 0); static Database open(const std::string& filename, int flags = 0); Database(Database&&) noexcept; diff --git a/platform/default/src/mbgl/storage/sqlite3.cpp b/platform/default/src/mbgl/storage/sqlite3.cpp index 6a41c52fc..526898ab9 100644 --- a/platform/default/src/mbgl/storage/sqlite3.cpp +++ b/platform/default/src/mbgl/storage/sqlite3.cpp @@ -69,7 +69,8 @@ public: ~DatabaseImpl() { const int error = sqlite3_close(db); if (error != SQLITE_OK) { - mbgl::Log::Error(mbgl::Event::Database, error, "Failed to close database: %s", sqlite3_errmsg(db)); + mbgl::Log::Error( + mbgl::Event::Database, error, std::string("Failed to close database: ") + sqlite3_errmsg(db)); } } @@ -108,7 +109,7 @@ public: #ifndef NDEBUG void logSqlMessage(void*, const int err, const char* msg) { - mbgl::Log::Record(mbgl::EventSeverity::Debug, mbgl::Event::Database, err, "%s", msg); + mbgl::Log::Record(mbgl::EventSeverity::Debug, mbgl::Event::Database, std::to_string(err) + msg); } #endif @@ -130,7 +131,7 @@ MBGL_CONSTRUCTOR(initialize) { #endif } -mapbox::util::variant Database::tryOpen(const std::string& filename, int flags) { +std::variant Database::tryOpen(const std::string& filename, int flags) { sqlite3* db = nullptr; const int error = sqlite3_open_v2(filename.c_str(), &db, flags | SQLITE_OPEN_URI, nullptr); if (error != SQLITE_OK) { @@ -143,10 +144,10 @@ mapbox::util::variant Database::tryOpen(const std::string& Database Database::open(const std::string& filename, int flags) { auto result = tryOpen(filename, flags); - if (result.is()) { - throw std::move(result.get()); + if (std::holds_alternative(result)) { + throw std::move(std::get(result)); } else { - return std::move(result.get()); + return std::move(std::get(result)); } } diff --git a/platform/qt/src/mbgl/sqlite3.cpp b/platform/qt/src/mbgl/sqlite3.cpp index 9afd08707..7300241a3 100644 --- a/platform/qt/src/mbgl/sqlite3.cpp +++ b/platform/qt/src/mbgl/sqlite3.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -77,7 +78,7 @@ public: int64_t changes = 0; }; -mapbox::util::variant Database::tryOpen(const std::string& filename, int flags) { +std::variant Database::tryOpen(const std::string& filename, int flags) { if (!QSqlDatabase::drivers().contains("QSQLITE")) { return Exception{ResultCode::CantOpen, "SQLite driver not found."}; } @@ -112,10 +113,10 @@ mapbox::util::variant Database::tryOpen(const std::string& Database Database::open(const std::string& filename, int flags) { auto result = tryOpen(filename, flags); - if (result.is()) { - throw result.get(); + if (std::holds_alternative(result)) { + throw std::get(result); } else { - return std::move(result.get()); + return std::move(std::get(result)); } } diff --git a/test/storage/sqlite.test.cpp b/test/storage/sqlite.test.cpp index b71024ab7..6f1cdd298 100644 --- a/test/storage/sqlite.test.cpp +++ b/test/storage/sqlite.test.cpp @@ -37,8 +37,8 @@ TEST(SQLite, TEST_REQUIRES_WRITE(TryOpen)) { // make sure all the backends behave the same way. auto result = mapbox::sqlite::Database::tryOpen("test/fixtures/offline_database/foobar123.db", mapbox::sqlite::ReadOnly); - ASSERT_TRUE(result.is()); - ASSERT_EQ(result.get().code, mapbox::sqlite::ResultCode::CantOpen); + ASSERT_TRUE(std::holds_alternative(result)); + ASSERT_EQ(std::get(result).code, mapbox::sqlite::ResultCode::CantOpen); EXPECT_EQ(0u, log.uncheckedCount()); }