mlpack 3.4.2
print_doc.hpp
Go to the documentation of this file.
1
13#ifndef MLPACK_BINDINGS_GO_PRINT_DOC_HPP
14#define MLPACK_BINDINGS_GO_PRINT_DOC_HPP
15
16#include <mlpack/prereqs.hpp>
18#include "get_go_type.hpp"
20
21namespace mlpack {
22namespace bindings {
23namespace go {
24
38template<typename T>
40 const void* input,
41 void* isLower)
42{
43 const size_t indent = *((size_t*) input);
44 bool Lower = *((bool*) isLower);
45 std::ostringstream oss;
46 oss << " - ";
47 oss << util::CamelCase(d.name, Lower) << " (";
48 oss << GetGoType<typename std::remove_pointer<T>::type>(d) << "): "
49 << d.desc;
50
51 // Print a default, if possible.
52 if (!d.required)
53 {
54 if (d.cppType == "std::string")
55 {
56 oss << " Default value '" << boost::any_cast<std::string>(d.value)
57 << "'.";
58 }
59 else if (d.cppType == "double")
60 {
61 oss << " Default value " << boost::any_cast<double>(d.value) << ".";
62 }
63 else if (d.cppType == "int")
64 {
65 oss << " Default value " << boost::any_cast<int>(d.value) << ".";
66 }
67 }
68
69 std::cout << util::HyphenateString(oss.str(), indent + 4);
70}
71
72} // namespace go
73} // namespace bindings
74} // namespace mlpack
75
76#endif
if(NOT BUILD_GO_SHLIB) macro(add_go_binding name) endmacro() return() endif() endmacro() macro(post_go_setup) if(BUILD_GO_BINDINGS) file(APPEND "$
Definition: CMakeLists.txt:3
go
Definition: CMakeLists.txt:6
void PrintDoc(util::ParamData &d, const void *input, void *isLower)
Print the docstring documentation for a given parameter.
Definition: print_doc.hpp:39
std::string CamelCase(std::string s, bool lower)
Given an snake_case like, e.g., "logistic_regression", return CamelCase(e.g.
Definition: camel_case.hpp:26
std::string HyphenateString(const std::string &str, const std::string &prefix, const bool force=false)
Hyphenate a string or split it onto multiple 80-character lines, with some amount of padding on each ...
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.
This structure holds all of the information about a single parameter, including its value (which is s...
Definition: param_data.hpp:53
std::string desc
Description of this parameter, if any.
Definition: param_data.hpp:58
boost::any value
The actual value that is held.
Definition: param_data.hpp:82
bool required
True if this option is required.
Definition: param_data.hpp:71
std::string name
Name of this parameter.
Definition: param_data.hpp:56
std::string cppType
The true name of the type, as it would be written in C++.
Definition: param_data.hpp:84