diff options
| author | Cremno <[email protected]> | 2013-06-27 12:18:35 +0200 |
|---|---|---|
| committer | Cremno <[email protected]> | 2013-06-27 12:18:35 +0200 |
| commit | 872883747822750413e22b3bc5cdf2acef3b403e (patch) | |
| tree | f88d2d862424fe51ba406ed3b87f71666a6fd039 /include | |
| parent | b44309b4b208a7649a4e3bfb02b2ae353a3c83fc (diff) | |
| download | mruby-872883747822750413e22b3bc5cdf2acef3b403e.tar.gz mruby-872883747822750413e22b3bc5cdf2acef3b403e.zip | |
Visual Studio 2013 support + strtof + inline
- VC12 has better C99 library support due to C++11
- defined strtof for VC11 or older
- define "inline" only if the C compiler is used
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/value.h | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h index 06241ec76..b86b0e976 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -51,25 +51,29 @@ typedef short mrb_sym; #ifdef _MSC_VER -# define _ALLOW_KEYWORD_MACROS -# include <float.h> -# define inline __inline +# ifndef __cplusplus +# define inline __inline +# endif # define snprintf _snprintf -# define isnan _isnan -# define isinf(n) (!_finite(n) && !_isnan(n)) -# define strtoll _strtoi64 -# define PRId32 "I32d" -# define PRIi32 "I32i" -# define PRIo32 "I32o" -# define PRIx32 "I32x" -# define PRIX32 "I32X" -# define PRId64 "I64d" -# define PRIi64 "I64i" -# define PRIo64 "I64o" -# define PRIx64 "I64x" -# define PRIX64 "I64X" -#else -# include <inttypes.h> +# if _MSC_VER < 1800 +# include <float.h> +# define isnan _isnan +# define isinf(n) (!_finite(n) && !_isnan(n)) +# define strtoll _strtoi64 +# define strtof (float)strtod +# define PRId32 "I32d" +# define PRIi32 "I32i" +# define PRIo32 "I32o" +# define PRIx32 "I32x" +# define PRIX32 "I32X" +# define PRId64 "I64d" +# define PRIi64 "I64i" +# define PRIo64 "I64o" +# define PRIx64 "I64x" +# define PRIX64 "I64X" +# else +# include <inttypes.h> +# endif #endif typedef uint8_t mrb_bool; |
