diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2022-08-29 14:40:01 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2022-08-29 16:21:36 +0200 |
commit | 62fda78aecc8ba827dc12081b1a5873393138ca9 (patch) | |
tree | 37de5b2545f5e1038cca3f4b20173021c2df7b29 /sd | |
parent | 1670e6504c00b254bf0f86ed5faae5cef6b2ff40 (diff) |
span requires a complete element type
...see C++20 [span.overview]/3 "ElementType is required to be a complete object
type that is not an abstract class type."
At least a --with-latest-c++ build against recent LLVM 16 trunk libc++ failed
for me now with
> In file included from sd/source/ui/app/sdmod.cxx:24:
> In file included from include/vcl/virdev.hxx:24:
> In file included from include/vcl/outdev.hxx:24:
> In file included from include/o3tl/span.hxx:19:
> ~/llvm/inst/bin/../include/c++/v1/span:540:38: error: arithmetic on a pointer to an incomplete type 'const SfxItemPropertyMapEntry'
> return iterator(this, data() + size());
> ~~~~~~ ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/access.h:144:36: note: in instantiation of member function 'std::span<const SfxItemPropertyMapEntry, 18446744073709551615>::end' requested here
> return _LIBCPP_AUTO_CAST(__t.end());
> ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:44:5: note: in instantiation of function template specialization 'std::ranges::__end::__fn::operator()<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' requested here
> ranges::end(__t);
> ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:44:5: note: in instantiation of requirement here
> ranges::end(__t);
> ^~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:42:19: note: while substituting template arguments into constraint expression here
> concept range = requires(_Tp& __t) {
> ^~~~~~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:48:25: note: while checking the satisfaction of concept 'range<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' requested here
> concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>;
> ^~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:48:25: note: (skipping 16 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
> ~/llvm/inst/bin/../include/c++/v1/__tree:761:23: note: in instantiation of template class 'std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>' requested here
> __node_value_type __value_;
> ^
> ~/llvm/inst/bin/../include/c++/v1/__tree:1798:49: note: in instantiation of template class 'std::__tree_node<std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>, void *>' requested here
> destroy(static_cast<__node_pointer>(__nd->__left_));
> ^
> ~/llvm/inst/bin/../include/c++/v1/__tree:1789:3: note: in instantiation of member function 'std::__tree<std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>, std::__map_value_compare<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>, SdExtPropertySetInfoCacheCompare, true>, std::allocator<std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>>>::destroy' requested here
> destroy(__root());
> ^
> ~/llvm/inst/bin/../include/c++/v1/map:1033:5: note: in instantiation of member function 'std::__tree<std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>, std::__map_value_compare<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>, SdExtPropertySetInfoCacheCompare, true>, std::allocator<std::__value_type<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>>>>::~__tree' requested here
> map()
> ^
> sd/source/ui/app/sdmod.cxx:57:11: note: in instantiation of member function 'std::map<std::span<const SfxItemPropertyMapEntry, 18446744073709551615>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>, SdExtPropertySetInfoCacheCompare>::map' requested here
> SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 )
> ^
> sd/inc/sdmod.hxx:45:8: note: forward declaration of 'SfxItemPropertyMapEntry'
> struct SfxItemPropertyMapEntry;
> ^
and
> In file included from sw/source/core/unocore/unochart.cxx:34:
> In file included from sw/inc/unochart.hxx:52:
> In file included from sw/inc/unocrsr.hxx:22:
> In file included from sw/inc/swcrsr.hxx:23:
> In file included from sw/inc/tblsel.hxx:22:
> In file included from sw/inc/swtable.hxx:24:
> In file included from sw/inc/swtypes.hxx:30:
> In file included from include/vcl/outdev.hxx:24:
> In file included from include/o3tl/span.hxx:19:
> ~/llvm/inst/bin/../include/c++/v1/span:540:38: error: arithmetic on a pointer to an incomplete type 'const SfxItemPropertyMapEntry'
> return iterator(this, data() + size());
> ~~~~~~ ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/access.h:144:36: note: in instantiation of member function 'std::span<const SfxItemPropertyMapEntry, 18446744073709551615>::end' requested here
> return _LIBCPP_AUTO_CAST(__t.end());
> ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:44:5: note: in instantiation of function template specialization 'std::ranges::__end::__fn::operator()<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' requested here
> ranges::end(__t);
> ^
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:44:5: note: in instantiation of requirement here
> ranges::end(__t);
> ^~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:42:19: note: while substituting template arguments into constraint expression here
> concept range = requires(_Tp& __t) {
> ^~~~~~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:48:25: note: while checking the satisfaction of concept 'range<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' requested here
> concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>;
> ^~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/__ranges/concepts.h:48:25: note: (skipping 11 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
> ~/llvm/inst/bin/../include/c++/v1/span:441:15: note: while checking the satisfaction of concept '__span_compatible_range<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &, const SfxItemPropertyMapEntry>' requested here
> template <__span_compatible_range<element_type> _Range>
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/span:441:15: note: while substituting template arguments into constraint expression here
> template <__span_compatible_range<element_type> _Range>
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~/llvm/inst/bin/../include/c++/v1/span:391:28: note: while checking constraint satisfaction for template 'span<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' required here
> class _LIBCPP_TEMPLATE_VIS span<_Tp, dynamic_extent> {
> ^~~~
> ~/llvm/inst/bin/../include/c++/v1/span:391:28: note: in instantiation of function template specialization 'std::span<const SfxItemPropertyMapEntry, 18446744073709551615>::span<const std::span<const SfxItemPropertyMapEntry, 18446744073709551615> &>' requested here
> sw/inc/unomap.hxx:317:7: note: while declaring the implicit copy constructor for 'SwUnoPropertyMapProvider'
> class SwUnoPropertyMapProvider
> ^
> sw/inc/unomap.hxx:26:8: note: forward declaration of 'SfxItemPropertyMapEntry'
> struct SfxItemPropertyMapEntry;
> ^
Change-Id: I53d7d427890b360d87fa29e184c7836eff672ece
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138995
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/inc/sdmod.hxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx index f001fa793786..4fca79b04b13 100644 --- a/sd/inc/sdmod.hxx +++ b/sd/inc/sdmod.hxx @@ -24,6 +24,7 @@ #include <sot/storage.hxx> #include "sddllapi.h" +#include <svl/itemprop.hxx> #include <svl/lstner.hxx> #include <com/sun/star/beans/XPropertySetInfo.hpp> #include <sfx2/app.hxx> @@ -42,7 +43,6 @@ class SdTransferable; class SvNumberFormatter; class SfxErrorHandler; class SfxFrame; -struct SfxItemPropertyMapEntry; class VclSimpleEvent; namespace svtools { class ColorConfig; } enum class SdrObjKind : sal_uInt16; |