summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-03 04:32:25 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-03 04:32:25 +0000
commitb26a4c3cd8086d42139d05da8ebc2620c7a7ad38 (patch)
treed062c274abad0eba2f5d8903db46d47e94935cf1 /libstdc++-v3
parentc3264d7ee05c9924a63fcf34bd95e5b3c98156ff (diff)
downloadgcc-b26a4c3cd8086d42139d05da8ebc2620c7a7ad38.tar.gz
* gcc/tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
* gcc/cp/Make-lang.in (cp/typeck2.o): Add dependency. * libstdc++-v3/libsupc++/initializer_list: Uglify and wrap in __GXX_EXPERIMENTAL_CXX0X__. * libstdc++-v3/include/bits/stl_map.h (insert(initializer_list)): Wrap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137406 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/stl_map.h6
-rw-r--r--libstdc++-v3/libsupc++/initializer_list23
3 files changed, 23 insertions, 12 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4c3689e3421..6f0b4152c47 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,11 @@
2008-07-02 Jason Merrill <jason@redhat.com>
+ * libsupc++/initializer_list: Uglify and wrap in
+ __GXX_EXPERIMENTAL_CXX0X__.
+ * include/bits/stl_map.h (insert(initializer_list)): Wrap.
+
+2008-07-02 Jason Merrill <jason@redhat.com>
+
* libsupc++/initializer_list: New file.
* include/bits/stl_map.h (insert(initializer_list)): New method.
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index cf0c16bc42d..cd85b9ab75d 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -469,6 +469,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
insert(const value_type& __x)
{ return _M_t._M_insert_unique(__x); }
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Attempts to insert a list of std::pairs into the %map.
* @param list A std::initializer_list<value_type> of pairs to be
@@ -478,8 +479,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
*
*/
void
- insert(std::initializer_list<value_type> list)
- { insert (list.begin(), list.end()); }
+ insert(std::initializer_list<value_type> __list)
+ { insert (__list.begin(), __list.end()); }
+#endif
/**
* @brief Attempts to insert a std::pair into the %map.
diff --git a/libstdc++-v3/libsupc++/initializer_list b/libstdc++-v3/libsupc++/initializer_list
index 1a3cba3dd02..3c81bb69c8b 100644
--- a/libstdc++-v3/libsupc++/initializer_list
+++ b/libstdc++-v3/libsupc++/initializer_list
@@ -31,34 +31,37 @@
#ifndef __CXX_INITIALIZER_LIST
#define __CXX_INITIALIZER_LIST
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+
#pragma GCC visibility push(default)
#include <cstddef>
namespace std
{
- template<class E>
+ template<class _E>
class initializer_list
{
- const E* _array;
- size_t _len;
+ const _E* __array;
+ size_t __len;
// The compiler can call a private constructor.
- initializer_list(const E* _a, size_t _l)
- : _array(_a), _len(_l) { }
+ initializer_list(const _E* __a, size_t __l)
+ : __array(__a), __len(__l) { }
public:
initializer_list()
- : _array(NULL), _len(0) {}
+ : __array(NULL), __len(0) {}
size_t size() const // number of elements
- { return _len; }
- const E* begin() const // first element
- { return _array; }
- const E* end() const // one past the last element
+ { return __len; }
+ const _E* begin() const // first element
+ { return __array; }
+ const _E* end() const // one past the last element
{ return begin() + size(); }
};
}
#pragma GCC visibility pop
+#endif // C++0x
#endif // __CXX_INITIALIZER_LIST