template <DbType Type> QofBackend* new_backend () { QofBackend* be; const char* format; switch (Type) { case (DbType::DBI_SQLITE): format = SQLITE3_TIMESPEC_STR_FORMAT; break; case (DbType::DBI_MYSQL): format = MYSQL_TIMESPEC_STR_FORMAT; break; case (DbType::DBI_PGSQL): format = PGSQL_TIMESPEC_STR_FORMAT; break; } auto dbi_be = new GncDbiBackend(nullptr, nullptr, format); assert (dbi_be != nullptr); be = (QofBackend*)dbi_be; qof_backend_init (be); be->session_begin = gnc_dbi_session_begin<Type>; init_sql_backend (dbi_be); return be; }
template <DbType Type> QofBackend* new_backend () { auto dbi_be = new GncDbiBackend(nullptr, nullptr); assert (dbi_be != nullptr); QofBackend* qof_be = reinterpret_cast<decltype(qof_be)>(dbi_be); qof_backend_init (qof_be); qof_be->session_begin = gnc_dbi_session_begin<Type>; init_sql_backend (dbi_be); return qof_be; }