Skip to content

Commit 80d4450

Browse files
philnik777var-const
authored andcommitted
[libc++] Remove _LIBCPP_TEMPLATE_VIS (llvm#134885)
The need for `_LIBCPP_TEMPLATE_VIS` has been removed in llvm#133233.
1 parent adbd7fb commit 80d4450

File tree

261 files changed

+874
-949
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+874
-949
lines changed

libcxx/.clang-format

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ AttributeMacros: [
4343
'_LIBCPP_OVERRIDABLE_FUNC_VIS',
4444
'_LIBCPP_STANDALONE_DEBUG',
4545
'_LIBCPP_TEMPLATE_DATA_VIS',
46-
'_LIBCPP_TEMPLATE_VIS',
4746
'_LIBCPP_THREAD_SAFETY_ANNOTATION',
4847
'_LIBCPP_USING_IF_EXISTS',
4948
'_LIBCPP_WEAK',

libcxx/docs/DesignDocs/VisibilityMacros.rst

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,25 +64,13 @@ Visibility Macros
6464
ABI, we should create a new _LIBCPP_HIDE_FROM_ABI_AFTER_XXX macro, and we can
6565
use it to start removing symbols from the ABI after that stable version.
6666

67-
**_LIBCPP_TEMPLATE_VIS**
68-
Mark a type's typeinfo and vtable as having default visibility.
69-
This macro has no effect on the visibility of the type's member functions.
70-
71-
**GCC Behavior**: GCC does not support Clang's `type_visibility(...)`
72-
attribute. With GCC the `visibility(...)` attribute is used and member
73-
functions are affected.
74-
75-
**Windows Behavior**: DLLs do not support dllimport/export on class templates.
76-
The macro has an empty definition on this platform.
77-
7867
**_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS**
7968
Mark the member functions, typeinfo, and vtable of the type named in
8069
an extern template declaration as being exported by the libc++ library.
8170
This attribute must be specified on all extern class template declarations.
8271

83-
This macro is used to override the `_LIBCPP_TEMPLATE_VIS` attribute
84-
specified on the primary template and to export the member functions produced
85-
by the explicit instantiation in the dylib.
72+
This macro is used to export the member functions produced by the explicit
73+
instantiation in the dylib.
8674

8775
**Windows Behavior**: `extern template` and `dllexport` are fundamentally
8876
incompatible *on a class template* on Windows; the former suppresses

libcxx/include/__chrono/duration.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
3232
namespace chrono {
3333

3434
template <class _Rep, class _Period = ratio<1> >
35-
class _LIBCPP_TEMPLATE_VIS duration;
35+
class duration;
3636

3737
template <class _Tp>
3838
inline const bool __is_duration_v = false;
@@ -52,7 +52,7 @@ inline const bool __is_duration_v<const volatile duration<_Rep, _Period> > = tru
5252
} // namespace chrono
5353

5454
template <class _Rep1, class _Period1, class _Rep2, class _Period2>
55-
struct _LIBCPP_TEMPLATE_VIS common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > {
55+
struct common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > {
5656
typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type, __ratio_gcd<_Period1, _Period2> > type;
5757
};
5858

@@ -107,15 +107,15 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration duration_cast(const d
107107
}
108108

109109
template <class _Rep>
110-
struct _LIBCPP_TEMPLATE_VIS treat_as_floating_point : is_floating_point<_Rep> {};
110+
struct treat_as_floating_point : is_floating_point<_Rep> {};
111111

112112
#if _LIBCPP_STD_VER >= 17
113113
template <class _Rep>
114114
inline constexpr bool treat_as_floating_point_v = treat_as_floating_point<_Rep>::value;
115115
#endif
116116

117117
template <class _Rep>
118-
struct _LIBCPP_TEMPLATE_VIS duration_values {
118+
struct duration_values {
119119
public:
120120
_LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR _Rep zero() _NOEXCEPT { return _Rep(0); }
121121
_LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR _Rep max() _NOEXCEPT { return numeric_limits<_Rep>::max(); }
@@ -156,7 +156,7 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration round(const duration<
156156
// duration
157157

158158
template <class _Rep, class _Period>
159-
class _LIBCPP_TEMPLATE_VIS duration {
159+
class duration {
160160
static_assert(!__is_duration_v<_Rep>, "A duration representation can not be a duration");
161161
static_assert(__is_ratio_v<_Period>, "Second template parameter of duration must be a std::ratio");
162162
static_assert(_Period::num > 0, "duration period must be positive");

libcxx/include/__chrono/formatter.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ __format_chrono(const _Tp& __value,
698698
} // namespace __formatter
699699

700700
template <__fmt_char_type _CharT>
701-
struct _LIBCPP_TEMPLATE_VIS __formatter_chrono {
701+
struct __formatter_chrono {
702702
public:
703703
template <class _ParseContext>
704704
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator
@@ -716,7 +716,7 @@ struct _LIBCPP_TEMPLATE_VIS __formatter_chrono {
716716
};
717717

718718
template <class _Duration, __fmt_char_type _CharT>
719-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::sys_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
719+
struct formatter<chrono::sys_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
720720
public:
721721
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
722722

@@ -730,7 +730,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::sys_time<_Duration>, _CharT> : pub
730730
# if _LIBCPP_HAS_EXPERIMENTAL_TZDB
731731

732732
template <class _Duration, __fmt_char_type _CharT>
733-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::utc_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
733+
struct formatter<chrono::utc_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
734734
public:
735735
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
736736

@@ -741,7 +741,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::utc_time<_Duration>, _CharT> : pub
741741
};
742742

743743
template <class _Duration, __fmt_char_type _CharT>
744-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::tai_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
744+
struct formatter<chrono::tai_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
745745
public:
746746
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
747747

@@ -752,7 +752,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::tai_time<_Duration>, _CharT> : pub
752752
};
753753

754754
template <class _Duration, __fmt_char_type _CharT>
755-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::gps_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
755+
struct formatter<chrono::gps_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
756756
public:
757757
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
758758

@@ -766,7 +766,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::gps_time<_Duration>, _CharT> : pub
766766
# endif // _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM
767767

768768
template <class _Duration, __fmt_char_type _CharT>
769-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::file_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
769+
struct formatter<chrono::file_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
770770
public:
771771
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
772772

@@ -777,7 +777,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::file_time<_Duration>, _CharT> : pu
777777
};
778778

779779
template <class _Duration, __fmt_char_type _CharT>
780-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::local_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
780+
struct formatter<chrono::local_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
781781
public:
782782
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
783783

@@ -811,7 +811,7 @@ struct formatter<chrono::duration<_Rep, _Period>, _CharT> : public __formatter_c
811811
};
812812

813813
template <__fmt_char_type _CharT>
814-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::day, _CharT> : public __formatter_chrono<_CharT> {
814+
struct formatter<chrono::day, _CharT> : public __formatter_chrono<_CharT> {
815815
public:
816816
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
817817

@@ -822,7 +822,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::day, _CharT> : public __formatter_
822822
};
823823

824824
template <__fmt_char_type _CharT>
825-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month, _CharT> : public __formatter_chrono<_CharT> {
825+
struct formatter<chrono::month, _CharT> : public __formatter_chrono<_CharT> {
826826
public:
827827
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
828828

@@ -833,7 +833,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month, _CharT> : public __formatte
833833
};
834834

835835
template <__fmt_char_type _CharT>
836-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year, _CharT> : public __formatter_chrono<_CharT> {
836+
struct formatter<chrono::year, _CharT> : public __formatter_chrono<_CharT> {
837837
public:
838838
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
839839

@@ -844,7 +844,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year, _CharT> : public __formatter
844844
};
845845

846846
template <__fmt_char_type _CharT>
847-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday, _CharT> : public __formatter_chrono<_CharT> {
847+
struct formatter<chrono::weekday, _CharT> : public __formatter_chrono<_CharT> {
848848
public:
849849
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
850850

@@ -855,7 +855,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday, _CharT> : public __format
855855
};
856856

857857
template <__fmt_char_type _CharT>
858-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_indexed, _CharT> : public __formatter_chrono<_CharT> {
858+
struct formatter<chrono::weekday_indexed, _CharT> : public __formatter_chrono<_CharT> {
859859
public:
860860
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
861861

@@ -866,7 +866,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_indexed, _CharT> : public
866866
};
867867

868868
template <__fmt_char_type _CharT>
869-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_last, _CharT> : public __formatter_chrono<_CharT> {
869+
struct formatter<chrono::weekday_last, _CharT> : public __formatter_chrono<_CharT> {
870870
public:
871871
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
872872

@@ -877,7 +877,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_last, _CharT> : public __f
877877
};
878878

879879
template <__fmt_char_type _CharT>
880-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day, _CharT> : public __formatter_chrono<_CharT> {
880+
struct formatter<chrono::month_day, _CharT> : public __formatter_chrono<_CharT> {
881881
public:
882882
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
883883

@@ -888,7 +888,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day, _CharT> : public __form
888888
};
889889

890890
template <__fmt_char_type _CharT>
891-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day_last, _CharT> : public __formatter_chrono<_CharT> {
891+
struct formatter<chrono::month_day_last, _CharT> : public __formatter_chrono<_CharT> {
892892
public:
893893
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
894894

@@ -899,7 +899,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day_last, _CharT> : public _
899899
};
900900

901901
template <__fmt_char_type _CharT>
902-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday, _CharT> : public __formatter_chrono<_CharT> {
902+
struct formatter<chrono::month_weekday, _CharT> : public __formatter_chrono<_CharT> {
903903
public:
904904
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
905905

@@ -910,7 +910,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday, _CharT> : public __
910910
};
911911

912912
template <__fmt_char_type _CharT>
913-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
913+
struct formatter<chrono::month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
914914
public:
915915
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
916916

@@ -921,7 +921,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday_last, _CharT> : publ
921921
};
922922

923923
template <__fmt_char_type _CharT>
924-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month, _CharT> : public __formatter_chrono<_CharT> {
924+
struct formatter<chrono::year_month, _CharT> : public __formatter_chrono<_CharT> {
925925
public:
926926
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
927927

@@ -932,7 +932,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month, _CharT> : public __for
932932
};
933933

934934
template <__fmt_char_type _CharT>
935-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day, _CharT> : public __formatter_chrono<_CharT> {
935+
struct formatter<chrono::year_month_day, _CharT> : public __formatter_chrono<_CharT> {
936936
public:
937937
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
938938

@@ -943,7 +943,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day, _CharT> : public _
943943
};
944944

945945
template <__fmt_char_type _CharT>
946-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day_last, _CharT> : public __formatter_chrono<_CharT> {
946+
struct formatter<chrono::year_month_day_last, _CharT> : public __formatter_chrono<_CharT> {
947947
public:
948948
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
949949

@@ -954,7 +954,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day_last, _CharT> : pub
954954
};
955955

956956
template <__fmt_char_type _CharT>
957-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday, _CharT> : public __formatter_chrono<_CharT> {
957+
struct formatter<chrono::year_month_weekday, _CharT> : public __formatter_chrono<_CharT> {
958958
public:
959959
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
960960

@@ -965,7 +965,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday, _CharT> : publ
965965
};
966966

967967
template <__fmt_char_type _CharT>
968-
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
968+
struct formatter<chrono::year_month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
969969
public:
970970
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
971971

libcxx/include/__chrono/parser_std_format_spec.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr void __validate_time_zone(__flags __flags) {
139139
}
140140

141141
template <class _CharT>
142-
class _LIBCPP_TEMPLATE_VIS __parser_chrono {
142+
class __parser_chrono {
143143
using _ConstIterator _LIBCPP_NODEBUG = typename basic_format_parse_context<_CharT>::const_iterator;
144144

145145
public:

libcxx/include/__chrono/time_point.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
3131
namespace chrono {
3232

3333
template <class _Clock, class _Duration = typename _Clock::duration>
34-
class _LIBCPP_TEMPLATE_VIS time_point {
34+
class time_point {
3535
static_assert(__is_duration_v<_Duration>, "Second template parameter of time_point must be a std::chrono::duration");
3636

3737
public:
@@ -76,8 +76,7 @@ class _LIBCPP_TEMPLATE_VIS time_point {
7676
} // namespace chrono
7777

7878
template <class _Clock, class _Duration1, class _Duration2>
79-
struct _LIBCPP_TEMPLATE_VIS
80-
common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> > {
79+
struct common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> > {
8180
typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;
8281
};
8382

libcxx/include/__compare/common_comparison_category.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr auto __get_comp_type() {
7272

7373
// [cmp.common], common comparison category type
7474
template <class... _Ts>
75-
struct _LIBCPP_TEMPLATE_VIS common_comparison_category {
75+
struct common_comparison_category {
7676
using type _LIBCPP_NODEBUG = decltype(__comp_detail::__get_comp_type<_Ts...>());
7777
};
7878

libcxx/include/__compare/compare_three_way.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
2222

2323
#if _LIBCPP_STD_VER >= 20
2424

25-
struct _LIBCPP_TEMPLATE_VIS compare_three_way {
25+
struct compare_three_way {
2626
template <class _T1, class _T2>
2727
requires three_way_comparable_with<_T1, _T2>
2828
constexpr _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const

libcxx/include/__compare/compare_three_way_result.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ struct _LIBCPP_HIDE_FROM_ABI __compare_three_way_result<
3434
};
3535

3636
template <class _Tp, class _Up = _Tp>
37-
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_NO_SPECIALIZATIONS compare_three_way_result
38-
: __compare_three_way_result<_Tp, _Up, void> {};
37+
struct _LIBCPP_NO_SPECIALIZATIONS compare_three_way_result : __compare_three_way_result<_Tp, _Up, void> {};
3938

4039
template <class _Tp, class _Up = _Tp>
4140
using compare_three_way_result_t = typename compare_three_way_result<_Tp, _Up>::type;

libcxx/include/__config

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,6 @@ typedef __char32_t char32_t;
383383
# endif
384384

385385
# define _LIBCPP_HIDDEN
386-
# define _LIBCPP_TEMPLATE_VIS
387386
# define _LIBCPP_TEMPLATE_DATA_VIS
388387
# define _LIBCPP_NAMESPACE_VISIBILITY
389388

@@ -406,10 +405,6 @@ typedef __char32_t char32_t;
406405
# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_VISIBILITY("default")
407406
# endif
408407

409-
// This is kept to avoid a huge library-wide diff in the first step.
410-
// TODO: Remove this in a follow-up patch
411-
# define _LIBCPP_TEMPLATE_VIS
412-
413408
# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__)
414409
# define _LIBCPP_NAMESPACE_VISIBILITY __attribute__((__type_visibility__("default")))
415410
# elif !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)

libcxx/include/__coroutine/coroutine_handle.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ _LIBCPP_BEGIN_NAMESPACE_STD
2828

2929
// [coroutine.handle]
3030
template <class _Promise = void>
31-
struct _LIBCPP_TEMPLATE_VIS coroutine_handle;
31+
struct coroutine_handle;
3232

3333
template <>
34-
struct _LIBCPP_TEMPLATE_VIS coroutine_handle<void> {
34+
struct coroutine_handle<void> {
3535
public:
3636
// [coroutine.handle.con], construct/reset
3737
constexpr coroutine_handle() noexcept = default;
@@ -93,7 +93,7 @@ operator<=>(coroutine_handle<> __x, coroutine_handle<> __y) noexcept {
9393
}
9494

9595
template <class _Promise>
96-
struct _LIBCPP_TEMPLATE_VIS coroutine_handle {
96+
struct coroutine_handle {
9797
public:
9898
// [coroutine.handle.con], construct/reset
9999
constexpr coroutine_handle() noexcept = default;

libcxx/include/__coroutine/noop_coroutine_handle.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ struct noop_coroutine_promise {};
2828

2929
// [coroutine.handle.noop]
3030
template <>
31-
struct _LIBCPP_TEMPLATE_VIS coroutine_handle<noop_coroutine_promise> {
31+
struct coroutine_handle<noop_coroutine_promise> {
3232
public:
3333
// [coroutine.handle.noop.conv], conversion
3434
_LIBCPP_HIDE_FROM_ABI constexpr operator coroutine_handle<>() const noexcept {

0 commit comments

Comments
 (0)