Sha256: 5a1b0d6a5690b718a2d86c2a88932165e9e7f446318eea3cd8f7a03f5b8da95d
Contents?: true
Size: 1.58 KB
Versions: 4
Compression:
Stored size: 1.58 KB
Contents
#ifndef Rice__detail__ruby__hpp_ #define Rice__detail__ruby__hpp_ /*! \file * \brief Hacks for addressing incompatibilities between various Ruby * versions. */ #include <cmath> // missing.h that comes with the one-click installer doesn't properly // check for double-definition of isinf #ifdef isinf #define HAVE_ISINF #endif #include "ruby_version_code.hpp" #include <ruby.h> #ifdef WIN32 #include "win32.hpp" #endif // This causes problems with certain C++ libraries #undef TYPE //! A function that takes a VALUE as a parameter and returns a VALUE. // TODO: Casting from a C++ function to an extern "C" function won't // work on all platforms. I'm not sure what to do about this. extern "C" typedef VALUE (*RUBY_VALUE_FUNC)(VALUE); // Fix Ruby RUBY_METHOD_FUNC from macro to typedef #if defined(RUBY_METHOD_FUNC) # undef RUBY_METHOD_FUNC extern "C" typedef VALUE (*RUBY_METHOD_FUNC)(ANYARGS); #endif #ifndef RSTRING_LEN #define RSTRING_LEN(str) RSTRING(str)->len #endif #ifndef RSTRING_PTR #define RSTRING_PTR(str) RSTRING(str)->ptr #endif #ifndef RARRAY_LEN #define RARRAY_LEN(arr) RARRAY(arr)->len #endif #ifndef RARRAY_PTR #define RARRAY_PTR(arr) RARRAY(arr)->ptr #endif #ifndef RHASH_TBL #define RHASH_TBL(hsh) RHASH(hsh)->tbl #endif #ifndef RCLASS_M_TBL #define RCLASS_M_TBL(c) RCLASS(c)->m_tbl #endif // ruby.h has a few defines that conflict with Visual Studio's STL #if defined(_MSC_VER) #undef write #undef read #undef bind #endif #ifdef HAVE_CXX11 #define std_unique_ptr std::unique_ptr #else #define std_unique_ptr std::auto_ptr #endif #endif // Rice__detail__ruby__hpp_
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rice-2.1.2 | rice/detail/ruby.hpp |
rice-2.1.1 | rice/detail/ruby.hpp |
rice-2.1.0 | rice/detail/ruby.hpp |
rice-2.0.0 | rice/detail/ruby.hpp |