12 template <
class E, std::
size_t n >
struct IsArraylike<
E[
n] > : std::true_type {};
13 template <
class E, std::
size_t n >
struct IsArraylike<
std::array<E,n> > : std::true_type {};
29 template <
class E, std::
size_t n >
E *
ArraylikeData( std::array<E,n>&
a) {
return a.data(); }
30 template <
class E, std::
size_t n >
E const *
ArraylikeData(
const std::array<E,n>&
a) {
return a.data(); }
31 template <
class E,
class A >
E *
ArraylikeData( std::vector<E,A>&
a) {
return a.data(); }
32 template <
class E,
class A >
E const *
ArraylikeData(
const std::vector<E,A>&
a) {
return a.data(); }
33 template <
class C,
class T,
class A >
C *
ArraylikeData( std::basic_string<C,T,A>&
a) {
return &
a[0]; }
34 template <
class C,
class T,
class A >
C const *
ArraylikeData(
const std::basic_string<C,T,A>&
a) {
return &
a[0]; }
38 template <
class E, std::
size_t n > std::size_t
ArraylikeSize(
const std::array<E,n>&) {
return n; }
39 template <
class E,
class A > std::size_t
ArraylikeSize(
const std::vector<E,A>&
a) {
return a.size(); }
40 template <
class C,
class T,
class A > std::size_t
ArraylikeSize(
const std::basic_string<C,T,A>&
a) {
return a.size(); }
Definition advanced_ownership.hpp:6
typename ArraylikeElementType< T >::type ArraylikeElement
Definition arraylike.hpp:25
jarray< E > & NewArray(JNIEnv &env, jsize length)
Definition functions.hpp:472
std::size_t ArraylikeSize(E(&)[n])
Definition arraylike.hpp:37
E * ArraylikeData(E(&a)[n])
Definition arraylike.hpp:28
E Type
Definition arraylike.hpp:20
E Type
Definition arraylike.hpp:21
C Type
Definition arraylike.hpp:23
E Type
Definition arraylike.hpp:22
Definition arraylike.hpp:18
Definition arraylike.hpp:10