11 template <
class Tag >
class Object;
12 template <
class E,
class =
void >
class Array;
18 static constexpr
auto Name() {
return "java/lang/Object"; }
23 static constexpr
auto Name() {
return "java/lang/String"; }
28 static constexpr
auto Name() {
return "java/lang/Class"; }
38 template <
class Tag,
class =
int >
44 template <
class Tag >
47 using Type =
typename Tag::SuperTag;
50 template <
class Tag,
class Enable =
void >
85 template <
class Tag >
94 auto Tag(JNIEnv&, T primitive)
95 -> std::enable_if_t< IsPrimitive<T>::value, T >
100 template <
class T,
class U >
101 auto Tag(JNIEnv& env, U* u)
102 -> std::enable_if_t< !IsPrimitive<T>::value,
Input<T> >
107 template <
class T,
class U >
108 auto Tag(JNIEnv& env, U& u)
109 -> std::enable_if_t< !IsPrimitive<T>::value,
Input<T> >
117 -> std::enable_if_t< IsPrimitive<T>::value, T >
124 -> std::enable_if_t< !IsPrimitive<T>::value, decltype(t.get()) >
decltype(Untag(std::declval< T >())) UntaggedType
Definition: tagging.hpp:130
static constexpr auto Name()
Definition: tagging.hpp:28
typename Tag::SuperTag Type
Definition: tagging.hpp:47
Definition: tagging.hpp:32
static constexpr auto Name()
Definition: tagging.hpp:23
static constexpr auto Name()
Definition: tagging.hpp:34
Definition: tagging.hpp:39
Definition: object.hpp:44
Definition: object.hpp:14
Definition: tagging.hpp:51
Definition: advanced_ownership.hpp:5
Definition: tagging.hpp:16
static constexpr auto Name()
Definition: tagging.hpp:18
Definition: tagging.hpp:21
Definition: tagging.hpp:26
auto Untag(T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition: tagging.hpp:116
Definition: unique.hpp:38
auto Tag(JNIEnv &, T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition: tagging.hpp:94
Definition: tagging.hpp:13