12#include "webcface/common/webcface-config.h"
34 -> std::bool_constant<
35 std::is_convertible_v<decltype(*std::begin(std::declval<T>())),
37 std::is_convertible_v<decltype(*std::end(std::declval<T>())),
double>> {
44template <
typename T, std::
size_t Num>
46 -> std::bool_constant<std::tuple_size<T>::value == Num> {
49template <
typename T, std::
size_t Num>
51 std::declval<T>(), std::integral_constant<std::size_t, Num>()));
64template <
typename T, std::
size_t N>
67template <
typename T, std::
size_t N>
75template <
typename T, std::
size_t Num>
81template <
typename T, std::
size_t N, std::
size_t Num>
83template <
typename T, std::
size_t N, std::
size_t Num>
88 return std::vector<double>(std::begin(array), std::end(array));
91template <std::
size_t Num,
typename T>
93 std::array<double, Num> ret{};
95 auto it = std::begin(array);
96 for (; n < Num && it != std::end(array); ++it, ++n) {
99 if (n == Num && it == std::end(array)) {
103 "array size mismatch, expected: " + std::to_string(Num) +
104 ", 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:41
decltype(arraySizeMatch(std::declval< T >(), std::integral_constant< std::size_t, Num >())) ArraySizeMatch
Definition array_like.h:51
std::vector< double > arrayLikeToVector(const T &array)
Definition array_like.h:87
std::array< double, Num > arrayLikeToArray(const T &array)
Definition array_like.h:92
constexpr std::true_type arraySizeMatch(...)
Definition array_like.h:43
その他のパラメーターエラー
Definition exception.h:16
TraitOkType ArrayLike
Definition array_like.h:22
Definition array_like.h:19
Definition array_like.h:59
TraitOkType SizeMatchOrDynamic
Definition array_like.h:28
Definition array_like.h:25
Definition array_like.h:76
#define WEBCFACE_NS_END
Definition webcface-config.h:113
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:112