mlpack
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  util::ParamData& /* d */,
26  const typename std::enable_if<!util::IsStdVector<T>::value>::type* = 0,
27  const typename std::enable_if<!data::HasSerialize<T>::value>::type* = 0,
28  const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
29  const typename std::enable_if<!std::is_same<T,
30  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
31 
32 template<>
33 inline std::string GetPrintableType<int>(
34  util::ParamData& /* d */,
35  const typename std::enable_if<!util::IsStdVector<int>::value>::type*,
36  const typename std::enable_if<!data::HasSerialize<int>::value>::type*,
37  const typename std::enable_if<!arma::is_arma_type<int>::value>::type*,
38  const typename std::enable_if<!std::is_same<int,
39  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
40 
41 template<>
42 inline std::string GetPrintableType<double>(
43  util::ParamData& /* d */,
44  const typename std::enable_if<!util::IsStdVector<double>::value>::type*,
45  const typename std::enable_if<!data::HasSerialize<double>::value>::type*,
46  const typename std::enable_if<!arma::is_arma_type<double>::value>::type*,
47  const typename std::enable_if<!std::is_same<double,
48  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
49 
50 template<>
51 inline std::string GetPrintableType<std::string>(
52  util::ParamData& /* d */,
53  const typename std::enable_if<
54  !util::IsStdVector<std::string>::value>::type*,
55  const typename std::enable_if<
56  !data::HasSerialize<std::string>::value>::type*,
57  const typename std::enable_if<
58  !arma::is_arma_type<std::string>::value>::type*,
59  const typename std::enable_if<!std::is_same<std::string,
60  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
61 
62 template<>
63 inline std::string GetPrintableType<size_t>(
64  util::ParamData& /* d */,
65  const typename std::enable_if<!util::IsStdVector<size_t>::value>::type*,
66  const typename std::enable_if<!data::HasSerialize<size_t>::value>::type*,
67  const typename std::enable_if<!arma::is_arma_type<size_t>::value>::type*,
68  const typename std::enable_if<!std::is_same<size_t,
69  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
70 
71 template<>
72 inline std::string GetPrintableType<bool>(
73  util::ParamData& /* d */,
74  const typename std::enable_if<!util::IsStdVector<bool>::value>::type*,
75  const typename std::enable_if<!data::HasSerialize<bool>::value>::type*,
76  const typename std::enable_if<!arma::is_arma_type<bool>::value>::type*,
77  const typename std::enable_if<!std::is_same<bool,
78  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
79 
80 template<typename T>
81 inline std::string GetPrintableType(
82  util::ParamData& d,
83  const typename std::enable_if<util::IsStdVector<T>::value>::type* = 0,
84  const typename std::enable_if<!std::is_same<T,
85  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
86 
87 template<typename T>
88 inline std::string GetPrintableType(
89  util::ParamData& /* d */,
90  const typename std::enable_if<arma::is_arma_type<T>::value>::type* = 0,
91  const typename std::enable_if<!std::is_same<T,
92  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
93 
94 template<typename T>
95 inline std::string GetPrintableType(
96  util::ParamData& /* d */,
97  const typename std::enable_if<std::is_same<T,
98  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
99 
100 template<typename T>
101 inline std::string GetPrintableType(
102  util::ParamData& d,
103  const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
104  const typename std::enable_if<data::HasSerialize<T>::value>::type* = 0,
105  const typename std::enable_if<!std::is_same<T,
106  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
107 
108 template<typename T>
109 void GetPrintableType(util::ParamData& d,
110  const void* /* input */,
111  void* output)
112 {
113  *((std::string*) output) =
114  GetPrintableType<typename std::remove_pointer<T>::type>(d);
115 }
116 
117 } // namespace python
118 } // namespace bindings
119 } // namespace mlpack
120 
122 
123 #endif
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::string GetPrintableType(util::ParamData &data, const typename std::enable_if<!arma::is_arma_type< T >::value >::type *=0, const typename std::enable_if<!util::IsStdVector< T >::value >::type *=0, const typename std::enable_if<!data::HasSerialize< T >::value >::type *=0, const typename std::enable_if<!std::is_same< T, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *=0)
Return a string representing the command-line type of an option.
Definition: get_printable_type_impl.hpp:26