mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
add sprout/numeric/dft.wave.hpp
fix constexpr -> inline constexpr
This commit is contained in:
parent
e4a4d17207
commit
f9d4b475b4
69 changed files with 420 additions and 378 deletions
|
@ -212,7 +212,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Iterator, typename Traits>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::bytes_iterator<Iterator, Traits> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::bytes_iterator<Iterator, Traits> >::difference_type
|
||||
distance(
|
||||
sprout::bytes_iterator<Iterator, Traits> first,
|
||||
sprout::bytes_iterator<Iterator, Traits> last
|
||||
|
|
|
@ -184,7 +184,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Incrementable>
|
||||
void swap(sprout::counting_iterator<Incrementable>& lhs, sprout::counting_iterator<Incrementable>& rhs)
|
||||
inline void swap(sprout::counting_iterator<Incrementable>& lhs, sprout::counting_iterator<Incrementable>& rhs)
|
||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
|
||||
{
|
||||
lhs.swap(rhs);
|
||||
|
@ -194,14 +194,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Incrementable>
|
||||
SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> next(
|
||||
inline SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> next(
|
||||
sprout::counting_iterator<Incrementable> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Incrementable>
|
||||
SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> next(
|
||||
inline SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> next(
|
||||
sprout::counting_iterator<Incrementable> const& it,
|
||||
typename sprout::counting_iterator<Incrementable>::difference_type n
|
||||
)
|
||||
|
@ -213,14 +213,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Incrementable>
|
||||
SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> prev(
|
||||
sprout::counting_iterator<Incrementable> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Incrementable>
|
||||
SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::counting_iterator<Incrementable> prev(
|
||||
sprout::counting_iterator<Incrementable> const& it,
|
||||
typename sprout::counting_iterator<Incrementable>::difference_type n
|
||||
)
|
||||
|
@ -232,7 +232,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Incrementable>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::counting_iterator<Incrementable> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::counting_iterator<Incrementable> >::difference_type
|
||||
distance(
|
||||
sprout::counting_iterator<Incrementable> first,
|
||||
sprout::counting_iterator<Incrementable> last
|
||||
|
|
|
@ -10,14 +10,14 @@ namespace sprout {
|
|||
// Copyright (C) 2011 RiSK (sscrisk)
|
||||
|
||||
template<typename InputIterator>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
distance(InputIterator first, InputIterator last) {
|
||||
return first == last ? 0
|
||||
: 1 + sprout::detail::distance(sprout::next(first), last)
|
||||
;
|
||||
}
|
||||
template<typename InputIterator>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
distance_impl(InputIterator first, InputIterator last) {
|
||||
using sprout::detail::distance;
|
||||
return distance(first, last);
|
||||
|
@ -27,7 +27,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename InputIterator>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<InputIterator>::difference_type
|
||||
distance(InputIterator first, InputIterator last) {
|
||||
return sprout::detail::distance_impl(first, last);
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Container>
|
||||
void swap(sprout::index_iterator<Container>& lhs, sprout::index_iterator<Container>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::index_iterator<Container>& lhs, sprout::index_iterator<Container>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -199,14 +199,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR sprout::index_iterator<Container> next(
|
||||
inline SPROUT_CONSTEXPR sprout::index_iterator<Container> next(
|
||||
sprout::index_iterator<Container> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR sprout::index_iterator<Container> next(
|
||||
inline SPROUT_CONSTEXPR sprout::index_iterator<Container> next(
|
||||
sprout::index_iterator<Container> const& it,
|
||||
typename sprout::index_iterator<Container>::difference_type n
|
||||
)
|
||||
|
@ -218,14 +218,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR sprout::index_iterator<Container> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::index_iterator<Container> prev(
|
||||
sprout::index_iterator<Container> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR sprout::index_iterator<Container> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::index_iterator<Container> prev(
|
||||
sprout::index_iterator<Container> const& it,
|
||||
typename sprout::index_iterator<Container>::difference_type n
|
||||
)
|
||||
|
@ -237,7 +237,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::index_iterator<Container> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::index_iterator<Container> >::difference_type
|
||||
distance(
|
||||
sprout::index_iterator<Container> first,
|
||||
sprout::index_iterator<Container> last
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
namespace sprout {
|
||||
namespace detail {
|
||||
template<typename RandomAccessIterator>
|
||||
SPROUT_CONSTEXPR typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
std::is_literal_type<typename std::decay<RandomAccessIterator>::type>::value,
|
||||
typename std::decay<RandomAccessIterator>::type
|
||||
>::type next_impl(
|
||||
|
@ -20,7 +20,7 @@ namespace sprout {
|
|||
return sprout::forward<RandomAccessIterator>(it) + 1;
|
||||
}
|
||||
template<typename ForwardIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next_impl(
|
||||
inline SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next_impl(
|
||||
ForwardIterator&& it,
|
||||
void*
|
||||
)
|
||||
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
}
|
||||
|
||||
template<typename RandomAccessIterator>
|
||||
SPROUT_CONSTEXPR typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
std::is_literal_type<typename std::decay<RandomAccessIterator>::type>::value,
|
||||
typename std::decay<RandomAccessIterator>::type
|
||||
>::type next_impl(
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
return sprout::forward<RandomAccessIterator>(it) + n;
|
||||
}
|
||||
template<typename ForwardIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next_impl(
|
||||
inline SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next_impl(
|
||||
ForwardIterator it,
|
||||
typename std::iterator_traits<typename std::decay<ForwardIterator>::type>::difference_type n,
|
||||
void*
|
||||
|
@ -54,7 +54,8 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename ForwardIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next(ForwardIterator&& it) {
|
||||
inline SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type
|
||||
next(ForwardIterator&& it) {
|
||||
typedef typename std::iterator_traits<typename std::decay<ForwardIterator>::type>::iterator_category* category;
|
||||
return sprout::detail::next_impl(
|
||||
sprout::forward<ForwardIterator>(it),
|
||||
|
@ -62,11 +63,8 @@ namespace sprout {
|
|||
);
|
||||
}
|
||||
template<typename ForwardIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type next(
|
||||
ForwardIterator&& it,
|
||||
typename std::iterator_traits<typename std::decay<ForwardIterator>::type>::difference_type n
|
||||
)
|
||||
{
|
||||
inline SPROUT_CONSTEXPR typename std::decay<ForwardIterator>::type
|
||||
next(ForwardIterator&& it, typename std::iterator_traits<typename std::decay<ForwardIterator>::type>::difference_type n) {
|
||||
typedef typename std::iterator_traits<typename std::decay<ForwardIterator>::type>::iterator_category* category;
|
||||
return sprout::detail::next_impl(
|
||||
sprout::forward<ForwardIterator>(it),
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
namespace sprout {
|
||||
namespace detail {
|
||||
template<typename RandomAccessIterator>
|
||||
SPROUT_CONSTEXPR typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
std::is_literal_type<typename std::decay<RandomAccessIterator>::type>::value,
|
||||
typename std::decay<RandomAccessIterator>::type
|
||||
>::type prev_impl(
|
||||
|
@ -20,7 +20,7 @@ namespace sprout {
|
|||
return sprout::forward<RandomAccessIterator>(it) - 1;
|
||||
}
|
||||
template<typename BidirectionalIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev_impl(
|
||||
inline SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev_impl(
|
||||
BidirectionalIterator&& it,
|
||||
void*
|
||||
)
|
||||
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
}
|
||||
|
||||
template<typename RandomAccessIterator>
|
||||
SPROUT_CONSTEXPR typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
std::is_literal_type<typename std::decay<RandomAccessIterator>::type>::value,
|
||||
typename std::decay<RandomAccessIterator>::type
|
||||
>::type prev_impl(
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
return sprout::forward<RandomAccessIterator>(it) - n;
|
||||
}
|
||||
template<typename BidirectionalIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev_impl(
|
||||
inline SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev_impl(
|
||||
BidirectionalIterator it,
|
||||
typename std::iterator_traits<typename std::decay<BidirectionalIterator>::type>::difference_type n,
|
||||
void*
|
||||
|
@ -54,7 +54,8 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename BidirectionalIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev(BidirectionalIterator&& it) {
|
||||
inline SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type
|
||||
prev(BidirectionalIterator&& it) {
|
||||
typedef typename std::iterator_traits<typename std::decay<BidirectionalIterator>::type>::iterator_category* category;
|
||||
return sprout::detail::prev_impl(
|
||||
sprout::forward<BidirectionalIterator>(it),
|
||||
|
@ -62,11 +63,8 @@ namespace sprout {
|
|||
);
|
||||
}
|
||||
template<typename BidirectionalIterator>
|
||||
SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type prev(
|
||||
BidirectionalIterator&& it,
|
||||
typename std::iterator_traits<typename std::decay<BidirectionalIterator>::type>::difference_type n
|
||||
)
|
||||
{
|
||||
inline SPROUT_CONSTEXPR typename std::decay<BidirectionalIterator>::type
|
||||
prev(BidirectionalIterator&& it, typename std::iterator_traits<typename std::decay<BidirectionalIterator>::type>::difference_type n) {
|
||||
typedef typename std::iterator_traits<typename std::decay<BidirectionalIterator>::type>::iterator_category* category;
|
||||
return sprout::detail::prev_impl(
|
||||
sprout::forward<BidirectionalIterator>(it),
|
||||
|
|
|
@ -120,7 +120,7 @@ namespace sprout {
|
|||
};
|
||||
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -128,7 +128,7 @@ namespace sprout {
|
|||
return lhs.base() == rhs.base();
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -136,7 +136,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -144,7 +144,7 @@ namespace sprout {
|
|||
return lhs.base() < rhs.base();
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -152,7 +152,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -160,7 +160,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -168,7 +168,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
inline SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
sprout::reverse_iterator<Iterator1> const& lhs,
|
||||
sprout::reverse_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -176,7 +176,7 @@ namespace sprout {
|
|||
return lhs.base() - rhs.base();
|
||||
}
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> operator+(
|
||||
typename sprout::reverse_iterator<Iterator>::difference_type n,
|
||||
sprout::reverse_iterator<Iterator> const& it
|
||||
)
|
||||
|
@ -188,7 +188,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Iterator>
|
||||
void swap(sprout::reverse_iterator<Iterator>& lhs, sprout::reverse_iterator<Iterator>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::reverse_iterator<Iterator>& lhs, sprout::reverse_iterator<Iterator>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -196,14 +196,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> next(
|
||||
inline SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> next(
|
||||
sprout::reverse_iterator<Iterator> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> next(
|
||||
inline SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> next(
|
||||
sprout::reverse_iterator<Iterator> const& it,
|
||||
typename sprout::reverse_iterator<Iterator>::difference_type n
|
||||
)
|
||||
|
@ -215,14 +215,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> prev(
|
||||
sprout::reverse_iterator<Iterator> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::reverse_iterator<Iterator> prev(
|
||||
sprout::reverse_iterator<Iterator> const& it,
|
||||
typename sprout::reverse_iterator<Iterator>::difference_type n
|
||||
)
|
||||
|
@ -234,7 +234,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::reverse_iterator<Iterator> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::reverse_iterator<Iterator> >::difference_type
|
||||
distance(
|
||||
sprout::reverse_iterator<Iterator> first,
|
||||
sprout::reverse_iterator<Iterator> last
|
||||
|
|
|
@ -146,7 +146,7 @@ namespace sprout {
|
|||
};
|
||||
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -154,7 +154,7 @@ namespace sprout {
|
|||
return lhs.index() == rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -162,7 +162,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -170,7 +170,7 @@ namespace sprout {
|
|||
return lhs.index() < rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -178,7 +178,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -186,7 +186,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -194,7 +194,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR typename sprout::sawtooth_iterator<Value1>::difference_type operator-(
|
||||
inline SPROUT_CONSTEXPR typename sprout::sawtooth_iterator<Value1>::difference_type operator-(
|
||||
sprout::sawtooth_iterator<Value1> const& lhs,
|
||||
sprout::sawtooth_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -202,7 +202,7 @@ namespace sprout {
|
|||
return lhs.index() - rhs.index();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> operator+(
|
||||
typename sprout::sawtooth_iterator<Value>::difference_type n,
|
||||
sprout::sawtooth_iterator<Value> const& it
|
||||
)
|
||||
|
@ -214,7 +214,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Value>
|
||||
void swap(sprout::sawtooth_iterator<Value>& lhs, sprout::sawtooth_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::sawtooth_iterator<Value>& lhs, sprout::sawtooth_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -222,14 +222,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> next(
|
||||
sprout::sawtooth_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> next(
|
||||
sprout::sawtooth_iterator<Value> const& it,
|
||||
typename sprout::sawtooth_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -241,14 +241,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> prev(
|
||||
sprout::sawtooth_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::sawtooth_iterator<Value> prev(
|
||||
sprout::sawtooth_iterator<Value> const& it,
|
||||
typename sprout::sawtooth_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -260,7 +260,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::sawtooth_iterator<Value> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::sawtooth_iterator<Value> >::difference_type
|
||||
distance(
|
||||
sprout::sawtooth_iterator<Value> first,
|
||||
sprout::sawtooth_iterator<Value> last
|
||||
|
|
|
@ -155,7 +155,7 @@ namespace sprout {
|
|||
};
|
||||
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -163,7 +163,7 @@ namespace sprout {
|
|||
return lhs.index() == rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -171,7 +171,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -179,7 +179,7 @@ namespace sprout {
|
|||
return lhs.index() < rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -187,7 +187,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -195,7 +195,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -203,7 +203,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR typename sprout::sinusoid_iterator<Value1>::difference_type operator-(
|
||||
inline SPROUT_CONSTEXPR typename sprout::sinusoid_iterator<Value1>::difference_type operator-(
|
||||
sprout::sinusoid_iterator<Value1> const& lhs,
|
||||
sprout::sinusoid_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -211,7 +211,7 @@ namespace sprout {
|
|||
return lhs.index() - rhs.index();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> operator+(
|
||||
typename sprout::sinusoid_iterator<Value>::difference_type n,
|
||||
sprout::sinusoid_iterator<Value> const& it
|
||||
)
|
||||
|
@ -223,7 +223,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Value>
|
||||
void swap(sprout::sinusoid_iterator<Value>& lhs, sprout::sinusoid_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::sinusoid_iterator<Value>& lhs, sprout::sinusoid_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -231,14 +231,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> next(
|
||||
sprout::sinusoid_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> next(
|
||||
sprout::sinusoid_iterator<Value> const& it,
|
||||
typename sprout::sinusoid_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -250,14 +250,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> prev(
|
||||
sprout::sinusoid_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::sinusoid_iterator<Value> prev(
|
||||
sprout::sinusoid_iterator<Value> const& it,
|
||||
typename sprout::sinusoid_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -269,7 +269,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::sinusoid_iterator<Value> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::sinusoid_iterator<Value> >::difference_type
|
||||
distance(
|
||||
sprout::sinusoid_iterator<Value> first,
|
||||
sprout::sinusoid_iterator<Value> last
|
||||
|
|
|
@ -266,7 +266,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -277,7 +277,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -288,7 +288,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -301,7 +301,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -312,7 +312,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -323,7 +323,7 @@ namespace sprout {
|
|||
typename Iterator1, bool Separated1,
|
||||
typename Iterator2, bool Separated2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::size_enum_iterator<Iterator1, Separated1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, Separated2> const& rhs
|
||||
)
|
||||
|
@ -331,7 +331,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
inline SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
sprout::size_enum_iterator<Iterator1> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2> const& rhs
|
||||
)
|
||||
|
@ -339,7 +339,7 @@ namespace sprout {
|
|||
return lhs.base() - rhs.base();
|
||||
}
|
||||
template<typename Iterator1, typename Iterator2>
|
||||
SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
inline SPROUT_CONSTEXPR decltype(std::declval<Iterator1>() - std::declval<Iterator2>()) operator-(
|
||||
sprout::size_enum_iterator<Iterator1, true> const& lhs,
|
||||
sprout::size_enum_iterator<Iterator2, true> const& rhs
|
||||
)
|
||||
|
@ -352,7 +352,7 @@ namespace sprout {
|
|||
;
|
||||
}
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> operator+(
|
||||
typename sprout::size_enum_iterator<Iterator, Separated>::difference_type n,
|
||||
sprout::size_enum_iterator<Iterator, Separated> const& it
|
||||
)
|
||||
|
@ -364,12 +364,12 @@ namespace sprout {
|
|||
// make_size_enum_iterator
|
||||
//
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator>
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator>
|
||||
make_size_enum_iterator(Iterator it) {
|
||||
return sprout::size_enum_iterator<Iterator>(it);
|
||||
}
|
||||
template<typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, true>
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, true>
|
||||
make_size_enum_iterator(
|
||||
Iterator it,
|
||||
typename sprout::size_enum_iterator<Iterator, true>::value_type sep_size,
|
||||
|
@ -396,14 +396,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> next(
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> next(
|
||||
sprout::size_enum_iterator<Iterator, Separated> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> next(
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> next(
|
||||
sprout::size_enum_iterator<Iterator, Separated> const& it,
|
||||
typename sprout::size_enum_iterator<Iterator, Separated>::difference_type n
|
||||
)
|
||||
|
@ -415,14 +415,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> prev(
|
||||
sprout::size_enum_iterator<Iterator, Separated> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::size_enum_iterator<Iterator, Separated> prev(
|
||||
sprout::size_enum_iterator<Iterator, Separated> const& it,
|
||||
typename sprout::size_enum_iterator<Iterator, Separated>::difference_type n
|
||||
)
|
||||
|
@ -434,7 +434,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Iterator, bool Separated>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::size_enum_iterator<Iterator, Separated> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::size_enum_iterator<Iterator, Separated> >::difference_type
|
||||
distance(
|
||||
sprout::size_enum_iterator<Iterator, Separated> first,
|
||||
sprout::size_enum_iterator<Iterator, Separated> last
|
||||
|
|
|
@ -156,7 +156,7 @@ namespace sprout {
|
|||
};
|
||||
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -164,7 +164,7 @@ namespace sprout {
|
|||
return lhs.index() == rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -172,7 +172,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -180,7 +180,7 @@ namespace sprout {
|
|||
return lhs.index() < rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -188,7 +188,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -196,7 +196,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -204,7 +204,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR typename sprout::square_iterator<Value1>::difference_type operator-(
|
||||
inline SPROUT_CONSTEXPR typename sprout::square_iterator<Value1>::difference_type operator-(
|
||||
sprout::square_iterator<Value1> const& lhs,
|
||||
sprout::square_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -212,7 +212,7 @@ namespace sprout {
|
|||
return lhs.index() - rhs.index();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::square_iterator<Value> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::square_iterator<Value> operator+(
|
||||
typename sprout::square_iterator<Value>::difference_type n,
|
||||
sprout::square_iterator<Value> const& it
|
||||
)
|
||||
|
@ -224,7 +224,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Value>
|
||||
void swap(sprout::square_iterator<Value>& lhs, sprout::square_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::square_iterator<Value>& lhs, sprout::square_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -232,14 +232,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::square_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::square_iterator<Value> next(
|
||||
sprout::square_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::square_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::square_iterator<Value> next(
|
||||
sprout::square_iterator<Value> const& it,
|
||||
typename sprout::square_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -251,14 +251,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::square_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::square_iterator<Value> prev(
|
||||
sprout::square_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::square_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::square_iterator<Value> prev(
|
||||
sprout::square_iterator<Value> const& it,
|
||||
typename sprout::square_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -270,7 +270,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::square_iterator<Value> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::square_iterator<Value> >::difference_type
|
||||
distance(
|
||||
sprout::square_iterator<Value> first,
|
||||
sprout::square_iterator<Value> last
|
||||
|
|
|
@ -277,7 +277,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -288,7 +288,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -299,7 +299,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -310,7 +310,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -321,7 +321,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -332,7 +332,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -343,7 +343,7 @@ namespace sprout {
|
|||
typename UnaryOrBinaryFunction1, typename LIterator1, typename RIterator1,
|
||||
typename UnaryOrBinaryFunction2, typename LIterator2, typename RIterator2
|
||||
>
|
||||
SPROUT_CONSTEXPR decltype(std::declval<LIterator1>() - std::declval<LIterator2>()) operator-(
|
||||
inline SPROUT_CONSTEXPR decltype(std::declval<LIterator1>() - std::declval<LIterator2>()) operator-(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction1, LIterator1, RIterator1> const& lhs,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction2, LIterator2, RIterator2> const& rhs
|
||||
)
|
||||
|
@ -351,7 +351,7 @@ namespace sprout {
|
|||
return lhs.base() - rhs.base();
|
||||
}
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> operator+(
|
||||
typename sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator>::difference_type n,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> const& it
|
||||
)
|
||||
|
@ -363,12 +363,12 @@ namespace sprout {
|
|||
// make_transform_iterator
|
||||
//
|
||||
template<typename BinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<BinaryFunction, LIterator, RIterator>
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<BinaryFunction, LIterator, RIterator>
|
||||
make_transform_iterator(LIterator it1, RIterator it2, BinaryFunction func) {
|
||||
return sprout::transform_iterator<BinaryFunction, LIterator, RIterator>(it1, it2, func);
|
||||
}
|
||||
template<typename UnaryFunction, typename Iterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryFunction, Iterator>
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryFunction, Iterator>
|
||||
make_transform_iterator(Iterator it, UnaryFunction func) {
|
||||
return sprout::transform_iterator<UnaryFunction, Iterator>(it, func);
|
||||
}
|
||||
|
@ -390,14 +390,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> next(
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> next(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> next(
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> next(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> const& it,
|
||||
typename sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator>::difference_type n
|
||||
)
|
||||
|
@ -409,14 +409,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> prev(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> prev(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> const& it,
|
||||
typename sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator>::difference_type n
|
||||
)
|
||||
|
@ -428,7 +428,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename UnaryOrBinaryFunction, typename LIterator, typename RIterator>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> >::difference_type
|
||||
distance(
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> first,
|
||||
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator> last
|
||||
|
|
|
@ -146,7 +146,7 @@ namespace sprout {
|
|||
};
|
||||
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -154,7 +154,7 @@ namespace sprout {
|
|||
return lhs.index() == rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -162,7 +162,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -170,7 +170,7 @@ namespace sprout {
|
|||
return lhs.index() < rhs.index();
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -178,7 +178,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -186,7 +186,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -194,7 +194,7 @@ namespace sprout {
|
|||
return !(lhs < rhs);
|
||||
}
|
||||
template<typename Value1, typename Value2>
|
||||
SPROUT_CONSTEXPR typename sprout::triangle_iterator<Value1>::difference_type operator-(
|
||||
inline SPROUT_CONSTEXPR typename sprout::triangle_iterator<Value1>::difference_type operator-(
|
||||
sprout::triangle_iterator<Value1> const& lhs,
|
||||
sprout::triangle_iterator<Value2> const& rhs
|
||||
)
|
||||
|
@ -202,7 +202,7 @@ namespace sprout {
|
|||
return lhs.index() - rhs.index();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::triangle_iterator<Value> operator+(
|
||||
inline SPROUT_CONSTEXPR sprout::triangle_iterator<Value> operator+(
|
||||
typename sprout::triangle_iterator<Value>::difference_type n,
|
||||
sprout::triangle_iterator<Value> const& it
|
||||
)
|
||||
|
@ -214,7 +214,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename Value>
|
||||
void swap(sprout::triangle_iterator<Value>& lhs, sprout::triangle_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::triangle_iterator<Value>& lhs, sprout::triangle_iterator<Value>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -222,14 +222,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::triangle_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::triangle_iterator<Value> next(
|
||||
sprout::triangle_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::triangle_iterator<Value> next(
|
||||
inline SPROUT_CONSTEXPR sprout::triangle_iterator<Value> next(
|
||||
sprout::triangle_iterator<Value> const& it,
|
||||
typename sprout::triangle_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -241,14 +241,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::triangle_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::triangle_iterator<Value> prev(
|
||||
sprout::triangle_iterator<Value> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR sprout::triangle_iterator<Value> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::triangle_iterator<Value> prev(
|
||||
sprout::triangle_iterator<Value> const& it,
|
||||
typename sprout::triangle_iterator<Value>::difference_type n
|
||||
)
|
||||
|
@ -260,7 +260,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename Value>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::triangle_iterator<Value> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::triangle_iterator<Value> >::difference_type
|
||||
distance(
|
||||
sprout::triangle_iterator<Value> first,
|
||||
sprout::triangle_iterator<Value> last
|
||||
|
|
|
@ -160,7 +160,7 @@ namespace sprout {
|
|||
// swap
|
||||
//
|
||||
template<typename T>
|
||||
void swap(sprout::value_iterator<T>& lhs, sprout::value_iterator<T>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
inline void swap(sprout::value_iterator<T>& lhs, sprout::value_iterator<T>& rhs) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs))) {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
|
@ -168,14 +168,14 @@ namespace sprout {
|
|||
// next
|
||||
//
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR sprout::value_iterator<T> next(
|
||||
inline SPROUT_CONSTEXPR sprout::value_iterator<T> next(
|
||||
sprout::value_iterator<T> const& it
|
||||
)
|
||||
{
|
||||
return it.next();
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR sprout::value_iterator<T> next(
|
||||
inline SPROUT_CONSTEXPR sprout::value_iterator<T> next(
|
||||
sprout::value_iterator<T> const& it,
|
||||
typename sprout::value_iterator<T>::difference_type n
|
||||
)
|
||||
|
@ -187,14 +187,14 @@ namespace sprout {
|
|||
// prev
|
||||
//
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR sprout::value_iterator<T> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::value_iterator<T> prev(
|
||||
sprout::value_iterator<T> const& it
|
||||
)
|
||||
{
|
||||
return it.prev();
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR sprout::value_iterator<T> prev(
|
||||
inline SPROUT_CONSTEXPR sprout::value_iterator<T> prev(
|
||||
sprout::value_iterator<T> const& it,
|
||||
typename sprout::value_iterator<T>::difference_type n
|
||||
)
|
||||
|
@ -206,7 +206,7 @@ namespace sprout {
|
|||
// distance
|
||||
//
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR typename std::iterator_traits<sprout::value_iterator<T> >::difference_type
|
||||
inline SPROUT_CONSTEXPR typename std::iterator_traits<sprout::value_iterator<T> >::difference_type
|
||||
distance(sprout::value_iterator<T> first, sprout::value_iterator<T> last) {
|
||||
return last - first;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue