include/o3tl/typed_flags_set.hxx | 96 ++++++++++++++++---------------- include/o3tl/underlyingenumvalue.hxx | 3 - sc/inc/address.hxx | 4 - sc/source/core/tool/address.cxx | 2 sc/source/core/tool/reffind.cxx | 2 vcl/source/animate/AnimationBitmap.cxx | 2 xmlsecurity/qa/unit/signing/signing.cxx | 28 ++++----- 7 files changed, 69 insertions(+), 68 deletions(-)
New commits: commit e41024bc9a693164ffc64048046469aaa81a07d4 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Wed Nov 24 00:00:21 2021 +0300 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Wed Nov 24 05:30:53 2021 +0100 Rename o3tl::underlyingEnumValue to o3tl::to_underlying to match C++23 Change-Id: I1597a8e77199445bf377dbe54adc3134bb04fd51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125748 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/include/o3tl/typed_flags_set.hxx b/include/o3tl/typed_flags_set.hxx index 7c9053bcd4f0..413ee9579d4d 100644 --- a/include/o3tl/typed_flags_set.hxx +++ b/include/o3tl/typed_flags_set.hxx @@ -104,10 +104,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ~(E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( o3tl::typed_flags<E>::mask - & ~o3tl::underlyingEnumValue(rhs)); + & ~o3tl::to_underlying(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ~( @@ -115,7 +115,7 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ~( { return static_cast<typename o3tl::typed_flags<E>::Wrap>( o3tl::typed_flags<E>::mask - & ~o3tl::underlyingEnumValue<E>(rhs)); + & ~o3tl::to_underlying<E>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( @@ -123,13 +123,13 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - ^ o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying(lhs) + ^ o3tl::to_underlying(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( @@ -137,10 +137,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - ^ o3tl::underlyingEnumValue<E>(rhs)); + o3tl::to_underlying(lhs) + ^ o3tl::to_underlying<E>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( @@ -148,10 +148,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator ^( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue<E>(lhs) - ^ o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying<E>(lhs) + ^ o3tl::to_underlying(rhs)); } template<typename W> constexpr @@ -159,21 +159,21 @@ typename o3tl::typed_flags<typename W::Unwrapped::Self>::Wrap operator ^( W lhs, W rhs) { return static_cast<W>( - o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(lhs) - ^ o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(rhs)); + o3tl::to_underlying<typename W::Unwrapped::Self>(lhs) + ^ o3tl::to_underlying<typename W::Unwrapped::Self>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator &(E lhs, E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - & o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying(lhs) + & o3tl::to_underlying(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator &( @@ -181,10 +181,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator &( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - & o3tl::underlyingEnumValue<E>(rhs)); + o3tl::to_underlying(lhs) + & o3tl::to_underlying<E>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator &( @@ -192,10 +192,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator &( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue<E>(lhs) - & o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying<E>(lhs) + & o3tl::to_underlying(rhs)); } template<typename W> constexpr @@ -203,21 +203,21 @@ typename o3tl::typed_flags<typename W::Unwrapped::Self>::Wrap operator &( W lhs, W rhs) { return static_cast<W>( - o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(lhs) - & o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(rhs)); + o3tl::to_underlying<typename W::Unwrapped::Self>(lhs) + & o3tl::to_underlying<typename W::Unwrapped::Self>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator |(E lhs, E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - | o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying(lhs) + | o3tl::to_underlying(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator |( @@ -225,10 +225,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator |( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue(lhs) - | o3tl::underlyingEnumValue<E>(rhs)); + o3tl::to_underlying(lhs) + | o3tl::to_underlying<E>(rhs)); } template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator |( @@ -236,10 +236,10 @@ template<typename E> constexpr typename o3tl::typed_flags<E>::Wrap operator |( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); return static_cast<typename o3tl::typed_flags<E>::Wrap>( - o3tl::underlyingEnumValue<E>(lhs) - | o3tl::underlyingEnumValue(rhs)); + o3tl::to_underlying<E>(lhs) + | o3tl::to_underlying(rhs)); } template<typename W> constexpr @@ -247,18 +247,18 @@ typename o3tl::typed_flags<typename W::Unwrapped::Self>::Wrap operator |( W lhs, W rhs) { return static_cast<W>( - o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(lhs) - | o3tl::underlyingEnumValue<typename W::Unwrapped::Self>(rhs)); + o3tl::to_underlying<typename W::Unwrapped::Self>(lhs) + | o3tl::to_underlying<typename W::Unwrapped::Self>(rhs)); } template<typename E> inline typename o3tl::typed_flags<E>::Self operator &=(E & lhs, E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); lhs = lhs & rhs; return lhs; } @@ -269,7 +269,7 @@ inline typename o3tl::typed_flags<E>::Self operator &=( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); lhs = lhs & rhs; return lhs; } @@ -278,10 +278,10 @@ template<typename E> inline typename o3tl::typed_flags<E>::Self operator |=(E & lhs, E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); lhs = lhs | rhs; return lhs; } @@ -292,7 +292,7 @@ inline typename o3tl::typed_flags<E>::Self operator |=( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); lhs = lhs | rhs; return lhs; } @@ -301,10 +301,10 @@ template<typename E> inline typename o3tl::typed_flags<E>::Self operator ^=(E & lhs, E rhs) { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(rhs))); + o3tl::to_underlying(rhs))); lhs = lhs ^ rhs; return lhs; } @@ -315,7 +315,7 @@ inline typename o3tl::typed_flags<E>::Self operator ^=( { assert( o3tl::detail::isNonNegative( - o3tl::underlyingEnumValue(lhs))); + o3tl::to_underlying(lhs))); lhs = lhs ^ rhs; return lhs; } diff --git a/include/o3tl/underlyingenumvalue.hxx b/include/o3tl/underlyingenumvalue.hxx index 1684b2da17d9..a913ab385381 100644 --- a/include/o3tl/underlyingenumvalue.hxx +++ b/include/o3tl/underlyingenumvalue.hxx @@ -16,8 +16,9 @@ namespace o3tl { +// An implementation of C++23 std::to_underlying // For a value e of an enumeration type T, return the corresponding value of T's underlying type: -template <typename T> constexpr std::underlying_type_t<T> underlyingEnumValue(T e) +template <typename T> constexpr std::underlying_type_t<T> to_underlying(T e) { return static_cast<std::underlying_type_t<T>>(e); } diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx index 56bd8d7f3e7d..dca071604627 100644 --- a/sc/inc/address.hxx +++ b/sc/inc/address.hxx @@ -182,11 +182,11 @@ namespace o3tl } inline void applyStartToEndFlags(ScRefFlags &target,const ScRefFlags source) { - target |= ScRefFlags(o3tl::underlyingEnumValue(source) << 4); + target |= ScRefFlags(o3tl::to_underlying(source) << 4); } inline void applyStartToEndFlags(ScRefFlags &target) { - target |= ScRefFlags(o3tl::underlyingEnumValue(target) << 4); + target |= ScRefFlags(o3tl::to_underlying(target) << 4); } // ScAddress diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx index c09628608bd2..d5a0bb29dca7 100644 --- a/sc/source/core/tool/address.cxx +++ b/sc/source/core/tool/address.cxx @@ -2232,7 +2232,7 @@ OUString ScRange::Format( const ScDocument& rDoc, ScRefFlags nFlags, { const ScDocument* pDoc = &rDoc; // move flags of end reference to start reference, mask with BITS to exclude FORCE_DOC flag - nFlags = ScRefFlags::VALID | (ScRefFlags(o3tl::underlyingEnumValue(nFlags) >> 4) & ScRefFlags::BITS); + nFlags = ScRefFlags::VALID | (ScRefFlags(o3tl::to_underlying(nFlags) >> 4) & ScRefFlags::BITS); if ( bOneTab ) pDoc = nullptr; else diff --git a/sc/source/core/tool/reffind.cxx b/sc/source/core/tool/reffind.cxx index 57e02f0a64cc..dab144437955 100644 --- a/sc/source/core/tool/reffind.cxx +++ b/sc/source/core/tool/reffind.cxx @@ -223,7 +223,7 @@ static ScRefFlags lcl_NextFlags( ScRefFlags nOld ) { const ScRefFlags Mask_ABS = ScRefFlags::COL_ABS | ScRefFlags::ROW_ABS | ScRefFlags::TAB_ABS; ScRefFlags nNew = nOld & Mask_ABS; - nNew = ScRefFlags( o3tl::underlyingEnumValue(nNew) - 1 ) & Mask_ABS; // weiterzaehlen + nNew = ScRefFlags( o3tl::to_underlying(nNew) - 1 ) & Mask_ABS; // weiterzaehlen if (!(nOld & ScRefFlags::TAB_3D)) nNew &= ~ScRefFlags::TAB_ABS; // not 3D -> never absolute! diff --git a/vcl/source/animate/AnimationBitmap.cxx b/vcl/source/animate/AnimationBitmap.cxx index 7ebaf98d9ec5..af4b1bb78556 100644 --- a/vcl/source/animate/AnimationBitmap.cxx +++ b/vcl/source/animate/AnimationBitmap.cxx @@ -41,7 +41,7 @@ BitmapChecksum AnimationBitmap::GetChecksum() const Int32ToSVBT32(mnWait, aBT32); nCrc = vcl_get_checksum(nCrc, aBT32, 4); - UInt32ToSVBT32(o3tl::underlyingEnumValue(meDisposal), aBT32); + UInt32ToSVBT32(o3tl::to_underlying(meDisposal), aBT32); nCrc = vcl_get_checksum(nCrc, aBT32, 4); UInt32ToSVBT32(sal_uInt32(mbUserInput), aBT32); diff --git a/xmlsecurity/qa/unit/signing/signing.cxx b/xmlsecurity/qa/unit/signing/signing.cxx index de54150d2108..38643a0b3098 100644 --- a/xmlsecurity/qa/unit/signing/signing.cxx +++ b/xmlsecurity/qa/unit/signing/signing.cxx @@ -496,7 +496,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFGood) // We expect NOTVALIDATED in case the root CA is not imported on the system, and OK otherwise, so accept both. SignatureState nActual = pObjectShell->GetDocumentSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); } @@ -535,7 +535,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFUnsignedTimestamp) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetDocumentSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(false)); @@ -561,7 +561,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, aaa_testODFX509CertificateChain) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetDocumentSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(false)); @@ -585,7 +585,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFDoubleX509Data) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetDocumentSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(false)); @@ -606,7 +606,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFTripleX509Data) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetDocumentSignatureState(); // here, libxmlsec will pick the 1st X509Data but signing key is the 2nd - CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), SignatureState::BROKEN, nActual); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(false)); @@ -627,7 +627,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFMacroDoubleX509Data) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetScriptingSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(true)); @@ -655,7 +655,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFDoubleX509Certificate) || nActual == SignatureState::BROKEN #endif )); - CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), nTemp); + CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), nTemp); uno::Sequence<security::DocumentSignatureInformation> const infos( pObjectShell->GetDocumentSignatureInformation(false)); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), infos.getLength()); @@ -692,7 +692,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testOOXMLPartial) // We expect NOTVALIDATED_PARTIAL_OK in case the root CA is not imported on the system, and PARTIAL_OK otherwise, so accept both. // But reject NOTVALIDATED, hiding incompleteness is not OK. SignatureState nActual = pObjectShell->GetDocumentSignatureState(); - CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED_PARTIAL_OK || nActual == SignatureState::PARTIAL_OK)); } @@ -729,7 +729,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testPDFGood) } CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); } @@ -868,7 +868,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, test96097Calc) CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pObjectShell); SignatureState nActual = pObjectShell->GetScriptingSignatureState(); - CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::OK || nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::INVALID)); @@ -905,7 +905,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, test96097Doc) CPPUNIT_ASSERT(pObjectShell); SignatureState nActual = pObjectShell->GetScriptingSignatureState(); - CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::OK || nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::INVALID)); @@ -1216,7 +1216,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testXAdESGood) // We expect NOTVALIDATED in case the root CA is not imported on the system, and OK otherwise, so accept both. SignatureState nActual = pObjectShell->GetDocumentSignatureState(); CPPUNIT_ASSERT_MESSAGE( - (OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + (OString::number(o3tl::to_underlying(nActual)).getStr()), (nActual == SignatureState::NOTVALIDATED || nActual == SignatureState::OK)); } @@ -1281,7 +1281,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFGoodGPG) // Our local gpg config fully trusts the signing cert, so in // contrast to the X509 test we can fail on NOTVALIDATED here SignatureState nActual = pObjectShell->GetDocumentSignatureState(); - CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), SignatureState::OK, nActual); } @@ -1297,7 +1297,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testODFUntrustedGoodGPG) // contrast to the X509 test we can fail everything but // NOTVALIDATED here SignatureState nActual = pObjectShell->GetDocumentSignatureState(); - CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::underlyingEnumValue(nActual)).getStr()), + CPPUNIT_ASSERT_EQUAL_MESSAGE((OString::number(o3tl::to_underlying(nActual)).getStr()), SignatureState::NOTVALIDATED, nActual); }