summaryrefslogtreecommitdiffstats
path: root/libcxx/include/utility
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/utility')
-rw-r--r--libcxx/include/utility22
1 files changed, 13 insertions, 9 deletions
diff --git a/libcxx/include/utility b/libcxx/include/utility
index ccf20a773b0..1c1e4a3912b 100644
--- a/libcxx/include/utility
+++ b/libcxx/include/utility
@@ -186,7 +186,7 @@ move_if_noexcept(_Tp& __x)
return _STD::move(__x);
}
-struct piecewise_construct_t { };
+struct _LIBCPP_VISIBLE piecewise_construct_t { };
//constexpr
extern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t();
@@ -194,7 +194,7 @@ template <class _T1, class _T2> struct pair;
template <class _T1, class _T2> void swap(pair<_T1, _T2>&, pair<_T1, _T2>&);
template <class _T1, class _T2>
-struct pair
+struct _LIBCPP_VISIBLE pair
{
typedef _T1 first_type;
typedef _T2 second_type;
@@ -231,6 +231,7 @@ struct pair
{}
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
+ _LIBCPP_INLINE_VISIBILITY
pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args,
tuple<_Args2...> __second_args)
: pair(__pc, __first_args, __second_args,
@@ -240,6 +241,7 @@ struct pair
template <class _Tuple,
class = typename enable_if<__tuple_assignable<_Tuple, pair>::value>::type>
+ _LIBCPP_INLINE_VISIBILITY
pair&
operator=(_Tuple&& __p)
{
@@ -349,7 +351,7 @@ struct __make_pair_return
};
template <class _T1, class _T2>
-inline
+inline _LIBCPP_INLINE_VISIBILITY
pair<typename __make_pair_return<_T1>::type, typename __make_pair_return<_T2>::type>
make_pair(_T1&& __t1, _T2&& __t2)
{
@@ -372,34 +374,36 @@ make_pair(_T1 __x, _T2 __y)
#ifndef _LIBCPP_HAS_NO_VARIADICS
template <class _T1, class _T2>
- class tuple_size<pair<_T1, _T2> > : public integral_constant<size_t, 2> {};
+ class _LIBCPP_VISIBLE tuple_size<pair<_T1, _T2> >
+ : public integral_constant<size_t, 2> {};
template <class _T1, class _T2>
- class tuple_size<const pair<_T1, _T2> > : public integral_constant<size_t, 2> {};
+ class _LIBCPP_VISIBLE tuple_size<const pair<_T1, _T2> >
+ : public integral_constant<size_t, 2> {};
template <class _T1, class _T2>
-class tuple_element<0, pair<_T1, _T2> >
+class _LIBCPP_VISIBLE tuple_element<0, pair<_T1, _T2> >
{
public:
typedef _T1 type;
};
template <class _T1, class _T2>
-class tuple_element<1, pair<_T1, _T2> >
+class _LIBCPP_VISIBLE tuple_element<1, pair<_T1, _T2> >
{
public:
typedef _T2 type;
};
template <class _T1, class _T2>
-class tuple_element<0, const pair<_T1, _T2> >
+class _LIBCPP_VISIBLE tuple_element<0, const pair<_T1, _T2> >
{
public:
typedef const _T1 type;
};
template <class _T1, class _T2>
-class tuple_element<1, const pair<_T1, _T2> >
+class _LIBCPP_VISIBLE tuple_element<1, const pair<_T1, _T2> >
{
public:
typedef const _T2 type;
OpenPOWER on IntegriCloud