12#include "webcface/common/webcface-config.h"
34 std::is_convertible_v<decltype(*std::begin(std::declval<T>())),
double> &&
35 std::is_convertible_v<decltype(*std::end(std::declval<T>())),
double>> {
42template <
typename T, std::
size_t Num>
44 -> std::bool_constant<std::tuple_size<T>::value == Num> {
47template <
typename T, std::
size_t Num>
49 std::declval<T>(), std::integral_constant<std::size_t, Num>()));
62template <
typename T, std::
size_t N>
65template <
typename T, std::
size_t N>
73template <
typename T, std::
size_t Num>
79template <
typename T, std::
size_t N, std::
size_t Num>
81template <
typename T, std::
size_t N, std::
size_t Num>
86 return std::vector<double>(std::begin(array), std::end(array));
89template <std::
size_t Num,
typename T>
91 std::array<double, Num> ret{};
93 auto it = std::begin(array);
94 for (; n < Num && it != std::end(array); ++it, ++n) {
97 if (n == Num && it == std::end(array)) {
101 "array size mismatch, expected: " + std::to_string(Num) +
102 ", got: " + std::to_string(n));
std::nullptr_t TraitOkType
Definition trait.h:11
constexpr std::false_type isArrayLike(...)
Definition array_like.h:31
decltype(isArrayLike(std::declval< T >())) IsArrayLike
Definition array_like.h:39
decltype(arraySizeMatch(std::declval< T >(), std::integral_constant< std::size_t, Num >())) ArraySizeMatch
Definition array_like.h:49
std::vector< double > arrayLikeToVector(const T &array)
Definition array_like.h:85
std::array< double, Num > arrayLikeToArray(const T &array)
Definition array_like.h:90
constexpr std::true_type arraySizeMatch(...)
Definition array_like.h:41
その他のパラメーターエラー
Definition exception.h:89
TraitOkType ArrayLike
Definition array_like.h:22
Definition array_like.h:19
Definition array_like.h:57
TraitOkType SizeMatchOrDynamic
Definition array_like.h:28
Definition array_like.h:25
Definition array_like.h:74
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117