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()) >
Definition advanced_ownership.hpp:6
decltype(Untag(std::declval< T >())) UntaggedType
Definition tagging.hpp:130
auto Tag(JNIEnv &, T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition tagging.hpp:94
Unique< T, NullDeleter > Input
Definition unique.hpp:123
auto Untag(T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition tagging.hpp:116
Definition tagging.hpp:33
static constexpr auto Name()
Definition tagging.hpp:34
Definition tagging.hpp:27
static constexpr auto Name()
Definition tagging.hpp:28
Definition tagging.hpp:17
static constexpr auto Name()
Definition tagging.hpp:18
Definition tagging.hpp:22
static constexpr auto Name()
Definition tagging.hpp:23
typename Tag::SuperTag Type
Definition tagging.hpp:47
Definition tagging.hpp:40
ObjectTag Type
Definition tagging.hpp:41
jarray< E > UntaggedType
Definition tagging.hpp:82
Object< ObjectTag > SuperType
Definition tagging.hpp:81
jarray< jobject > UntaggedType
Definition tagging.hpp:89
Object< ObjectTag > SuperType
Definition tagging.hpp:88
jclass UntaggedType
Definition tagging.hpp:75
Object< ObjectTag > SuperType
Definition tagging.hpp:74
jobject UntaggedType
Definition tagging.hpp:61
ObjectBase SuperType
Definition tagging.hpp:60
Object< ObjectTag > SuperType
Definition tagging.hpp:67
jstring UntaggedType
Definition tagging.hpp:68
Definition tagging.hpp:52
jobject UntaggedType
Definition tagging.hpp:54
Object< typename SuperTag< Tag >::Type > SuperType
Definition tagging.hpp:53
Definition tagging.hpp:13