mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-02-04 21:33:56 +00:00
add config: SPROUT_INITIALIZER_LIST_CONSTEXPR
This commit is contained in:
parent
3267d11b4a
commit
b95e583394
6 changed files with 16 additions and 51 deletions
|
@ -19,31 +19,17 @@
|
||||||
namespace sprout {
|
namespace sprout {
|
||||||
|
|
||||||
// 25.4.7 Minimum and maximum
|
// 25.4.7 Minimum and maximum
|
||||||
#ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
template<typename T, typename Compare>
|
||||||
inline SPROUT_CONSTEXPR T
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR T
|
||||||
max(std::initializer_list<T> t, Compare comp) {
|
max(std::initializer_list<T> t, Compare comp) {
|
||||||
return *sprout::max_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
return *sprout::max_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR T
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR T
|
||||||
max(std::initializer_list<T> t) {
|
max(std::initializer_list<T> t) {
|
||||||
return sprout::max(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
return sprout::max(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
||||||
}
|
}
|
||||||
#else // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
|
||||||
inline T
|
|
||||||
max(std::initializer_list<T> t, Compare comp) {
|
|
||||||
return *sprout::max_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
inline T
|
|
||||||
max(std::initializer_list<T> t) {
|
|
||||||
return sprout::max(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
|
||||||
}
|
|
||||||
#endif // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_ALGORITHM_MAX_HPP
|
#endif // #ifndef SPROUT_ALGORITHM_MAX_HPP
|
||||||
|
|
|
@ -19,31 +19,17 @@
|
||||||
namespace sprout {
|
namespace sprout {
|
||||||
|
|
||||||
// 25.4.7 Minimum and maximum
|
// 25.4.7 Minimum and maximum
|
||||||
#ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
template<typename T, typename Compare>
|
||||||
inline SPROUT_CONSTEXPR T
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR T
|
||||||
min(std::initializer_list<T> t, Compare comp) {
|
min(std::initializer_list<T> t, Compare comp) {
|
||||||
return *sprout::min_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
return *sprout::min_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR T
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR T
|
||||||
min(std::initializer_list<T> t) {
|
min(std::initializer_list<T> t) {
|
||||||
return sprout::min(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
return sprout::min(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
||||||
}
|
}
|
||||||
#else // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
|
||||||
inline T
|
|
||||||
min(std::initializer_list<T> t, Compare comp) {
|
|
||||||
return *sprout::min_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
inline T
|
|
||||||
min(std::initializer_list<T> t) {
|
|
||||||
return sprout::min(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
|
||||||
}
|
|
||||||
#endif // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_ALGORITHM_MIN_HPP
|
#endif // #ifndef SPROUT_ALGORITHM_MIN_HPP
|
||||||
|
|
|
@ -38,31 +38,17 @@ namespace sprout {
|
||||||
}
|
}
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
#ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
template<typename T, typename Compare>
|
||||||
inline SPROUT_CONSTEXPR sprout::pair<T, T>
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR sprout::pair<T, T>
|
||||||
minmax(std::initializer_list<T> t, Compare comp) {
|
minmax(std::initializer_list<T> t, Compare comp) {
|
||||||
return sprout::detail::minmax_impl<T>(sprout::minmax_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp));
|
return sprout::detail::minmax_impl<T>(sprout::minmax_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR sprout::pair<T, T>
|
inline SPROUT_INITIALIZER_LIST_CONSTEXPR sprout::pair<T, T>
|
||||||
minmax(std::initializer_list<T> t) {
|
minmax(std::initializer_list<T> t) {
|
||||||
return sprout::minmax(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
return sprout::minmax(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
||||||
}
|
}
|
||||||
#else // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
template<typename T, typename Compare>
|
|
||||||
inline sprout::pair<T, T>
|
|
||||||
minmax(std::initializer_list<T> t, Compare comp) {
|
|
||||||
return sprout::detail::minmax_impl<T>(sprout::minmax_element(sprout::ptr_index(t.begin(), 0), sprout::ptr_index(t.begin(), t.size()), comp));
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
inline sprout::pair<T, T>
|
|
||||||
minmax(std::initializer_list<T> t) {
|
|
||||||
return sprout::minmax(t, NS_SSCRISK_CEL_OR_SPROUT::less<T>());
|
|
||||||
}
|
|
||||||
#endif // #ifdef SPROUT_NO_CXX14_INITIALIZER_LIST
|
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_ALGORITHM_MINMAX_HPP
|
#endif // #ifndef SPROUT_ALGORITHM_MINMAX_HPP
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#define SPROUT_ARRAY_ARRAY_HPP
|
#define SPROUT_ARRAY_ARRAY_HPP
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <algorithm>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <sprout/config.hpp>
|
#include <sprout/config.hpp>
|
||||||
|
|
|
@ -40,6 +40,15 @@
|
||||||
# define SPROUT_CXX14_CONSTEXPR
|
# define SPROUT_CXX14_CONSTEXPR
|
||||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
|
||||||
|
|
||||||
|
//
|
||||||
|
// SPROUT_INITIALIZER_LIST_CONSTEXPR
|
||||||
|
//
|
||||||
|
#ifndef SPROUT_NO_CXX14_INITIALIZER_LIST
|
||||||
|
# define SPROUT_INITIALIZER_LIST_CONSTEXPR SPROUT_CXX14_CONSTEXPR
|
||||||
|
#else // #ifndef SPROUT_NO_CXX14_INITIALIZER_LIST
|
||||||
|
# define SPROUT_INITIALIZER_LIST_CONSTEXPR
|
||||||
|
#endif // #ifndef SPROUT_NO_CXX14_INITIALIZER_LIST
|
||||||
|
|
||||||
//
|
//
|
||||||
// SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL
|
// SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL
|
||||||
// SPROUT_DEFAULTED_DESTRUCTOR_DECL
|
// SPROUT_DEFAULTED_DESTRUCTOR_DECL
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <algorithm>
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
@ -363,7 +362,7 @@ namespace sprout {
|
||||||
typename sprout::identity<typename std::iterator_traits<InputIterator>::iterator_category*>::type()
|
typename sprout::identity<typename std::iterator_traits<InputIterator>::iterator_category*>::type()
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
basic_string(std::initializer_list<value_type> il)
|
SPROUT_INITIALIZER_LIST_CONSTEXPR basic_string(std::initializer_list<value_type> il)
|
||||||
: impl_type(
|
: impl_type(
|
||||||
sprout::make_index_tuple<N>::make(),
|
sprout::make_index_tuple<N>::make(),
|
||||||
sprout::detail::string_checked_construct_t(), il.begin(), 0, il.size()
|
sprout::detail::string_checked_construct_t(), il.begin(), 0, il.size()
|
||||||
|
|
Loading…
Add table
Reference in a new issue