23 template<
typename GetT>
43 writer.
write(labels_);
47 std::vector<std::string> labels_;
53 template<
typename GetT, std::enable_if_t<std::is_invocable_v<GetT>,
int> = 0>
60 template<
typename GetT, std::enable_if_t<std::is_invocable_v<GetT>,
int> = 0>
61 auto ArrayLabel(
const std::string & name,
const std::vector<std::string> & labels, GetT get_fn)
70 template<
typename T, std::enable_if_t<!std::is_invocable_v<T>,
int> = 0>
71 auto ArrayLabel(
const std::string & name,
const std::vector<std::string> & labels, T && value)
80 template<
typename T, std::enable_if_t<!std::is_invocable_v<T>,
int> = 0>
85 if constexpr(Labels::has_labels) {
return ArrayLabel(name, Labels::labels, callback); }
93 template<
bool Degrees = true,
typename T>
94 auto RPYLabel(
const std::string & name, T && value)