move initializer_list iter/citer to range.hh

master
Daniel Kolesa 2017-02-14 17:44:24 +01:00
parent 6b3707c0dc
commit 67cbcb71eb
3 changed files with 11 additions and 28 deletions

View File

@ -13,7 +13,6 @@
#include "ostd/range.hh"
#include "ostd/utility.hh"
#include "ostd/initializer_list.hh"
namespace ostd {

View File

@ -1,27 +0,0 @@
/* Initializer list support for OctaSTD.
*
* This file is part of OctaSTD. See COPYING.md for futher information.
*/
#ifndef OSTD_INITIALIZER_LIST_HH
#define OSTD_INITIALIZER_LIST_HH
#include <initializer_list>
#include "ostd/range.hh"
namespace ostd {
template<typename T>
IteratorRange<T const *> iter(std::initializer_list<T> init) noexcept {
return IteratorRange<T const *>(init.begin(), init.end());
}
template<typename T>
IteratorRange<T const *> citer(std::initializer_list<T> init) noexcept {
return IteratorRange<T const *>(init.begin(), init.end());
}
}
#endif

View File

@ -14,6 +14,7 @@
#include <utility>
#include <iterator>
#include <type_traits>
#include <initializer_list>
#include "ostd/types.hh"
#include "ostd/utility.hh"
@ -1807,6 +1808,16 @@ IteratorRange<T> make_range(T beg, size_t n) {
return IteratorRange<T>{beg, beg + n};
}
template<typename T>
IteratorRange<T const *> iter(std::initializer_list<T> init) noexcept {
return IteratorRange<T const *>(init.begin(), init.end());
}
template<typename T>
IteratorRange<T const *> citer(std::initializer_list<T> init) noexcept {
return IteratorRange<T const *>(init.begin(), init.end());
}
template<typename T, size_t N>
struct ranged_traits<T[N]> {
static IteratorRange<T *> iter(T (&array)[N]) {