From fdde7ba0337303a38bf16682f71bb8281bb4f095 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Tue, 6 Apr 2021 08:15:24 +0200 Subject: [PATCH] more doxygen in detail namesapce hpp files --- .../process/BoundaryCrossingProcess.hpp | 20 +++++++--- .../framework/process/ContinuousProcess.hpp | 37 +++++++++++++----- .../detail/framework/process/DecayProcess.hpp | 34 ++++++++++++++--- .../framework/process/InteractionProcess.hpp | 38 +++++++++++++++---- .../framework/process/ProcessSequence.inl | 7 ---- .../framework/process/SecondariesProcess.hpp | 19 +++++++--- .../detail/framework/process/StackProcess.hpp | 19 ++++++++-- .../process/SwitchProcessSequence.inl | 4 -- 8 files changed, 131 insertions(+), 47 deletions(-) diff --git a/corsika/detail/framework/process/BoundaryCrossingProcess.hpp b/corsika/detail/framework/process/BoundaryCrossingProcess.hpp index 385f452b8..1e9f7b869 100644 --- a/corsika/detail/framework/process/BoundaryCrossingProcess.hpp +++ b/corsika/detail/framework/process/BoundaryCrossingProcess.hpp @@ -12,36 +12,46 @@ namespace corsika { - // test for doBoundaryCrossing method - + /** + traits test for BoundaryCrossingProcess::doBoundaryCrossing method + */ template <class TProcess, typename TReturn, typename TParticle> struct has_method_doBoundaryCrossing : public detail::has_method_signature<TReturn, TParticle&, typename TParticle::node_type const&, typename TParticle::node_type const&> { + ///! method signature using detail::has_method_signature< TReturn, TParticle&, typename TParticle::node_type const&, typename TParticle::node_type const&>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // templated parameter option + //! templated parameter option template <class T> static decltype(testSignature(&T::template doBoundaryCrossing<TParticle>)) test( std::nullptr_t); - // non templated parameter option + //! non templated parameter option template <class T> static decltype(testSignature(&T::doBoundaryCrossing)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file BoundaryCrossingProcess.hpp + //! value traits type + template <class TProcess, typename TReturn, typename TParticle> bool constexpr has_method_doBoundaryCrossing_v = has_method_doBoundaryCrossing<TProcess, TReturn, TParticle>::value; diff --git a/corsika/detail/framework/process/ContinuousProcess.hpp b/corsika/detail/framework/process/ContinuousProcess.hpp index b119e8194..6827ac3c9 100644 --- a/corsika/detail/framework/process/ContinuousProcess.hpp +++ b/corsika/detail/framework/process/ContinuousProcess.hpp @@ -12,62 +12,81 @@ namespace corsika { - // test for doContinuous method - + /** + traits test for ContinuousProcess::doContinuous method + */ template <class TProcess, typename TReturn, typename TArg1, typename TArg2> struct has_method_doContinuous : public detail::has_method_signature<TReturn, TArg1, TArg2, bool> { + //! method signature using detail::has_method_signature<TReturn, TArg1, TArg2, bool>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // templated parameter option + //! templated parameter option template <class T> static decltype(testSignature(&T::template doContinuous<TArg1, TArg2>)) test( std::nullptr_t); - // non templated parameter option + //! non templated parameter option template <class T> static decltype(testSignature(&T::doContinuous)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file ContinuousProcess.hpp + //! value traits type template <class TProcess, typename TReturn, typename TArg1, typename TArg2> bool constexpr has_method_doContinuous_v = has_method_doContinuous<TProcess, TReturn, TArg1, TArg2>::value; - // test for getMaxStepLength method + + /** + traits test for ContinuousProcess::getMaxStepLength method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_getMaxStepLength : public detail::has_method_signature<TReturn, TArgs...> { + //! method signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // templated option + //! templated option template <class T> static decltype(testSignature(&T::template getMaxStepLength<TArgs...>)) test( std::nullptr_t); - // non templated option + //! non templated option template <class T> static decltype(testSignature(&T::getMaxStepLength)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! value traits type template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_getMaxStepLength_v = has_method_getMaxStepLength<TProcess, TReturn, TArgs...>::value; diff --git a/corsika/detail/framework/process/DecayProcess.hpp b/corsika/detail/framework/process/DecayProcess.hpp index e61d1c6e7..35bf56e77 100644 --- a/corsika/detail/framework/process/DecayProcess.hpp +++ b/corsika/detail/framework/process/DecayProcess.hpp @@ -12,59 +12,81 @@ namespace corsika { - // doDecay + /** + traits test for DecayProcess::doDecay method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_doDecay : public detail::has_method_signature<TReturn, TArgs...> { + //! type of process to be studied typedef std::decay_t<TProcess> process_type; + ///! method signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // signature of templated method + //! signature of templated method template <class T> static decltype(testSignature(&T::template doDecay<TArgs...>)) test(std::nullptr_t); - // signature of non-templated method + //! signature of non-templated method template <class T> static decltype(testSignature(&T::doDecay)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<process_type>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file DecayProcess.hpp + //! value traits type template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_doDecay_v = has_method_doDecay<TProcess, TReturn, TArgs...>::value; - // getLifetime + /** + traits test for DecayProcess::getLifetime method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_getLifetime : public detail::has_method_signature<TReturn, TArgs...> { + //! the moethod signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); + //! signature of templated method template <class T> static decltype(testSignature(&T::template getLifetime<TArgs...>)) test( std::nullptr_t); + //! signature of non-templated method template <class T> static decltype(testSignature(&T::getLifetime)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! value traits type template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_getLifetime_v = has_method_getLifetime<TProcess, TReturn, TArgs...>::value; diff --git a/corsika/detail/framework/process/InteractionProcess.hpp b/corsika/detail/framework/process/InteractionProcess.hpp index faa6d5cc4..1de29c1f8 100644 --- a/corsika/detail/framework/process/InteractionProcess.hpp +++ b/corsika/detail/framework/process/InteractionProcess.hpp @@ -12,61 +12,85 @@ namespace corsika { - // doInteract + /** + traits test for InteractionProcess::doInteraction method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_doInteract : public detail::has_method_signature<TReturn, TArgs...> { + ///! method signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // signature of templated method + //! signature of templated method template <class T> static decltype(testSignature(&T::template doInteraction<TArgs...>)) test( std::nullptr_t); - // signature of non-templated method + //! signature of non-templated method template <class T> static decltype(testSignature(&T::doInteraction)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file BoundaryCrossingProcess.hpp + //! value traits type template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_doInteract_v = has_method_doInteract<TProcess, TReturn, TArgs...>::value; - // getInteractionLength + + /** + traits test for InteractionProcess::getInteractionLength method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_getInteractionLength : public detail::has_method_signature<TReturn, TArgs...> { + ///! method signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); + //! templated parameter option template <class T> static decltype(testSignature(&T::template getInteractionLength<TArgs...>)) test( std::nullptr_t); + //! non templated parameter option template <class T> static decltype(testSignature(&T::getInteractionLength)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file BoundaryCrossingProcess.hpp + //! value traits type + template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_getInteractionLength_v = has_method_getInteractionLength<TProcess, TReturn, TArgs...>::value; - + } // namespace corsika diff --git a/corsika/detail/framework/process/ProcessSequence.inl b/corsika/detail/framework/process/ProcessSequence.inl index 28653afea..67adef1ce 100644 --- a/corsika/detail/framework/process/ProcessSequence.inl +++ b/corsika/detail/framework/process/ProcessSequence.inl @@ -46,9 +46,6 @@ namespace corsika { // interface checking on TProcess1 static_assert( has_method_doBoundaryCrossing_v<TProcess1, ProcessReturn, TParticle>, - // typename TParticle::node_type - // const&, - // typename TParticle::node_type const&>, "TDerived has no method with correct signature \"ProcessReturn " "doBoundaryCrossing(TParticle&, VolumeNode const&, VolumeNode const&)\" " "required for " @@ -67,9 +64,6 @@ namespace corsika { // interface checking on TProcess2 static_assert( has_method_doBoundaryCrossing_v<TProcess2, ProcessReturn, TParticle&>, - // typename TParticle::node_type - // const&, - // typename TParticle::node_type const&>, "TDerived has no method with correct signature \"ProcessReturn " "doBoundaryCrossing(TParticle&, VolumeNode const&, VolumeNode const&)\" " "required for " @@ -398,7 +392,6 @@ namespace corsika { if (decay_inv_select <= decay_inv_sum) { // interface checking on TProcess1 - static_assert(has_method_doDecay_v<TProcess2, void, TSecondaryView&>, "TDerived has no method with correct signature \"void " "doDecay(TSecondaryView&)\" required for " diff --git a/corsika/detail/framework/process/SecondariesProcess.hpp b/corsika/detail/framework/process/SecondariesProcess.hpp index c4d9bb5cc..4a1d42e61 100644 --- a/corsika/detail/framework/process/SecondariesProcess.hpp +++ b/corsika/detail/framework/process/SecondariesProcess.hpp @@ -12,32 +12,41 @@ namespace corsika { - // test for doSecondaries method - + /** + traits test for SecondariesProcess::doSecondaries method + */ template <class TProcess, typename TReturn, typename... TArg> struct has_method_doSecondaries : public detail::has_method_signature<TReturn, TArg...> { + //! method signature using detail::has_method_signature<TReturn, TArg...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // templated parameter option + //! templated parameter option template <class T> static decltype(testSignature(&T::template doSecondaries<TArg...>)) test( std::nullptr_t); - // non templated parameter option + //! non templated parameter option template <class T> static decltype(testSignature(&T::doSecondaries)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file DecayProcess.hpp + //! value traits type template <class TProcess, typename TReturn, typename... TArg> bool constexpr has_method_doSecondaries_v = has_method_doSecondaries<TProcess, TReturn, TArg...>::value; diff --git a/corsika/detail/framework/process/StackProcess.hpp b/corsika/detail/framework/process/StackProcess.hpp index a847d0ccd..4222c4f96 100644 --- a/corsika/detail/framework/process/StackProcess.hpp +++ b/corsika/detail/framework/process/StackProcess.hpp @@ -12,33 +12,44 @@ namespace corsika { - // test method doStack + /** + traits test for StackProcess::doStack method + */ template <class TProcess, typename TReturn, typename... TArgs> struct has_method_doStack : public detail::has_method_signature<TReturn, TArgs...> { + //! method signature using detail::has_method_signature<TReturn, TArgs...>::testSignature; - // the default value + //! the default value template <class T> static std::false_type test(...); - // templated parameter option + //! templated parameter option template <class T> static decltype(testSignature(&T::template doStack<TArgs...>)) test(std::nullptr_t); - // non-templated parameter option + //! templated-template parameter option template <template <typename> typename T> static decltype(testSignature(&T<TArgs...>::template doStack)) test(std::nullptr_t); + //! non-templated parameter option template <class T> static decltype(testSignature(&T::doStack)) test(std::nullptr_t); public: + /** + @name traits results + @{ + */ using type = decltype(test<std::decay_t<TProcess>>(nullptr)); static const bool value = type::value; + //! @} }; + //! @file StackProcess.hpp + //! value traits type template <class TProcess, typename TReturn, typename... TArgs> bool constexpr has_method_doStack_v = has_method_doStack<TProcess, TReturn, TArgs...>::value; diff --git a/corsika/detail/framework/process/SwitchProcessSequence.inl b/corsika/detail/framework/process/SwitchProcessSequence.inl index 494a8395b..cc04512ee 100644 --- a/corsika/detail/framework/process/SwitchProcessSequence.inl +++ b/corsika/detail/framework/process/SwitchProcessSequence.inl @@ -47,8 +47,6 @@ namespace corsika { static_assert( has_method_doBoundaryCrossing_v<TProcess1, ProcessReturn, TParticle&>, - // typename TParticle::node_type const&, - // typename TParticle::node_type const&>, "TDerived has no method with correct signature \"ProcessReturn " "doBoundaryCrossing(TParticle&, VolumeNode const&, VolumeNode const&)\" " "required for " @@ -70,8 +68,6 @@ namespace corsika { static_assert( has_method_doBoundaryCrossing_v<TProcess2, ProcessReturn, TParticle&>, - // typename TParticle::node_type const&, - // typename TParticle::node_type const&>, "TDerived has no method with correct signature \"ProcessReturn " "doBoundaryCrossing(TParticle&, VolumeNode const&, VolumeNode const&)\" " "required for " -- GitLab