Sha256: 1255659df1f8d1854d9f0836f8e18b8dcfcb7771612a2fb522832f618d197560

Contents?: true

Size: 930 Bytes

Versions: 10

Compression:

Stored size: 930 Bytes

Contents

#ifndef Rice__Builtin_Object__ipp_
#define Rice__Builtin_Object__ipp_

#include "Object.hpp"
#include "protect.hpp"
#include "detail/check_ruby_type.hpp"

#include <algorithm>

namespace Rice
{

namespace detail
{
  inline VALUE check_type(Object value, int type)
  {
    rb_check_type(value, type);
    return Qnil;
  }
}

template<int Builtin_Type>
inline Builtin_Object<Builtin_Type>::
Builtin_Object(Object value)
  : Object(value)
  , obj_((RObject*)(value.value()))
{
  protect(detail::check_type, value, Builtin_Type);
}

template<int Builtin_Type>
inline Builtin_Object<Builtin_Type>::
Builtin_Object(Builtin_Object<Builtin_Type> const & other)
  : Object(other.value())
  , obj_(other.obj_)
{
}

template<int Builtin_Type>
inline void Builtin_Object<Builtin_Type>::
swap(Builtin_Object<Builtin_Type> & ref)
{
  std::swap(obj_, ref.obj_);
  Object::swap(ref);
}

} // namespace Rice

#endif // Rice__Builtin_Object__ipp_

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
rice-3.0.0 rice/Builtin_Object.ipp
rice2-2.2.1 rice/Builtin_Object.ipp
rice2-2.2.0 rice/Builtin_Object.ipp
rice-2.2.0 rice/Builtin_Object.ipp
rice-2.1.3 rice/Builtin_Object.ipp
rice-2.1.2 rice/Builtin_Object.ipp
rice-2.1.1 rice/Builtin_Object.ipp
rice-2.1.0 rice/Builtin_Object.ipp
rice-2.0.0 rice/Builtin_Object.ipp
rice-1.7.0 rice/Builtin_Object.ipp