[support.initlist.range]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104975 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a309da151c
commit
fcc593875c
@ -36,6 +36,9 @@ public:
|
|||||||
const E* end() const;
|
const E* end() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<class E> const E* begin(initializer_list<E> il);
|
||||||
|
template<class E> const E* end(initializer_list<E> il);
|
||||||
|
|
||||||
} // std
|
} // std
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -75,6 +78,22 @@ public:
|
|||||||
_LIBCPP_ALWAYS_INLINE const _E* end() const {return __begin_ + __size_;}
|
_LIBCPP_ALWAYS_INLINE const _E* end() const {return __begin_ + __size_;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<class _E>
|
||||||
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
const _E*
|
||||||
|
begin(initializer_list<_E> __il)
|
||||||
|
{
|
||||||
|
return __il.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class _E>
|
||||||
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
const _E*
|
||||||
|
end(initializer_list<_E> __il)
|
||||||
|
{
|
||||||
|
return __il.end();
|
||||||
|
}
|
||||||
|
|
||||||
} // std
|
} // std
|
||||||
|
|
||||||
#endif // _LIBCPP_INITIALIZER_LIST
|
#endif // _LIBCPP_INITIALIZER_LIST
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
// <initializer_list>
|
||||||
|
|
||||||
|
// template<class E> const E* begin(initializer_list<E> il);
|
||||||
|
|
||||||
|
#include <initializer_list>
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
struct A
|
||||||
|
{
|
||||||
|
A(std::initializer_list<int> il)
|
||||||
|
{
|
||||||
|
const int* b = begin(il);
|
||||||
|
const int* e = end(il);
|
||||||
|
assert(il.size() == 3);
|
||||||
|
assert(e - b == il.size());
|
||||||
|
assert(*b++ == 3);
|
||||||
|
assert(*b++ == 2);
|
||||||
|
assert(*b++ == 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
#ifdef _LIBCPP_MOVE
|
||||||
|
A test1 = {3, 2, 1};
|
||||||
|
#endif
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user