sd/inc/sdmod.hxx  |    2 +-
 sw/inc/unomap.hxx |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 62fda78aecc8ba827dc12081b1a5873393138ca9
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Mon Aug 29 14:40:01 2022 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Mon Aug 29 16:21:36 2022 +0200

    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 <sberg...@redhat.com>

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;
diff --git a/sw/inc/unomap.hxx b/sw/inc/unomap.hxx
index b30603266732..d3cfcb862937 100644
--- a/sw/inc/unomap.hxx
+++ b/sw/inc/unomap.hxx
@@ -20,10 +20,10 @@
 #define INCLUDED_SW_INC_UNOMAP_HXX
 
 #include <sal/types.h>
+#include <svl/itemprop.hxx>
 #include <o3tl/span.hxx>
 
 class SfxItemPropertySet;
-struct SfxItemPropertyMapEntry;
 
 #define PROPERTY_MAP_TEXT_CURSOR            0
 #define PROPERTY_MAP_CHAR_STYLE             1

Reply via email to