lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Classes | Namespaces | Typedefs | Functions
tagging.hpp File Reference

Go to the source code of this file.

Classes

class  jni::Object< TheTag >
 
class  jni::Array< E, Enable >
 
struct  jni::TypeSignature< class >
 
struct  jni::ObjectTag
 
struct  jni::StringTag
 
struct  jni::ClassTag
 
struct  jni::ArrayTag< T >
 
struct  jni::SuperTag< Tag, class >
 
struct  jni::SuperTag< Tag, decltype(std::declval< typename Tag::SuperTag >(), 0) >
 
struct  jni::TagTraits< Tag, Enable >
 
struct  jni::TagTraits< ObjectTag >
 
struct  jni::TagTraits< StringTag >
 
struct  jni::TagTraits< ClassTag >
 
struct  jni::TagTraits< ArrayTag< E >, std::enable_if_t< IsPrimitive< E >::value > >
 
struct  jni::TagTraits< ArrayTag< Object< Tag > > >
 

Namespaces

 jni
 

Typedefs

template<class T >
using jni::UntaggedType = decltype(Untag(std::declval< T >()))
 

Functions

template<class T >
auto jni::Tag (JNIEnv &, T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
 
template<class T , class U >
auto jni::Tag (JNIEnv &env, U *u) -> std::enable_if_t< !IsPrimitive< T >::value, Input< T > >
 
template<class T , class U >
auto jni::Tag (JNIEnv &env, U &u) -> std::enable_if_t< !IsPrimitive< T >::value, Input< T > >
 
template<class T >
auto jni::Untag (T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
 
template<class T >
auto jni::Untag (const T &t) -> std::enable_if_t< !IsPrimitive< T >::value, decltype(t.get()) >