Skip to content

Commit 031d5fa

Browse files
committed
fix review, simplify implementation
1 parent 545c4d9 commit 031d5fa

File tree

1 file changed

+17
-19
lines changed

1 file changed

+17
-19
lines changed

libcudacxx/include/cuda/std/string_view

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -148,15 +148,14 @@ public:
148148
{}
149149

150150
#if !_CCCL_COMPILER(NVRTC)
151-
_CCCL_HIDE_FROM_ABI constexpr basic_string_view(::std::basic_string_view<_CharT, _Traits> __sv) noexcept
151+
_CCCL_TEMPLATE(class _Traits2 = _Traits)
152+
_CCCL_REQUIRES(is_same_v<_Traits2, char_traits<_CharT>>)
153+
_CCCL_HIDE_FROM_ABI constexpr basic_string_view(::std::basic_string_view<_CharT> __sv) noexcept
152154
: __data_{__sv.data()}
153155
, __size_{__sv.size()}
154156
{}
155157

156-
_CCCL_TEMPLATE(bool = true)
157-
_CCCL_REQUIRES(is_same_v<_Traits, char_traits<_CharT>>)
158-
_CCCL_HIDE_FROM_ABI constexpr basic_string_view(
159-
::std::basic_string_view<_CharT, ::std::char_traits<_CharT>> __sv) noexcept
158+
_CCCL_HIDE_FROM_ABI constexpr basic_string_view(::std::basic_string_view<_CharT, _Traits> __sv) noexcept
160159
: __data_{__sv.data()}
161160
, __size_{__sv.size()}
162161
{}
@@ -738,16 +737,16 @@ public:
738737
}
739738

740739
#if !_CCCL_COMPILER(NVRTC)
741-
_CCCL_HIDE_FROM_ABI constexpr operator ::std::basic_string_view<_CharT, _Traits>() const noexcept
740+
_CCCL_TEMPLATE(class _Traits2 = _Traits)
741+
_CCCL_REQUIRES(is_same_v<_Traits2, char_traits<_CharT>>)
742+
_CCCL_HIDE_FROM_ABI constexpr operator ::std::basic_string_view<_CharT>() const noexcept
742743
{
743-
return ::std::basic_string_view<_CharT, _Traits>{__data_, __size_};
744+
return ::std::basic_string_view<_CharT>{__data_, __size_};
744745
}
745746

746-
_CCCL_TEMPLATE(bool = true)
747-
_CCCL_REQUIRES(is_same_v<_Traits, char_traits<_CharT>>)
748-
_CCCL_HIDE_FROM_ABI constexpr operator ::std::basic_string_view<_CharT, ::std::char_traits<_CharT>>() const noexcept
747+
_CCCL_HIDE_FROM_ABI constexpr operator ::std::basic_string_view<_CharT, _Traits>() const noexcept
749748
{
750-
return ::std::basic_string_view<_CharT, ::std::char_traits<_CharT>>{__data_, __size_};
749+
return ::std::basic_string_view<_CharT, _Traits>{__data_, __size_};
751750
}
752751
#endif // !_CCCL_COMPILER(NVRTC)
753752

@@ -779,29 +778,28 @@ _CCCL_REQUIRES(_CUDA_VRANGES::contiguous_range<_Range>)
779778
_CCCL_HOST_DEVICE basic_string_view(_Range&&) -> basic_string_view<_CUDA_VRANGES::range_value_t<_Range>>;
780779

781780
#if !_CCCL_COMPILER(NVRTC)
781+
_CCCL_TEMPLATE(class _CharT)
782+
_CCCL_HOST_DEVICE basic_string_view(::std::basic_string_view<_CharT>) -> basic_string_view<_CharT>;
783+
782784
_CCCL_TEMPLATE(class _CharT, class _Traits)
783785
_CCCL_HOST_DEVICE basic_string_view(::std::basic_string_view<_CharT, _Traits>) -> basic_string_view<_CharT, _Traits>;
784-
785-
_CCCL_TEMPLATE(class _CharT)
786-
_CCCL_HOST_DEVICE basic_string_view(::std::basic_string_view<_CharT, ::std::char_traits<_CharT>>)
787-
-> basic_string_view<_CharT, char_traits<_CharT>>;
788786
#endif // !_CCCL_COMPILER(NVRTC)
789787

790788
// operator <<
791789

792790
#if !_CCCL_COMPILER(NVRTC)
793791
template <class _CharT, class _Traits>
794-
_CCCL_HIDE_FROM_ABI _CCCL_HOST ::std::basic_ostream<_CharT, _Traits>&
792+
_CCCL_HIDE_FROM_ABI ::std::basic_ostream<_CharT, _Traits>&
795793
operator<<(::std::basic_ostream<_CharT, _Traits>& __os, basic_string_view<_CharT, _Traits> __str)
796794
{
797795
return __os << ::std::basic_string_view<_CharT, _Traits>{__str};
798796
}
799797

800798
template <class _CharT>
801-
_CCCL_HIDE_FROM_ABI _CCCL_HOST ::std::basic_ostream<_CharT, ::std::char_traits<_CharT>>& operator<<(
802-
::std::basic_ostream<_CharT, ::std::char_traits<_CharT>>& __os, basic_string_view<_CharT, char_traits<_CharT>> __str)
799+
_CCCL_HIDE_FROM_ABI ::std::basic_ostream<_CharT>&
800+
operator<<(::std::basic_ostream<_CharT>& __os, basic_string_view<_CharT> __str)
803801
{
804-
return __os << ::std::basic_string_view<_CharT, ::std::char_traits<_CharT>>{__str};
802+
return __os << ::std::basic_string_view<_CharT>{__str};
805803
}
806804
#endif // !_CCCL_COMPILER(NVRTC)
807805

0 commit comments

Comments
 (0)