Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] visibility errors on gcc - std #1305

Merged
merged 1 commit into from
Oct 22, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions include/seqan3/std/span
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,9 @@ public:
constexpr span(iterator_t f, index_type count) noexcept : data_{addressof(*f)}
{ (void) count; assert(span_extent == count); } // "size mismatch in span's constructor (f, count)"

template <contiguous_iterator iterator_t, sized_sentinel_for<iterator_t> sentinel_t>
requires is_convertible_v<remove_reference_t<iter_reference_t<iterator_t>>(*)[], element_type(*)[]> &&
template <contiguous_iterator iterator_t, typename sentinel_t>
requires sized_sentinel_for<sentinel_t, iterator_t> &&
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doxugen \\!cond missing for all of them

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't do this, because the complete file is //!cond; see line17 to 425

is_convertible_v<remove_reference_t<iter_reference_t<iterator_t>>(*)[], element_type(*)[]> &&
!is_convertible_v<sentinel_t, size_t>
constexpr span(iterator_t f, sentinel_t l) noexcept : data_{addressof(*f)}
{ (void) l; assert(span_extent == distance(f, l)); } // "size mismatch in span's constructor (first, last)"
Expand Down Expand Up @@ -237,10 +238,11 @@ public:
constexpr span(iterator_t f, index_type count) noexcept : data_{addressof(*f)}, size_{count}
{}

template <contiguous_iterator iterator, sized_sentinel_for<iterator> sentinel>
requires is_convertible_v<remove_reference_t<iter_reference_t<iterator>>(*)[], element_type(*)[]> &&
!is_convertible_v<sentinel, size_t>
constexpr span(iterator f, sentinel l) noexcept : data_{addressof(*f)}, size_{static_cast<index_type>(distance(f, l))}
template <contiguous_iterator iterator, typename sentinel_t>
requires sized_sentinel_for<sentinel_t, iterator> &&
is_convertible_v<remove_reference_t<iter_reference_t<iterator>>(*)[], element_type(*)[]> &&
!is_convertible_v<sentinel_t, size_t>
constexpr span(iterator f, sentinel_t l) noexcept : data_{addressof(*f)}, size_{static_cast<index_type>(distance(f, l))}
{}

template <size_t span_sz>
Expand Down Expand Up @@ -402,7 +404,8 @@ template <class span_tp, ptrdiff_t span_extent>
template <contiguous_iterator iterator_t>
span(iterator_t, size_t) -> span<remove_reference_t<iter_reference_t<iterator_t>>>;

template <contiguous_iterator iterator_t, sized_sentinel_for<iterator_t> sentinel_t>
template <contiguous_iterator iterator_t, typename sentinel_t>
requires sized_sentinel_for<sentinel_t, iterator_t>
span(iterator_t, sentinel_t) -> span<remove_reference_t<iter_reference_t<iterator_t>>>;

template <class span_tp, size_t span_sz>
Expand Down