include/unotools/weakref.hxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 5831d5f03a5ea5b89984574ffe436f38500726da
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Tue Aug 1 15:37:45 2023 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Wed Aug 2 15:51:38 2023 +0200

    Don't enable the requires clause for some Xcode Clang
    
    ...even when building with -std=c++20 (cf.
    <https://gerrit.libreoffice.org/c/core/+/155121> "Bump baseline to C++20"), 
as
    that causes
    
    > In file included from animations/source/animcore/animcore.cxx:20:
    > In file included from 
workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/util/XCloneable.hpp:8:
    > 
workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/XInterface.hpp:32:65:
 error: invalid application of 'sizeof' to an incomplete type 
'animcore::(anonymous namespace)::AnimationNode'
    > template<typename T> inline constexpr auto isUnoInterfaceType = sizeof 
(T) && IsUnoInterfaceType<T>::value;
    >                                                                 ^~~~~~~~~~
    > include/unotools/weakref.hxx:119:33: note: in instantiation of variable 
template specialization 'cppu::detail::isUnoInterfaceType' requested here
    >         requires(!cppu::detail::isUnoInterfaceType<interface_type>)
    >                                 ^
    > animations/source/animcore/animcore.cxx:310:44: note: in instantiation of 
template class 'unotools::WeakReference<animcore::(anonymous 
namespace)::AnimationNode>' requested here
    >     unotools::WeakReference<AnimationNode> mxParent;
    >                                            ^
    > animations/source/animcore/animcore.cxx:122:7: note: definition of 
'animcore::(anonymous namespace)::AnimationNode' is not complete until the 
closing '}'
    > class AnimationNode final:  public AnimationNodeBase
    >       ^
    
    at least with Xcode 14.3.1.
    
    Change-Id: Iea6690578cd328545f54254acc0099947778c03e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155220
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/include/unotools/weakref.hxx b/include/unotools/weakref.hxx
index 1d9b29f82e70..0c58774bb825 100644
--- a/include/unotools/weakref.hxx
+++ b/include/unotools/weakref.hxx
@@ -115,7 +115,7 @@ public:
          @return hard reference or null, if the weakly referenced interface 
has gone
     */
     rtl::Reference<interface_type> SAL_CALL get() const
-#if __cplusplus >= 202002L
+#if __cplusplus >= 202002L && !(defined __clang__ && __clang_major__ == 14)
         requires(!cppu::detail::isUnoInterfaceType<interface_type>)
 #endif
     {

Reply via email to