7#ifndef CHAISCRIPT_DEFINES_HPP_
8#define CHAISCRIPT_DEFINES_HPP_
11#define CHAISCRIPT_STRINGIZE(x) "" #x
12#define CHAISCRIPT_STRINGIZE_EXPANDED(x) CHAISCRIPT_STRINGIZE(x)
13#define CHAISCRIPT_COMPILER_VERSION CHAISCRIPT_STRINGIZE_EXPANDED(_MSC_FULL_VER)
14#define CHAISCRIPT_MSVC _MSC_VER
15#define CHAISCRIPT_HAS_DECLSPEC
17static_assert(_MSC_FULL_VER >= 190024210,
"Visual C++ 2015 Update 3 or later required");
20#define CHAISCRIPT_COMPILER_VERSION __VERSION__
25#if defined( _LIBCPP_VERSION )
26#define CHAISCRIPT_LIBCPP
29#if defined(_WIN32) || defined(__CYGWIN__)
30#define CHAISCRIPT_WINDOWS
35#define CHAISCRIPT_COMPILER_NAME "clang(windows)"
36#elif defined(__GNUC__)
37#define CHAISCRIPT_COMPILER_NAME "gcc(mingw)"
39#define CHAISCRIPT_COMPILER_NAME "msvc"
43#define CHAISCRIPT_COMPILER_NAME "clang"
44#elif defined(__GNUC__)
45#define CHAISCRIPT_COMPILER_NAME "gcc"
47#define CHAISCRIPT_COMPILER_NAME "unknown"
53#define CHAISCRIPT_CLANG
57#ifdef CHAISCRIPT_HAS_DECLSPEC
58#define CHAISCRIPT_MODULE_EXPORT extern "C" __declspec(dllexport)
60#define CHAISCRIPT_MODULE_EXPORT extern "C"
63#if defined(CHAISCRIPT_MSVC) || (defined(__GNUC__) && __GNUC__ >= 5) || defined(CHAISCRIPT_CLANG)
64#define CHAISCRIPT_UTF16_UTF32
68#define CHAISCRIPT_DEBUG true
70#define CHAISCRIPT_DEBUG false
78 static const int version_major = 6;
79 static const int version_minor = 1;
80 static const int version_patch = 0;
86 template<
typename B,
typename D,
typename ...Arg>
89#ifdef CHAISCRIPT_USE_STD_MAKE_SHARED
90 return std::make_shared<D>(std::forward<Arg>(
arg)...);
92 return std::shared_ptr<B>(
static_cast<B*
>(
new D(std::forward<Arg>(
arg)...)));
96 template<
typename B,
typename D,
typename ...Arg>
99#ifdef CHAISCRIPT_USE_STD_MAKE_SHARED
100 return std::make_unique<D>(std::forward<Arg>(
arg)...);
102 return std::unique_ptr<B>(
static_cast<B*
>(
new D(std::forward<Arg>(
arg)...)));
109 return chaiscript::version_major;
114 return chaiscript::version_minor;
119 return chaiscript::version_patch;
139 return chaiscript::compiler_version;
144 return chaiscript::compiler_name;
149 return chaiscript::debug_build;
155 auto parse_num(
const char *t_str) ->
typename std::enable_if<std::is_integral<T>::value,
T>::type
158 for (
char c = *t_str; (c = *t_str) != 0; ++t_str) {
159 if (c <
'0' || c >
'9') {
170 auto parse_num(
const char *t_str) ->
typename std::enable_if<!std::is_integral<T>::value,
T>::type
177 for (
char c;; ++t_str) {
206 if (decimal_place < 10) {
208 t +=
static_cast<T>(c -
'0');
211 t +=
static_cast<T>(c -
'0') / decimal_place;
216 return exponent ? base * std::pow(
T(10), t *
static_cast<T>(exponent)) : t;
235 static inline std::vector<Options> default_options()
237#ifdef CHAISCRIPT_NO_DYNLOAD
float arg(Complex z)
Definition GameApi_pl.cc:31413
#define CHAISCRIPT_COMPILER_VERSION
Definition chaiscript_defines.hpp:20
#define CHAISCRIPT_COMPILER_NAME
Definition chaiscript_defines.hpp:47
#define CHAISCRIPT_DEBUG
Definition chaiscript_defines.hpp:70
Definition compiled_tests.cpp:1200
Namespace chaiscript contains every API call that the average user will be concerned with.
Options
Definition chaiscript_defines.hpp:228
@ No_External_Scripts
Definition chaiscript_defines.hpp:231
@ External_Scripts
Definition chaiscript_defines.hpp:232
@ No_Load_Modules
Definition chaiscript_defines.hpp:229
@ Load_Modules
Definition chaiscript_defines.hpp:230
std::unique_ptr< B > make_unique(Arg &&... arg)
Definition chaiscript_defines.hpp:97
std::shared_ptr< B > make_shared(Arg &&... arg)
Definition chaiscript_defines.hpp:87
auto parse_num(const char *t_str) -> typename std::enable_if< std::is_integral< T >::value, T >::type
Definition chaiscript_defines.hpp:155
@ Arg
Definition chaiscript_common.hpp:69
Definition chaiscript_defines.hpp:106
static std::string build_id()
Definition chaiscript_defines.hpp:132
static std::string compiler_id()
Definition chaiscript_defines.hpp:127
static bool debug_build()
Definition chaiscript_defines.hpp:147
static std::string compiler_name()
Definition chaiscript_defines.hpp:142
static std::string compiler_version()
Definition chaiscript_defines.hpp:137
static int version_major()
Definition chaiscript_defines.hpp:107
static int version_patch()
Definition chaiscript_defines.hpp:117
static std::string version()
Definition chaiscript_defines.hpp:122
static int version_minor()
Definition chaiscript_defines.hpp:112