SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/AnalyticSolutions - AnalyticSolution.hpp Hit Total Coverage
Commit: eb45036e71ee786d31156fb02c6e736b9a032426 Lines: 3 4 75.0 %
Date: 2024-04-18 22:31:00
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <type_traits>
       7             : 
       8             : // note that std::is_convertible is used in the following type aliases as it
       9             : // will not match private base classes (unlike std::is_base_of) and some
      10             : // analytic data privately inherits from an analytic solution
      11             : 
      12             : /// \ingroup AnalyticSolutionsGroup
      13             : /// \brief Empty base class for marking analytic solutions.
      14           1 : struct MarkAsAnalyticSolution {};
      15             : 
      16             : /// \ingroup AnalyticSolutionsGroup
      17             : /// \brief Check if `T` is an analytic solution
      18             : template <typename T>
      19           1 : using is_analytic_solution =
      20             :     typename std::is_convertible<T*, MarkAsAnalyticSolution*>;
      21             : 
      22             : /// \ingroup AnalyticSolutionsGroup
      23             : /// \brief `true` if `T` is an analytic solution
      24             : template <typename T>
      25           1 : constexpr bool is_analytic_solution_v =
      26             :     std::is_convertible_v<T*, MarkAsAnalyticSolution*>;

Generated by: LCOV version 1.14