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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113590 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -92,8 +92,8 @@ typedef fpos<char_traits<wchar_t>::state_type> wstreampos;
|
|||||||
|
|
||||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||||
|
|
||||||
template<class _CharT> struct char_traits;
|
template<class _CharT> struct _LIBCPP_VISIBLE char_traits;
|
||||||
template<class _Tp> class allocator;
|
template<class _Tp> class _LIBCPP_VISIBLE allocator;
|
||||||
|
|
||||||
template <class _CharT, class _Traits = char_traits<_CharT> > class basic_ios;
|
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>
|
template <class _CharT, // for <stdexcept>
|
||||||
class _Traits = char_traits<_CharT>,
|
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<char, char_traits<char>, allocator<char> > string;
|
||||||
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
|
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
|
||||||
|
|
||||||
|
|||||||
@@ -1471,7 +1471,7 @@ struct __uses_alloc_ctor
|
|||||||
// allocator
|
// allocator
|
||||||
|
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
class allocator
|
class _LIBCPP_VISIBLE allocator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef size_t size_type;
|
typedef size_t size_type;
|
||||||
|
|||||||
@@ -479,7 +479,7 @@ bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
|
|||||||
// char_traits
|
// char_traits
|
||||||
|
|
||||||
template <class _CharT>
|
template <class _CharT>
|
||||||
struct char_traits
|
struct _LIBCPP_VISIBLE char_traits
|
||||||
{
|
{
|
||||||
typedef _CharT char_type;
|
typedef _CharT char_type;
|
||||||
typedef int int_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>
|
// char_traits<char>
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct char_traits<char>
|
struct _LIBCPP_VISIBLE char_traits<char>
|
||||||
{
|
{
|
||||||
typedef char char_type;
|
typedef char char_type;
|
||||||
typedef int int_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>;
|
extern template class __basic_string_common<true>;
|
||||||
|
|
||||||
template<class _CharT, class _Traits, class _Allocator>
|
template<class _CharT, class _Traits, class _Allocator>
|
||||||
class basic_string
|
class _LIBCPP_VISIBLE basic_string
|
||||||
: private __basic_string_common<true>
|
: private __basic_string_common<true>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ __vector_base<_Tp, _Allocator>::~__vector_base()
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class _Tp, class _Allocator = allocator<_Tp> >
|
template <class _Tp, class _Allocator = allocator<_Tp> >
|
||||||
class vector
|
class _LIBCPP_VISIBLE vector
|
||||||
: private __vector_base<_Tp, _Allocator>
|
: private __vector_base<_Tp, _Allocator>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -1682,7 +1682,7 @@ template <class _Allocator> class vector<bool, _Allocator>;
|
|||||||
template <class _Allocator> struct hash<vector<bool, _Allocator> >;
|
template <class _Allocator> struct hash<vector<bool, _Allocator> >;
|
||||||
|
|
||||||
template <class _Allocator>
|
template <class _Allocator>
|
||||||
class vector<bool, _Allocator>
|
class _LIBCPP_VISIBLE vector<bool, _Allocator>
|
||||||
: private __vector_base_common<true>
|
: private __vector_base_common<true>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
Reference in New Issue
Block a user