summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2010-09-10 16:42:26 +0000
committerHoward Hinnant <hhinnant@apple.com>2010-09-10 16:42:26 +0000
commitf9cca3b7d0a5bfbc4388d18799a8c4423e352856 (patch)
tree685059acffad7c7aad1514c2d29a272730b9b4eb /libcxx/include
parentd0211cc65763d6d4a0bd4e5090e99044e045b380 (diff)
downloadbcm5719-llvm-f9cca3b7d0a5bfbc4388d18799a8c4423e352856.tar.gz
bcm5719-llvm-f9cca3b7d0a5bfbc4388d18799a8c4423e352856.zip
I am experimenting with putting visibility-default attributes on all struct/classes in libc++. This checkin decorates only basic_string and vector as an experiment, and for review by those in this audience that might know more about visibilty than I do. If I get no negative feedback on this procedure I will begin to decorate the entire library in this way.
llvm-svn: 113590
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/iosfwd6
-rw-r--r--libcxx/include/memory2
-rw-r--r--libcxx/include/string6
-rw-r--r--libcxx/include/vector4
4 files changed, 9 insertions, 9 deletions
diff --git a/libcxx/include/iosfwd b/libcxx/include/iosfwd
index a4d3f38b50b..f9ca1a6acc9 100644
--- a/libcxx/include/iosfwd
+++ b/libcxx/include/iosfwd
@@ -92,8 +92,8 @@ typedef fpos<char_traits<wchar_t>::state_type> wstreampos;
_LIBCPP_BEGIN_NAMESPACE_STD
-template<class _CharT> struct char_traits;
-template<class _Tp> class allocator;
+template<class _CharT> struct _LIBCPP_VISIBLE char_traits;
+template<class _Tp> class _LIBCPP_VISIBLE allocator;
template <class _CharT, class _Traits = char_traits<_CharT> > class basic_ios;
@@ -164,7 +164,7 @@ typedef long long streamoff; // for char_traits in <string>
template <class _CharT, // for <stdexcept>
class _Traits = char_traits<_CharT>,
- class _Allocator = allocator<_CharT> > class basic_string;
+ class _Allocator = allocator<_CharT> > class _LIBCPP_VISIBLE basic_string;
typedef basic_string<char, char_traits<char>, allocator<char> > string;
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
diff --git a/libcxx/include/memory b/libcxx/include/memory
index 5b2b41dcfe5..b4875ce7827 100644
--- a/libcxx/include/memory
+++ b/libcxx/include/memory
@@ -1471,7 +1471,7 @@ struct __uses_alloc_ctor
// allocator
template <class _Tp>
-class allocator
+class _LIBCPP_VISIBLE allocator
{
public:
typedef size_t size_type;
diff --git a/libcxx/include/string b/libcxx/include/string
index fc15bc8a5d7..4e6d7cd5c78 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -479,7 +479,7 @@ bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
// char_traits
template <class _CharT>
-struct char_traits
+struct _LIBCPP_VISIBLE char_traits
{
typedef _CharT char_type;
typedef int int_type;
@@ -591,7 +591,7 @@ char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
// char_traits<char>
template <>
-struct char_traits<char>
+struct _LIBCPP_VISIBLE char_traits<char>
{
typedef char char_type;
typedef int int_type;
@@ -933,7 +933,7 @@ __basic_string_common<__b>::__throw_out_of_range() const
extern template class __basic_string_common<true>;
template<class _CharT, class _Traits, class _Allocator>
-class basic_string
+class _LIBCPP_VISIBLE basic_string
: private __basic_string_common<true>
{
public:
diff --git a/libcxx/include/vector b/libcxx/include/vector
index 7441cd01af0..f985a0e25d4 100644
--- a/libcxx/include/vector
+++ b/libcxx/include/vector
@@ -419,7 +419,7 @@ __vector_base<_Tp, _Allocator>::~__vector_base()
}
template <class _Tp, class _Allocator = allocator<_Tp> >
-class vector
+class _LIBCPP_VISIBLE vector
: private __vector_base<_Tp, _Allocator>
{
private:
@@ -1682,7 +1682,7 @@ template <class _Allocator> class vector<bool, _Allocator>;
template <class _Allocator> struct hash<vector<bool, _Allocator> >;
template <class _Allocator>
-class vector<bool, _Allocator>
+class _LIBCPP_VISIBLE vector<bool, _Allocator>
: private __vector_base_common<true>
{
public:
OpenPOWER on IntegriCloud