summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-08-29 14:40:01 +0200
committerStephan Bergmann <sbergman@redhat.com>2022-08-29 16:21:36 +0200
commit62fda78aecc8ba827dc12081b1a5873393138ca9 (patch)
tree37de5b2545f5e1038cca3f4b20173021c2df7b29 /sd
parent1670e6504c00b254bf0f86ed5faae5cef6b2ff40 (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.hxx2
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;