30 template<
typename F,
typename T>
34 ::std::forward<F>(f) (::std::get<N> (::std::forward<T>(t)));
40 template<
typename F,
typename T>
43 ::std::forward<F>(f) (::std::get<0> (::std::forward<T>(t)));
52 template<
typename F,
typename T,
typename... A>
55 ::std::forward<F>(f), ::std::forward<T>(t),
56 ::std::get<N-1>(::std::forward<T>(t)), ::std::forward<A>(a)...
60 ::std::get<N-1>(::std::forward<T>(t)), ::std::forward<A>(a)...
67 template<
typename F,
typename T,
typename... A>
69 ->
decltype(::std::forward<F>(f)(::std::forward<A>(a)...))
71 return ::std::forward<F>(f)(::std::forward<A>(a)...);
81 template <
class F,
class T>
84 Apply< ::std::tuple_size<
85 typename ::std::decay<T>::type
90 template<
typename F,
typename T>
92 ->
decltype(Unpack< ::std::tuple_size<
93 typename ::std::decay<T>::type
96 return Unpack< ::std::tuple_size<
97 typename ::std::decay<T>::type
VectorType::Scalar value(const VectorType &coefs, typename VectorType::Scalar cos_elevation, typename VectorType::Scalar cos_azimuth, typename VectorType::Scalar sin_azimuth, int lmax)
void apply(F &&f, T &&t)
invoke f(x) for each entry in t
auto unpack(F &&f, T &&t) -> decltype(Unpack< ::std::tuple_size< typename ::std::decay< T >::type >::value >::unpack(::std::forward< F >(f), ::std::forward< T >(t)))
if t is a tuple of elements a..., invoke f(a...)