15 template <
class W,
class U >
34 T
Wrap(T t)
const {
return t; }
51 const char16_t*
Wrap(
const jchar* s)
const {
return reinterpret_cast<const char16_t*
>(s); }
52 const jchar*
Unwrap(
const char16_t* s)
const {
return reinterpret_cast<const jchar*
>(s); }
58 char16_t*
Wrap(jchar* s)
const {
return reinterpret_cast<char16_t*
>(s); }
59 jchar*
Unwrap(char16_t* s)
const {
return reinterpret_cast<jchar*
>(s); }
69 throw std::range_error(
"::jsize < 0");
70 return static_cast<jsize>(s);
75 if (s > std::numeric_limits<::jsize>::max())
76 throw std::range_error(
"jsize > max");
77 return static_cast<::
jsize>(s);
82 template <
class W,
class U >
85 W*
Wrap(U u)
const {
return reinterpret_cast<W*
>(u); }
86 U
Unwrap(W* w)
const {
return reinterpret_cast<U
>(w); }
111 template <
class W,
class U >
114 U
Unwrap(W& w)
const {
return reinterpret_cast<U
>(&w); }
136 template <
class T,
class R,
class... Args >
141 return {
const_cast<char*
>(method.name), const_cast<char*>(method.signature),
reinterpret_cast<void*
>(method.fnPtr) };
::jsize Unwrap(jsize s) const
Definition: wrapping.hpp:73
version
Definition: types.hpp:82
::jint Unwrap(version v) const
Definition: wrapping.hpp:150
U Unwrap(W *w) const
Definition: wrapping.hpp:86
::JNINativeMethod Unwrap(JNINativeMethod< R(JNIEnv *, T *, Args...)> method) const
Definition: wrapping.hpp:139
auto Wrap(U &&u)
Definition: wrapping.hpp:16
T Unwrap(T t) const
Definition: wrapping.hpp:35
Definition: advanced_ownership.hpp:5
W * Wrap(U u) const
Definition: wrapping.hpp:85
decltype(Unwrap< T >(std::declval< T >())) UnwrappedType
Definition: wrapping.hpp:28
std::size_t jsize
Definition: types.hpp:28
auto Unwrap(W &&w)
Definition: wrapping.hpp:22
jchar * Unwrap(char16_t *s) const
Definition: wrapping.hpp:59
char16_t * Wrap(jchar *s) const
Definition: wrapping.hpp:58
Definition: wrapping.hpp:83
const char16_t * Wrap(const jchar *s) const
Definition: wrapping.hpp:51
std::pointer_traits< ::jmethodID >::element_type jmethodID
Definition: types.hpp:56
version Wrap(::jint v) const
Definition: wrapping.hpp:149
Definition: wrapping.hpp:13
Definition: wrapping.hpp:32
jsize Wrap(::jsize s) const
Definition: wrapping.hpp:66
const jchar * Unwrap(const char16_t *s) const
Definition: wrapping.hpp:52
std::pointer_traits< ::jfieldID >::element_type jfieldID
Definition: types.hpp:55
T Wrap(T t) const
Definition: wrapping.hpp:34
U Unwrap(W &w) const
Definition: wrapping.hpp:114
Definition: wrapping.hpp:112