Skip to content
Snippets Groups Projects
Commit 020832fb authored by Pete Cooper's avatar Pete Cooper
Browse files

Add LLVM_HAS_INITIALIZER_LISTS for upcoming C++11 support. Use it in ArrayRef

llvm-svn: 194362
parent ef276df2
No related branches found
No related tags found
No related merge requests found
...@@ -83,6 +83,13 @@ namespace llvm { ...@@ -83,6 +83,13 @@ namespace llvm {
/*implicit*/ LLVM_CONSTEXPR ArrayRef(const T (&Arr)[N]) /*implicit*/ LLVM_CONSTEXPR ArrayRef(const T (&Arr)[N])
: Data(Arr), Length(N) {} : Data(Arr), Length(N) {}
#if LLVM_HAS_INITIALIZER_LISTS
/// Construct an ArrayRef from a std::initializer_list.
/*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
: Data(Vec.begin() == Vec.end() ? (T*)0 : Vec.begin()),
Length(Vec.size()) {}
#endif
/// @} /// @}
/// @name Simple Operations /// @name Simple Operations
/// @{ /// @{
......
...@@ -403,4 +403,13 @@ ...@@ -403,4 +403,13 @@
# define LLVM_ENUM_INT_TYPE(intty) # define LLVM_ENUM_INT_TYPE(intty)
#endif #endif
/// \brief Does the compiler support generalized initializers (using braced
/// lists and std::initializer_list).
#if (__has_feature(cxx_generalized_initializers) \
|| defined(__GXX_EXPERIMENTAL_CXX0X__))
#define LLVM_HAS_INITIALIZER_LISTS 1
#else
#define LLVM_HAS_INITIALIZER_LISTS 0
#endif
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment