visibility-decoration.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114486 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/chrono b/include/chrono
index 1c79c68..4effbc4 100644
--- a/include/chrono
+++ b/include/chrono
@@ -262,7 +262,7 @@
 namespace chrono
 {
 
-template <class _Rep, class _Period = ratio<1> > class duration;
+template <class _Rep, class _Period = ratio<1> > class _LIBCPP_VISIBLE duration;
 
 template <class _Tp>
 struct __is_duration : false_type {};
@@ -282,7 +282,8 @@
 } // chrono
 
 template <class _Rep1, class _Period1, class _Rep2, class _Period2>
-struct common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> >
+struct _LIBCPP_VISIBLE common_type<chrono::duration<_Rep1, _Period1>,
+                                   chrono::duration<_Rep2, _Period2> >
 {
     typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type,
                              typename __ratio_gcd<_Period1, _Period2>::type> type;
@@ -357,10 +358,11 @@
     return __duration_cast<duration<_Rep, _Period>, _ToDuration>()(__fd);
 }
 
-template <class _Rep> struct treat_as_floating_point : is_floating_point<_Rep> {};
+template <class _Rep>
+struct _LIBCPP_VISIBLE treat_as_floating_point : is_floating_point<_Rep> {};
 
 template <class _Rep>
-struct duration_values
+struct _LIBCPP_VISIBLE duration_values
 {
 public:
     _LIBCPP_INLINE_VISIBILITY static _Rep zero() {return _Rep(0);}
@@ -371,7 +373,7 @@
 // duration
 
 template <class _Rep, class _Period>
-class duration
+class _LIBCPP_VISIBLE duration
 {
     static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration");
     static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio");
@@ -667,7 +669,7 @@
 //////////////////////////////////////////////////////////
 
 template <class _Clock, class _Duration = typename _Clock::duration>
-class time_point
+class _LIBCPP_VISIBLE time_point
 {
     static_assert(__is_duration<_Duration>::value,
                   "Second template parameter of time_point must be a std::chrono::duration");
@@ -711,7 +713,8 @@
 } // chrono
 
 template <class _Clock, class _Duration1, class _Duration2>
-struct common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> >
+struct _LIBCPP_VISIBLE common_type<chrono::time_point<_Clock, _Duration1>,
+                                   chrono::time_point<_Clock, _Duration2> >
 {
     typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;
 };
@@ -833,7 +836,7 @@
 /////////////////////// clocks ///////////////////////////
 //////////////////////////////////////////////////////////
 
-class system_clock
+class _LIBCPP_VISIBLE system_clock
 {
 public:
     typedef microseconds                     duration;
@@ -847,7 +850,7 @@
     static time_point from_time_t(time_t __t);
 };
 
-class monotonic_clock
+class _LIBCPP_VISIBLE monotonic_clock
 {
 public:
     typedef nanoseconds                                   duration;