9#ifndef CLASSDESC_RANDOM_INIT_EPILOGUE_H
10#define CLASSDESC_RANDOM_INIT_EPILOGUE_H
12#include "random_init-allCDs.h"
24 template<
class T>
typename
25 cd::enable_if<cd::is_default_constructible<typename T::element_type>,
void>::T
26 random_init_smart_ptr(cd::random_init_t& r,
const cd::string& d,
27 T& a, cd::dummy<0> dum=0)
29 a.reset(
new typename T::element_type);
33 template<
class T>
typename
35 cd::Not<cd::is_default_constructible<typename T::element_type> >,
void>::T
36 random_init_smart_ptr(cd::random_init_t& r,
const cd::string& d,
37 T& a, cd::dummy<1> dum=0)
46 void operator()(cd::random_init_t& x,
const cd::string& d,
48 {random_init_smart_ptr(x,d,a);}
51#if defined(__cplusplus) && __cplusplus<=201402
52#if defined(__GNUC__) && !defined(__ICC) && !defined(__clang__)
53#pragma GCC diagnostic push
54#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
59 void operator()(cd::random_init_t& x,
const cd::string& d,
61 {random_init_smart_ptr(x,d,a);}
63#if defined(__GNUC__) && !defined(__ICC) && !defined(__clang__)
64#pragma GCC diagnostic pop
68#if defined(__cplusplus) && __cplusplus >= 201103L
69 template <
class T,
class D>
72 void operator()(cd::random_init_t& x,
const cd::string& d,
73 std::unique_ptr<T,D>& a)
74 {json_pack_smart_ptr(x,d,a);}
80#ifdef CLASSDESC_POLYPACKBASE_H
87#ifdef CLASSDESC_POLYJSONBASE_H
109 public Not< Or< Or< Or<is_arithmetic<T>,is_string<T> >, is_sequence<T> >,
110 is_associative_container<T> > >
113 template <
class T>
typename
122 void random_init(random_init_t& r,
const string& d,T& a)
Definition random_init_base.h:21
Contains access_* structs, and nothing else. These structs are used to gain access to private members...
Definition classdesc_access.h:20
Contains definitions related to classdesc functionality.
void random_init_normalise(T &)
Definition random_init_epilogue.h:119
Definition random_init_epilogue.h:111
Definition classdesc.h:405
helper for constructing null descriptors
Definition classdesc.h:1106
Definition classdesc.h:299
controlled template specialisation: stolen from boost::enable_if.
Definition classdesc.h:282
Definition classdesc_access.h:27