get_printable_type.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_BINDINGS_PYTHON_GET_PRINTABLE_TYPE_HPP
14 #define MLPACK_BINDINGS_PYTHON_GET_PRINTABLE_TYPE_HPP
15 
16 #include <mlpack/prereqs.hpp>
18 
19 namespace mlpack {
20 namespace bindings {
21 namespace python {
22 
23 template<typename T>
24 inline std::string GetPrintableType(
25  const util::ParamData& /* d */,
26  const typename boost::disable_if<util::IsStdVector<T>>::type* = 0,
27  const typename boost::disable_if<data::HasSerialize<T>>::type* = 0,
28  const typename boost::disable_if<arma::is_arma_type<T>>::type* = 0,
29  const typename boost::disable_if<std::is_same<T,
30  std::tuple<data::DatasetInfo, arma::mat>>>::type* = 0);
31 
32 template<>
33 inline std::string GetPrintableType<int>(
34  const util::ParamData& /* d */,
35  const typename boost::disable_if<util::IsStdVector<int>>::type*,
36  const typename boost::disable_if<data::HasSerialize<int>>::type*,
37  const typename boost::disable_if<arma::is_arma_type<int>>::type*,
38  const typename boost::disable_if<std::is_same<int,
39  std::tuple<data::DatasetInfo, arma::mat>>>::type*);
40 
41 template<>
42 inline std::string GetPrintableType<double>(
43  const util::ParamData& /* d */,
44  const typename boost::disable_if<util::IsStdVector<double>>::type*,
45  const typename boost::disable_if<data::HasSerialize<double>>::type*,
46  const typename boost::disable_if<arma::is_arma_type<double>>::type*,
47  const typename boost::disable_if<std::is_same<double,
48  std::tuple<data::DatasetInfo, arma::mat>>>::type*);
49 
50 template<>
51 inline std::string GetPrintableType<std::string>(
52  const util::ParamData& /* d */,
53  const typename boost::disable_if<util::IsStdVector<std::string>>::type*,
54  const typename boost::disable_if<data::HasSerialize<std::string>>::type*,
55  const typename boost::disable_if<arma::is_arma_type<std::string>>::type*,
56  const typename boost::disable_if<std::is_same<std::string,
57  std::tuple<data::DatasetInfo, arma::mat>>>::type*);
58 
59 template<>
60 inline std::string GetPrintableType<size_t>(
61  const util::ParamData& /* d */,
62  const typename boost::disable_if<util::IsStdVector<size_t>>::type*,
63  const typename boost::disable_if<data::HasSerialize<size_t>>::type*,
64  const typename boost::disable_if<arma::is_arma_type<size_t>>::type*,
65  const typename boost::disable_if<std::is_same<size_t,
66  std::tuple<data::DatasetInfo, arma::mat>>>::type*);
67 
68 template<>
69 inline std::string GetPrintableType<bool>(
70  const util::ParamData& /* d */,
71  const typename boost::disable_if<util::IsStdVector<bool>>::type*,
72  const typename boost::disable_if<data::HasSerialize<bool>>::type*,
73  const typename boost::disable_if<arma::is_arma_type<bool>>::type*,
74  const typename boost::disable_if<std::is_same<bool,
75  std::tuple<data::DatasetInfo, arma::mat>>>::type*);
76 
77 template<typename T>
78 inline std::string GetPrintableType(
79  const util::ParamData& d,
80  const typename boost::enable_if<util::IsStdVector<T>>::type* = 0,
81  const typename boost::disable_if<std::is_same<T,
82  std::tuple<data::DatasetInfo, arma::mat>>>::type* = 0);
83 
84 template<typename T>
85 inline std::string GetPrintableType(
86  const util::ParamData& /* d */,
87  const typename boost::enable_if<arma::is_arma_type<T>>::type* = 0,
88  const typename boost::disable_if<std::is_same<T,
89  std::tuple<data::DatasetInfo, arma::mat>>>::type* = 0);
90 
91 template<typename T>
92 inline std::string GetPrintableType(
93  const util::ParamData& /* d */,
94  const typename boost::enable_if<std::is_same<T,
95  std::tuple<data::DatasetInfo, arma::mat>>>::type* = 0);
96 
97 template<typename T>
98 inline std::string GetPrintableType(
99  const util::ParamData& d,
100  const typename boost::disable_if<arma::is_arma_type<T>>::type* = 0,
101  const typename boost::enable_if<data::HasSerialize<T>>::type* = 0,
102  const typename boost::disable_if<std::is_same<T,
103  std::tuple<data::DatasetInfo, arma::mat>>>::type* = 0);
104 
105 template<typename T>
106 void GetPrintableType(const util::ParamData& d,
107  const void* /* input */,
108  void* output)
109 {
110  *((std::string*) output) =
111  GetPrintableType<typename std::remove_pointer<T>::type>(d);
112 }
113 
114 } // namespace python
115 } // namespace bindings
116 } // namespace mlpack
117 
118 #include "get_printable_type_impl.hpp"
119 
120 #endif
strip_type.hpp
Definition: add_to_po.hpp:21
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::string GetPrintableType(const util::ParamData &, const typename boost::disable_if< util::IsStdVector< T >>::type *=0, const typename boost::disable_if< data::HasSerialize< T >>::type *=0, const typename boost::disable_if< arma::is_arma_type< T >>::type *=0, const typename boost::disable_if< std::is_same< T, std::tuple< data::DatasetInfo, arma::mat >>>::type *=0)
std::string GetPrintableType< size_t >(const util::ParamData &, const typename boost::disable_if< util::IsStdVector< size_t >>::type *, const typename boost::disable_if< data::HasSerialize< size_t >>::type *, const typename boost::disable_if< arma::is_arma_type< size_t >>::type *, const typename boost::disable_if< std::is_same< size_t, std::tuple< data::DatasetInfo, arma::mat >>>::type *)
std::string GetPrintableType< double >(const util::ParamData &, const typename boost::disable_if< util::IsStdVector< double >>::type *, const typename boost::disable_if< data::HasSerialize< double >>::type *, const typename boost::disable_if< arma::is_arma_type< double >>::type *, const typename boost::disable_if< std::is_same< double, std::tuple< data::DatasetInfo, arma::mat >>>::type *)
python
Definition: CMakeLists.txt:4
std::string GetPrintableType< bool >(const util::ParamData &, const typename boost::disable_if< util::IsStdVector< bool >>::type *, const typename boost::disable_if< data::HasSerialize< bool >>::type *, const typename boost::disable_if< arma::is_arma_type< bool >>::type *, const typename boost::disable_if< std::is_same< bool, std::tuple< data::DatasetInfo, arma::mat >>>::type *)
std::string GetPrintableType< int >(const util::ParamData &, const typename boost::disable_if< util::IsStdVector< int >>::type *, const typename boost::disable_if< data::HasSerialize< int >>::type *, const typename boost::disable_if< arma::is_arma_type< int >>::type *, const typename boost::disable_if< std::is_same< int, std::tuple< data::DatasetInfo, arma::mat >>>::type *)