1 #ifndef GIKOMONA_CORE_GIKOMONA_HPP
2 #define GIKOMONA_CORE_GIKOMONA_HPP
6 #include <boost/config.hpp>
7 #include <boost/filesystem/path.hpp>
9 /// @breif libbbs で string に関わる typedef を抑制する。@link libbbs/settings.hpp @endlink を見よ。
10 #define LIBBBS_USED_BY_GIKOMONA
11 #define LIBSQLITEXX_USED_BY_GIKOMONA
14 #include "logging.hpp"
16 #include <sqlitexx.hpp>
18 #if __cplusplus < 201103L
19 #error "error - [GikoMona.LibCore @pp-time] : sorry, this compiler does NOT support C++11."
22 namespace monazilla { namespace GikoMona {
26 namespace sqlite = caprice::sqlitexx;
28 bool init_core(const mona_string& app_name);
29 void done_core(const mona_string& app_name) noexcept ;
30 void optimize_database(const boost::filesystem::path& db_path);
32 // for std::enable_if<T>
35 template <typename T, typename U>
36 using enable_if_T_is_same_as_U
37 = typename std::enable_if<std::is_same<T, U>::value>::type*& ;
39 // for communication.hpp
40 typedef int communicate_id;
41 std::string to_string(const communicate_id val);
48 #define PROJECT_NAME "GikoMona project, powered by monazilla.org."
49 #define PROJECT_URL "http://sourceforge.jp/projects/gikomona/"