constexpr applied to <array>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@160564 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
03d7181b0e
commit
08bce1754d
@ -55,7 +55,7 @@ struct array
|
|||||||
// capacity:
|
// capacity:
|
||||||
constexpr size_type size() const noexcept;
|
constexpr size_type size() const noexcept;
|
||||||
constexpr size_type max_size() const noexcept;
|
constexpr size_type max_size() const noexcept;
|
||||||
bool empty() const noexcept;
|
constexpr bool empty() const noexcept;
|
||||||
|
|
||||||
// element access:
|
// element access:
|
||||||
reference operator[](size_type n);
|
reference operator[](size_type n);
|
||||||
@ -173,11 +173,11 @@ struct _LIBCPP_VISIBLE array
|
|||||||
|
|
||||||
// capacity:
|
// capacity:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
/*constexpr*/ size_type size() const _NOEXCEPT {return _Size;}
|
_LIBCPP_CONSTEXPR size_type size() const _NOEXCEPT {return _Size;}
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
/*constexpr*/ size_type max_size() const _NOEXCEPT {return _Size;}
|
_LIBCPP_CONSTEXPR size_type max_size() const _NOEXCEPT {return _Size;}
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
bool empty() const _NOEXCEPT {return _Size == 0;}
|
_LIBCPP_CONSTEXPR bool empty() const _NOEXCEPT {return _Size == 0;}
|
||||||
|
|
||||||
// element access:
|
// element access:
|
||||||
_LIBCPP_INLINE_VISIBILITY reference operator[](size_type __n) {return __elems_[__n];}
|
_LIBCPP_INLINE_VISIBILITY reference operator[](size_type __n) {return __elems_[__n];}
|
||||||
|
@ -28,4 +28,18 @@ int main()
|
|||||||
C c = {};
|
C c = {};
|
||||||
assert(c.size() == 0);
|
assert(c.size() == 0);
|
||||||
}
|
}
|
||||||
|
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||||
|
{
|
||||||
|
typedef double T;
|
||||||
|
typedef std::array<T, 3> C;
|
||||||
|
constexpr C c = {1, 2, 3.5};
|
||||||
|
static_assert(c.size() == 3, "");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
typedef double T;
|
||||||
|
typedef std::array<T, 0> C;
|
||||||
|
constexpr C c = {};
|
||||||
|
static_assert(c.size() == 0, "");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user