[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;
|
||||
};
|
||||
|
||||
template<class E> const E* begin(initializer_list<E> il);
|
||||
template<class E> const E* end(initializer_list<E> il);
|
||||
|
||||
} // std
|
||||
|
||||
*/
|
||||
@ -75,6 +78,22 @@ public:
|
||||
_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
|
||||
|
||||
#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