\hypertarget{catch2_2catch_8hpp_source}{}\doxysection{catch.\+hpp}
\label{catch2_2catch_8hpp_source}\index{catch2/catch.hpp@{catch2/catch.hpp}}
\mbox{\hyperlink{catch2_2catch_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00002}00002 \textcolor{comment}{ *  Catch v2.13.10}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00003}00003 \textcolor{comment}{ *  Generated: 2022-\/10-\/16 11:01:23.452308}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00004}00004 \textcolor{comment}{ *  -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00005}00005 \textcolor{comment}{ *  This file has been merged from multiple headers. Please don't edit it directly}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00006}00006 \textcolor{comment}{ *  Copyright (c) 2022 Two Blue Cubes Ltd. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00008}00008 \textcolor{comment}{ *  Distributed under the Boost Software License, Version 1.0. (See accompanying}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00009}00009 \textcolor{comment}{ *  file LICENSE\_1\_0.txt or copy at http://www.boost.org/LICENSE\_1\_0.txt)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00010}00010 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00011}00011 \textcolor{preprocessor}{\#ifndef TWOBLUECUBES\_SINGLE\_INCLUDE\_CATCH\_HPP\_INCLUDED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00012}00012 \textcolor{preprocessor}{\#define TWOBLUECUBES\_SINGLE\_INCLUDE\_CATCH\_HPP\_INCLUDED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00013}00013 \textcolor{comment}{// start catch.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00014}00014 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00015}00015 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00016}\mbox{\hyperlink{catch2_2catch_8hpp_aed4b3022e5b389a59ee3e1633c0a70a8}{00016}} \textcolor{preprocessor}{\#define CATCH\_VERSION\_MAJOR 2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00017}\mbox{\hyperlink{catch2_2catch_8hpp_a7c36daa8f2e725fe5e1ff2a9c2559d4f}{00017}} \textcolor{preprocessor}{\#define CATCH\_VERSION\_MINOR 13}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00018}\mbox{\hyperlink{catch2_2catch_8hpp_ab6adfb1d16a244d790dc1fe385831a52}{00018}} \textcolor{preprocessor}{\#define CATCH\_VERSION\_PATCH 10}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00019}00019 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00020}00020 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00021}00021 \textcolor{preprocessor}{\#    pragma clang system\_header}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00022}00022 \textcolor{preprocessor}{\#elif defined \_\_GNUC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00023}00023 \textcolor{preprocessor}{\#    pragma GCC system\_header}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00024}00024 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00025}00025 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00026}00026 \textcolor{comment}{// start catch\_suppress\_warnings.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00027}00027 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00028}00028 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00029}00029 \textcolor{preprocessor}{\#   ifdef \_\_ICC }\textcolor{comment}{// icpc defines the \_\_clang\_\_ macro}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00030}00030 \textcolor{preprocessor}{\#       pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00031}00031 \textcolor{preprocessor}{\#       pragma warning(disable: 161 1682)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00032}00032 \textcolor{preprocessor}{\#   else }\textcolor{comment}{// \_\_ICC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00033}00033 \textcolor{preprocessor}{\#       pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00034}00034 \textcolor{preprocessor}{\#       pragma clang diagnostic ignored "{}-\/Wpadded"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00035}00035 \textcolor{preprocessor}{\#       pragma clang diagnostic ignored "{}-\/Wswitch-\/enum"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00036}00036 \textcolor{preprocessor}{\#       pragma clang diagnostic ignored "{}-\/Wcovered-\/switch-\/default"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00037}00037 \textcolor{preprocessor}{\#    endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00038}00038 \textcolor{preprocessor}{\#elif defined \_\_GNUC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00039}00039      \textcolor{comment}{// Because REQUIREs trigger GCC's -\/Wparentheses, and because still}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00040}00040      \textcolor{comment}{// supported version of g++ have only buggy support for \_Pragmas,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00041}00041      \textcolor{comment}{// Wparentheses have to be suppressed globally.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00042}00042 \textcolor{preprocessor}{\#    pragma GCC diagnostic ignored "{}-\/Wparentheses"{}} \textcolor{comment}{// See \#674 for details}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00044}00044 \textcolor{preprocessor}{\#    pragma GCC diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00045}00045 \textcolor{preprocessor}{\#    pragma GCC diagnostic ignored "{}-\/Wunused-\/variable"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00046}00046 \textcolor{preprocessor}{\#    pragma GCC diagnostic ignored "{}-\/Wpadded"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00047}00047 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00048}00048 \textcolor{comment}{// end catch\_suppress\_warnings.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00049}00049 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_MAIN) || defined(CATCH\_CONFIG\_RUNNER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00050}00050 \textcolor{preprocessor}{\#  define CATCH\_IMPL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00051}00051 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ALL\_PARTS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00052}00052 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00054}00054 \textcolor{comment}{// In the impl file, we want to have access to all parts of the headers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00055}00055 \textcolor{comment}{// Can also be used to sanely support PCHs}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00056}00056 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ALL\_PARTS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00057}00057 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_EXTERNAL\_INTERFACES}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00058}00058 \textcolor{preprocessor}{\#  if defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00059}00059 \textcolor{preprocessor}{\#    undef CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00060}00060 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00061}00061 \textcolor{preprocessor}{\#  if !defined(CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00062}00062 \textcolor{preprocessor}{\#    define CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00063}00063 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00064}00064 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00065}00065 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00066}00066 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_IMPL\_ONLY)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00067}00067 \textcolor{comment}{// start catch\_platform.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00069}00069 \textcolor{comment}{// See e.g.:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00070}00070 \textcolor{comment}{// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-\/18.1/TargetConditionals.h.auto.html}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00071}00071 \textcolor{preprocessor}{\#ifdef \_\_APPLE\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00072}00072 \textcolor{preprocessor}{\#  include <TargetConditionals.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00073}00073 \textcolor{preprocessor}{\#  if (defined(TARGET\_OS\_OSX) \&\& TARGET\_OS\_OSX == 1) || \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00074}00074 \textcolor{preprocessor}{      (defined(TARGET\_OS\_MAC) \&\& TARGET\_OS\_MAC == 1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00075}00075 \textcolor{preprocessor}{\#    define CATCH\_PLATFORM\_MAC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00076}00076 \textcolor{preprocessor}{\#  elif (defined(TARGET\_OS\_IPHONE) \&\& TARGET\_OS\_IPHONE == 1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00077}00077 \textcolor{preprocessor}{\#    define CATCH\_PLATFORM\_IPHONE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00078}00078 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00080}00080 \textcolor{preprocessor}{\#elif defined(linux) || defined(\_\_linux) || defined(\_\_linux\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00081}00081 \textcolor{preprocessor}{\#  define CATCH\_PLATFORM\_LINUX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00082}00082 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00083}00083 \textcolor{preprocessor}{\#elif defined(WIN32) || defined(\_\_WIN32\_\_) || defined(\_WIN32) || defined(\_MSC\_VER) || defined(\_\_MINGW32\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00084}00084 \textcolor{preprocessor}{\#  define CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00085}00085 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00087}00087 \textcolor{comment}{// end catch\_platform.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00088}00088 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00089}00089 \textcolor{preprocessor}{\#ifdef CATCH\_IMPL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00090}00090 \textcolor{preprocessor}{\#  ifndef CLARA\_CONFIG\_MAIN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00091}00091 \textcolor{preprocessor}{\#    define CLARA\_CONFIG\_MAIN\_NOT\_DEFINED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00092}00092 \textcolor{preprocessor}{\#    define CLARA\_CONFIG\_MAIN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00093}00093 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00094}00094 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00096}00096 \textcolor{comment}{// start catch\_user\_interfaces.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00098}00098 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00099}00099     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{rngSeed}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00100}00100 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00102}00102 \textcolor{comment}{// end catch\_user\_interfaces.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00103}00103 \textcolor{comment}{// start catch\_tag\_alias\_autoregistrar.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00105}00105 \textcolor{comment}{// start catch\_common.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00107}00107 \textcolor{comment}{// start catch\_compiler\_capabilities.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00108}00108 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00109}00109 \textcolor{comment}{// Detect a number of compiler features -\/ by compiler}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00110}00110 \textcolor{comment}{// The following features are defined:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00111}00111 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00112}00112 \textcolor{comment}{// CATCH\_CONFIG\_COUNTER : is the \_\_COUNTER\_\_ macro supported?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00113}00113 \textcolor{comment}{// CATCH\_CONFIG\_WINDOWS\_SEH : is Windows SEH supported?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00114}00114 \textcolor{comment}{// CATCH\_CONFIG\_POSIX\_SIGNALS : are POSIX signals supported?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00115}00115 \textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_EXCEPTIONS : Are exceptions enabled?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00116}00116 \textcolor{comment}{// ****************}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00117}00117 \textcolor{comment}{// Note to maintainers: if new toggles are added please document them}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00118}00118 \textcolor{comment}{// in configuration.md, too}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00119}00119 \textcolor{comment}{// ****************}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00120}00120 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00121}00121 \textcolor{comment}{// In general each macro has a \_NO\_<feature name> form}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00122}00122 \textcolor{comment}{// (e.g. CATCH\_CONFIG\_NO\_POSIX\_SIGNALS) which disables the feature.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00123}00123 \textcolor{comment}{// Many features, at point of detection, define an \_INTERNAL\_ macro, so they}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00124}00124 \textcolor{comment}{// can be combined, en-\/mass, with the \_NO\_ forms later.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00126}00126 \textcolor{preprocessor}{\#ifdef \_\_cplusplus}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00128}00128 \textcolor{preprocessor}{\#  if (\_\_cplusplus >= 201402L) || (defined(\_MSVC\_LANG) \&\& \_MSVC\_LANG >= 201402L)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00129}00129 \textcolor{preprocessor}{\#    define CATCH\_CPP14\_OR\_GREATER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00130}00130 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00131}00131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00132}00132 \textcolor{preprocessor}{\#  if (\_\_cplusplus >= 201703L) || (defined(\_MSVC\_LANG) \&\& \_MSVC\_LANG >= 201703L)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00133}00133 \textcolor{preprocessor}{\#    define CATCH\_CPP17\_OR\_GREATER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00134}00134 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00136}00136 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00138}00138 \textcolor{comment}{// Only GCC compiler should be used in this block, so other compilers trying to}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00139}00139 \textcolor{comment}{// mask themselves as GCC should be ignored.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00140}00140 \textcolor{preprocessor}{\#if defined(\_\_GNUC\_\_) \&\& !defined(\_\_clang\_\_) \&\& !defined(\_\_ICC) \&\& !defined(\_\_CUDACC\_\_) \&\& !defined(\_\_LCC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00141}00141 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \_Pragma( "{}GCC diagnostic push"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00142}00142 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION  \_Pragma( "{}GCC diagnostic pop"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00144}00144 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_IGNORE\_BUT\_WARN(...) (void)\_\_builtin\_constant\_p(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00145}00145 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00146}00146 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00148}00148 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00150}00150 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \_Pragma( "{}clang diagnostic push"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00151}00151 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION  \_Pragma( "{}clang diagnostic pop"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00153}00153 \textcolor{comment}{// As of this writing, IBM XL's implementation of \_\_builtin\_constant\_p has a bug}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00154}00154 \textcolor{comment}{// which results in calls to destructors being emitted for each temporary,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00155}00155 \textcolor{comment}{// without a matching initialization. In practice, this can result in something}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00156}00156 \textcolor{comment}{// like `std::string::\string~string` being called on an uninitialized value.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00157}00157 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00158}00158 \textcolor{comment}{// For example, this code will likely segfault under IBM XL:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00159}00159 \textcolor{comment}{// ```}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00160}00160 \textcolor{comment}{// REQUIRE(std::string("{}12"{}) + "{}34"{} == "{}1234"{})}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00161}00161 \textcolor{comment}{// ```}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00162}00162 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00163}00163 \textcolor{comment}{// Therefore, `CATCH\_INTERNAL\_IGNORE\_BUT\_WARN` is not implemented.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00164}00164 \textcolor{preprocessor}{\#  if !defined(\_\_ibmxl\_\_) \&\& !defined(\_\_CUDACC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00165}00165 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_IGNORE\_BUT\_WARN(...) (void)\_\_builtin\_constant\_p(\_\_VA\_ARGS\_\_) }\textcolor{comment}{/* NOLINT(cppcoreguidelines-\/pro-\/type-\/vararg, hicpp-\/vararg) */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00166}00166 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00168}00168 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00169}00169 \textcolor{preprocessor}{         \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wexit-\/time-\/destructors\(\backslash\)"{}"{}} ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00170}00170          \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wglobal-\/constructors\(\backslash\)"{}"{})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00172}00172 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_SUPPRESS\_PARENTHESES\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00173}00173 \textcolor{preprocessor}{         \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wparentheses\(\backslash\)"{}"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00174}00174 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00175}00175 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00176}00176 \textcolor{preprocessor}{         \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wunused-\/variable\(\backslash\)"{}"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00178}00178 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00179}00179 \textcolor{preprocessor}{         \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wgnu-\/zero-\/variadic-\/macro-\/arguments\(\backslash\)"{}"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00181}00181 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00182}00182 \textcolor{preprocessor}{         \_Pragma( "{}clang diagnostic ignored \(\backslash\)"{}-\/Wunused-\/template\(\backslash\)"{}"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00184}00184 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00185}00185 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00187}00187 \textcolor{comment}{// Assume that non-\/Windows platforms support posix signals by default}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00188}00188 \textcolor{preprocessor}{\#if !defined(CATCH\_PLATFORM\_WINDOWS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00189}\mbox{\hyperlink{catch2_2catch_8hpp_a3c8d4b828da004fc3ad2511c1900ec19}{00189}} \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00190}00190 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00193}00193 \textcolor{comment}{// We know some environments not to support full POSIX signals}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00194}00194 \textcolor{preprocessor}{\#if defined(\_\_CYGWIN\_\_) || defined(\_\_QNX\_\_) || defined(\_\_EMSCRIPTEN\_\_) || defined(\_\_DJGPP\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00195}00195 \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_NO\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00196}00196 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00197}00197 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00198}00198 \textcolor{preprocessor}{\#ifdef \_\_OS400\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00199}00199 \textcolor{preprocessor}{\#       define CATCH\_INTERNAL\_CONFIG\_NO\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00200}00200 \textcolor{preprocessor}{\#       define CATCH\_CONFIG\_COLOUR\_NONE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00201}00201 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00202}00202 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00204}00204 \textcolor{comment}{// Android somehow still does not support std::to\_string}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00205}00205 \textcolor{preprocessor}{\#if defined(\_\_ANDROID\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00206}00206 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_NO\_CPP11\_TO\_STRING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00207}00207 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_ANDROID\_LOGWRITE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00208}00208 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00211}00211 \textcolor{comment}{// Not all Windows environments support SEH properly}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00212}00212 \textcolor{preprocessor}{\#if defined(\_\_MINGW32\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00213}00213 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_NO\_WINDOWS\_SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00214}00214 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00215}00215 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00217}00217 \textcolor{comment}{// PS4}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00218}00218 \textcolor{preprocessor}{\#if defined(\_\_ORBIS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00219}00219 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_NO\_NEW\_CAPTURE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00220}00220 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00221}00221 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00223}00223 \textcolor{comment}{// Cygwin}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00224}00224 \textcolor{preprocessor}{\#ifdef \_\_CYGWIN\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00226}00226 \textcolor{comment}{// Required for some versions of Cygwin to declare gettimeofday}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00227}00227 \textcolor{comment}{// see: http://stackoverflow.com/questions/36901803/gettimeofday-\/not-\/declared-\/in-\/this-\/scope-\/cygwin}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00228}00228 \textcolor{preprocessor}{\#   define \_BSD\_SOURCE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00229}00229 \textcolor{comment}{// some versions of cygwin (most) do not support std::to\_string. Use the libstd check.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00230}00230 \textcolor{comment}{// https://gcc.gnu.org/onlinedocs/gcc-\/4.8.2/libstdc++/api/a01053\_source.html line 2812-\/2813}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00231}00231 \textcolor{preprocessor}{\# if !((\_\_cplusplus >= 201103L) \&\& defined(\_GLIBCXX\_USE\_C99) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00232}00232 \textcolor{preprocessor}{           \&\& !defined(\_GLIBCXX\_HAVE\_BROKEN\_VSWPRINTF))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00234}00234 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_NO\_CPP11\_TO\_STRING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00235}00235 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00236}00236 \textcolor{preprocessor}{\# endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00237}00237 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_CYGWIN\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00238}00238 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00240}00240 \textcolor{comment}{// Visual C++}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00241}00241 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00242}00242 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00243}00243 \textcolor{comment}{// Universal Windows platform does not support SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00244}00244 \textcolor{comment}{// Or console colours (or console at all...)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00245}00245 \textcolor{preprocessor}{\#  if defined(WINAPI\_FAMILY) \&\& (WINAPI\_FAMILY == WINAPI\_FAMILY\_APP)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00246}00246 \textcolor{preprocessor}{\#    define CATCH\_CONFIG\_COLOUR\_NONE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00247}00247 \textcolor{preprocessor}{\#  else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00248}00248 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_WINDOWS\_SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00249}00249 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00250}00250 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00251}00251 \textcolor{preprocessor}{\#  if !defined(\_\_clang\_\_) }\textcolor{comment}{// Handle Clang masquerading for msvc}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00253}00253 \textcolor{comment}{// MSVC traditional preprocessor needs some workaround for \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00254}00254 \textcolor{comment}{// \_MSVC\_TRADITIONAL == 0 means new conformant preprocessor}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00255}00255 \textcolor{comment}{// \_MSVC\_TRADITIONAL == 1 means old traditional non-\/conformant preprocessor}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00256}00256 \textcolor{preprocessor}{\#    if !defined(\_MSVC\_TRADITIONAL) || (defined(\_MSVC\_TRADITIONAL) \&\& \_MSVC\_TRADITIONAL)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00257}00257 \textcolor{preprocessor}{\#      define CATCH\_INTERNAL\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00258}00258 \textcolor{preprocessor}{\#    endif }\textcolor{comment}{// MSVC\_TRADITIONAL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00259}00259 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00260}00260 \textcolor{comment}{// Only do this if we're not using clang on Windows, which uses `diagnostic push` \& `diagnostic pop`}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00261}00261 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \_\_pragma( warning(push) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00262}00262 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION  \_\_pragma( warning(pop) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00263}00263 \textcolor{preprocessor}{\#  endif }\textcolor{comment}{// \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00265}00265 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00266}00266 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00267}00267 \textcolor{preprocessor}{\#if defined(\_REENTRANT) || defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00268}00268 \textcolor{comment}{// Enable async processing, as -\/pthread is specified or no additional linking is required}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00269}00269 \textcolor{preprocessor}{\# define CATCH\_INTERNAL\_CONFIG\_USE\_ASYNC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00270}00270 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00271}00271 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00273}00273 \textcolor{comment}{// Check if we are compiled with -\/fno-\/exceptions or equivalent}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00274}00274 \textcolor{preprocessor}{\#if defined(\_\_EXCEPTIONS) || defined(\_\_cpp\_exceptions) || defined(\_CPPUNWIND)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00275}00275 \textcolor{preprocessor}{\#  define CATCH\_INTERNAL\_CONFIG\_EXCEPTIONS\_ENABLED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00276}00276 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00277}00277 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00279}00279 \textcolor{comment}{// DJGPP}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00280}00280 \textcolor{preprocessor}{\#ifdef \_\_DJGPP\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00281}00281 \textcolor{preprocessor}{\#  define CATCH\_INTERNAL\_CONFIG\_NO\_WCHAR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00282}00282 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_DJGPP\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00283}00283 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00285}00285 \textcolor{comment}{// Embarcadero C++Build}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00286}00286 \textcolor{preprocessor}{\#if defined(\_\_BORLANDC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00287}00287 \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_POLYFILL\_ISNAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00288}00288 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00289}00289 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00292}00292 \textcolor{comment}{// Use of \_\_COUNTER\_\_ is suppressed during code analysis in}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00293}00293 \textcolor{comment}{// CLion/AppCode 2017.2.x and former, because \_\_COUNTER\_\_ is not properly}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00294}00294 \textcolor{comment}{// handled by it.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00295}00295 \textcolor{comment}{// Otherwise all supported compilers support COUNTER macro,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00296}00296 \textcolor{comment}{// but user still might want to turn it off}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00297}00297 \textcolor{preprocessor}{\#if ( !defined(\_\_JETBRAINS\_IDE\_\_) || \_\_JETBRAINS\_IDE\_\_ >= 20170300L )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00298}\mbox{\hyperlink{catch2_2catch_8hpp_a18b42ab8d6d1efdf417f97e5474dc450}{00298}} \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_COUNTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00299}00299 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00300}00300 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00302}00302 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00303}00303 \textcolor{comment}{// RTX is a special version of Windows that is real time.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00304}00304 \textcolor{comment}{// This means that it is detected as Windows, but does not provide}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00305}00305 \textcolor{comment}{// the same set of capabilities as real Windows does.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00306}00306 \textcolor{preprocessor}{\#if defined(UNDER\_RTSS) || defined(RTX64\_BUILD)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00307}00307 \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_NO\_WINDOWS\_SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00308}00308 \textcolor{preprocessor}{    \#define CATCH\_INTERNAL\_CONFIG\_NO\_ASYNC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00309}00309 \textcolor{preprocessor}{    \#define CATCH\_CONFIG\_COLOUR\_NONE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00310}00310 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00311}00311 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00312}00312 \textcolor{preprocessor}{\#if !defined(\_GLIBCXX\_USE\_C99\_MATH\_TR1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00313}\mbox{\hyperlink{catch2_2catch_8hpp_a48ae5ed6ff9168c5ad3d5058527fbfae}{00313}} \textcolor{preprocessor}{\#define CATCH\_INTERNAL\_CONFIG\_GLOBAL\_NEXTAFTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00314}00314 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00316}00316 \textcolor{comment}{// Various stdlib support checks that require \_\_has\_include}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00317}00317 \textcolor{preprocessor}{\#if defined(\_\_has\_include)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00318}00318   \textcolor{comment}{// Check if string\_view is available and usable}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00319}00319 \textcolor{preprocessor}{  \#if \_\_has\_include(<string\_view>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00320}00320 \textcolor{preprocessor}{  \#    define CATCH\_INTERNAL\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00321}00321 \textcolor{preprocessor}{  \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00323}00323   \textcolor{comment}{// Check if optional is available and usable}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00324}00324 \textcolor{preprocessor}{  \#  if \_\_has\_include(<optional>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00325}00325 \textcolor{preprocessor}{  \#    define CATCH\_INTERNAL\_CONFIG\_CPP17\_OPTIONAL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00326}00326 \textcolor{preprocessor}{  \#  endif }\textcolor{comment}{// \_\_has\_include(<optional>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00327}00327 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00328}00328   \textcolor{comment}{// Check if byte is available and usable}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00329}00329 \textcolor{preprocessor}{  \#  if \_\_has\_include(<cstddef>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00330}00330 \textcolor{preprocessor}{  \#    include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00331}00331 \textcolor{preprocessor}{  \#    if defined(\_\_cpp\_lib\_byte) \&\& (\_\_cpp\_lib\_byte > 0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00332}00332 \textcolor{preprocessor}{  \#      define CATCH\_INTERNAL\_CONFIG\_CPP17\_BYTE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00333}00333 \textcolor{preprocessor}{  \#    endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00334}00334 \textcolor{preprocessor}{  \#  endif }\textcolor{comment}{// \_\_has\_include(<cstddef>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00335}00335 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00336}00336   \textcolor{comment}{// Check if variant is available and usable}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00337}00337 \textcolor{preprocessor}{  \#  if \_\_has\_include(<variant>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00338}00338 \textcolor{preprocessor}{  \#    if defined(\_\_clang\_\_) \&\& (\_\_clang\_major\_\_ < 8)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00339}00339          \textcolor{comment}{// work around clang bug with libstdc++ https://bugs.llvm.org/show\_bug.cgi?id=31852}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00340}00340          \textcolor{comment}{// fix should be in clang 8, workaround in libstdc++ 8.2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00341}00341 \textcolor{preprocessor}{  \#      include <ciso646>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00342}00342 \textcolor{preprocessor}{  \#      if defined(\_\_GLIBCXX\_\_) \&\& defined(\_GLIBCXX\_RELEASE) \&\& (\_GLIBCXX\_RELEASE < 9)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00343}00343 \textcolor{preprocessor}{  \#        define CATCH\_CONFIG\_NO\_CPP17\_VARIANT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00344}00344 \textcolor{preprocessor}{  \#      else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00345}00345 \textcolor{preprocessor}{  \#        define CATCH\_INTERNAL\_CONFIG\_CPP17\_VARIANT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00346}00346 \textcolor{preprocessor}{  \#      endif }\textcolor{comment}{// defined(\_\_GLIBCXX\_\_) \&\& defined(\_GLIBCXX\_RELEASE) \&\& (\_GLIBCXX\_RELEASE < 9)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00347}00347 \textcolor{preprocessor}{  \#    else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00348}00348 \textcolor{preprocessor}{  \#      define CATCH\_INTERNAL\_CONFIG\_CPP17\_VARIANT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00349}00349 \textcolor{preprocessor}{  \#    endif }\textcolor{comment}{// defined(\_\_clang\_\_) \&\& (\_\_clang\_major\_\_ < 8)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00350}00350 \textcolor{preprocessor}{  \#  endif }\textcolor{comment}{// \_\_has\_include(<variant>) \&\& defined(CATCH\_CPP17\_OR\_GREATER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00351}00351 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// defined(\_\_has\_include)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00353}00353 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_COUNTER) \&\& !defined(CATCH\_CONFIG\_NO\_COUNTER) \&\& !defined(CATCH\_CONFIG\_COUNTER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00354}\mbox{\hyperlink{catch2_2catch_8hpp_aa70cff16ca513ff81704961bed5e01b0}{00354}} \textcolor{preprocessor}{\#   define CATCH\_CONFIG\_COUNTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00355}00355 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00356}00356 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_WINDOWS\_SEH) \&\& !defined(CATCH\_CONFIG\_NO\_WINDOWS\_SEH) \&\& !defined(CATCH\_CONFIG\_WINDOWS\_SEH) \&\& !defined(CATCH\_INTERNAL\_CONFIG\_NO\_WINDOWS\_SEH)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00357}00357 \textcolor{preprocessor}{\#   define CATCH\_CONFIG\_WINDOWS\_SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00358}00358 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00359}00359 \textcolor{comment}{// This is set by default, because we assume that unix compilers are posix-\/signal-\/compatible by default.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00360}00360 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_POSIX\_SIGNALS) \&\& !defined(CATCH\_INTERNAL\_CONFIG\_NO\_POSIX\_SIGNALS) \&\& !defined(CATCH\_CONFIG\_NO\_POSIX\_SIGNALS) \&\& !defined(CATCH\_CONFIG\_POSIX\_SIGNALS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00361}\mbox{\hyperlink{catch2_2catch_8hpp_ac5eee4f90512985d2043f971c6f08707}{00361}} \textcolor{preprocessor}{\#   define CATCH\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00362}00362 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00363}00363 \textcolor{comment}{// This is set by default, because we assume that compilers with no wchar\_t support are just rare exceptions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00364}00364 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_CONFIG\_NO\_WCHAR) \&\& !defined(CATCH\_CONFIG\_NO\_WCHAR) \&\& !defined(CATCH\_CONFIG\_WCHAR)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00365}\mbox{\hyperlink{catch2_2catch_8hpp_ac6675f48ca221c1b9124ea02fe88324b}{00365}} \textcolor{preprocessor}{\#   define CATCH\_CONFIG\_WCHAR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00366}00366 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00367}00367 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00368}00368 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_CONFIG\_NO\_CPP11\_TO\_STRING) \&\& !defined(CATCH\_CONFIG\_NO\_CPP11\_TO\_STRING) \&\& !defined(CATCH\_CONFIG\_CPP11\_TO\_STRING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00369}\mbox{\hyperlink{catch2_2catch_8hpp_a5e8669f07e3db1e9e1604508689bc28a}{00369}} \textcolor{preprocessor}{\#    define CATCH\_CONFIG\_CPP11\_TO\_STRING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00370}00370 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00371}00371 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00372}00372 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_OPTIONAL) \&\& !defined(CATCH\_CONFIG\_NO\_CPP17\_OPTIONAL) \&\& !defined(CATCH\_CONFIG\_CPP17\_OPTIONAL)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00373}00373 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_CPP17\_OPTIONAL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00374}00374 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00375}00375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00376}00376 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_STRING\_VIEW) \&\& !defined(CATCH\_CONFIG\_NO\_CPP17\_STRING\_VIEW) \&\& !defined(CATCH\_CONFIG\_CPP17\_STRING\_VIEW)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00377}00377 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00378}00378 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00379}00379 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00380}00380 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_VARIANT) \&\& !defined(CATCH\_CONFIG\_NO\_CPP17\_VARIANT) \&\& !defined(CATCH\_CONFIG\_CPP17\_VARIANT)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00381}00381 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_CPP17\_VARIANT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00382}00382 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00383}00383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00384}00384 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_BYTE) \&\& !defined(CATCH\_CONFIG\_NO\_CPP17\_BYTE) \&\& !defined(CATCH\_CONFIG\_CPP17\_BYTE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00385}00385 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_CPP17\_BYTE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00386}00386 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00387}00387 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00388}00388 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_EXPERIMENTAL\_REDIRECT)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00389}00389 \textcolor{preprocessor}{\#  define CATCH\_INTERNAL\_CONFIG\_NEW\_CAPTURE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00390}00390 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00391}00391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00392}00392 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_NEW\_CAPTURE) \&\& !defined(CATCH\_INTERNAL\_CONFIG\_NO\_NEW\_CAPTURE) \&\& !defined(CATCH\_CONFIG\_NO\_NEW\_CAPTURE) \&\& !defined(CATCH\_CONFIG\_NEW\_CAPTURE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00393}00393 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_NEW\_CAPTURE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00394}00394 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00395}00395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00396}00396 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_CONFIG\_EXCEPTIONS\_ENABLED) \&\& !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00397}\mbox{\hyperlink{catch2_2catch_8hpp_a893712b2ba6e7400136a0a023b12e9db}{00397}} \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_DISABLE\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00398}00398 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00399}00399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00400}00400 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_POLYFILL\_ISNAN) \&\& !defined(CATCH\_CONFIG\_NO\_POLYFILL\_ISNAN) \&\& !defined(CATCH\_CONFIG\_POLYFILL\_ISNAN)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00401}00401 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_POLYFILL\_ISNAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00402}00402 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00403}00403 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00404}00404 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_USE\_ASYNC)  \&\& !defined(CATCH\_INTERNAL\_CONFIG\_NO\_ASYNC) \&\& !defined(CATCH\_CONFIG\_NO\_USE\_ASYNC) \&\& !defined(CATCH\_CONFIG\_USE\_ASYNC)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00405}00405 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_USE\_ASYNC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00406}00406 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00407}00407 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00408}00408 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_ANDROID\_LOGWRITE) \&\& !defined(CATCH\_CONFIG\_NO\_ANDROID\_LOGWRITE) \&\& !defined(CATCH\_CONFIG\_ANDROID\_LOGWRITE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00409}00409 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ANDROID\_LOGWRITE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00410}00410 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00411}00411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00412}00412 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_GLOBAL\_NEXTAFTER) \&\& !defined(CATCH\_CONFIG\_NO\_GLOBAL\_NEXTAFTER) \&\& !defined(CATCH\_CONFIG\_GLOBAL\_NEXTAFTER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00413}\mbox{\hyperlink{catch2_2catch_8hpp_a3271a306c531fd4a2c6c6180e4903fd9}{00413}} \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_GLOBAL\_NEXTAFTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00414}00414 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00415}00415 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00416}00416 \textcolor{comment}{// Even if we do not think the compiler has that warning, we still have}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00417}00417 \textcolor{comment}{// to provide a macro that can be used by the code.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00418}00418 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00419}\mbox{\hyperlink{catch2_2catch_8hpp_a1500dca9a578a0bd2f85771cfa3fd35d}{00419}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00420}00420 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00421}00421 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00422}\mbox{\hyperlink{catch2_2catch_8hpp_ad9594e9891b032f0dd0279960dc861a5}{00422}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00423}00423 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00424}00424 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_SUPPRESS\_PARENTHESES\_WARNINGS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00425}\mbox{\hyperlink{catch2_2catch_8hpp_a89c1608a68775aca1bb7c265f7ba923a}{00425}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_SUPPRESS\_PARENTHESES\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00426}00426 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00427}00427 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00428}\mbox{\hyperlink{catch2_2catch_8hpp_aa0200c23b35ba2bd8ebed69a8f3c1c66}{00428}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00429}00429 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00430}00430 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_WARNINGS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00431}\mbox{\hyperlink{catch2_2catch_8hpp_a828d81ce73c46941460c92ecbd7b8fc2}{00431}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00432}00432 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00433}00433 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00434}\mbox{\hyperlink{catch2_2catch_8hpp_af9c2d6807f17109481b536551c0c10bf}{00434}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00435}00435 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00436}00436 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00437}00437 \textcolor{comment}{// The goal of this macro is to avoid evaluation of the arguments, but}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00438}00438 \textcolor{comment}{// still have the compiler warn on problems inside...}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00439}00439 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_IGNORE\_BUT\_WARN)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00440}\mbox{\hyperlink{catch2_2catch_8hpp_aa7ffc39ff2307d382e766a867d49b67a}{00440}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_IGNORE\_BUT\_WARN(...)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00441}00441 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00442}00442 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00443}00443 \textcolor{preprocessor}{\#if defined(\_\_APPLE\_\_) \&\& defined(\_\_apple\_build\_version\_\_) \&\& (\_\_clang\_major\_\_ < 10)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00444}00444 \textcolor{preprocessor}{\#   undef CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00445}00445 \textcolor{preprocessor}{\#elif defined(\_\_clang\_\_) \&\& (\_\_clang\_major\_\_ < 5)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00446}00446 \textcolor{preprocessor}{\#   undef CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00447}00447 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00448}00448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00449}00449 \textcolor{preprocessor}{\#if !defined(CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00450}\mbox{\hyperlink{catch2_2catch_8hpp_a10a275cf93b99d6f1246d9d9df09d1d8}{00450}} \textcolor{preprocessor}{\#   define CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00451}00451 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00452}00452 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00453}00453 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00454}\mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{00454}} \textcolor{preprocessor}{\#define CATCH\_TRY if ((true))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00455}\mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{00455}} \textcolor{preprocessor}{\#define CATCH\_CATCH\_ALL if ((false))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00456}\mbox{\hyperlink{catch2_2catch_8hpp_a3caecf3cbc55848423d744df50d84d5b}{00456}} \textcolor{preprocessor}{\#define CATCH\_CATCH\_ANON(type) if ((false))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00457}00457 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00458}00458 \textcolor{preprocessor}{\#define CATCH\_TRY try}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00459}00459 \textcolor{preprocessor}{\#define CATCH\_CATCH\_ALL catch (...)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00460}00460 \textcolor{preprocessor}{\#define CATCH\_CATCH\_ANON(type) catch (type)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00461}00461 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00462}00462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00463}00463 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR) \&\& !defined(CATCH\_CONFIG\_NO\_TRADITIONAL\_MSVC\_PREPROCESSOR) \&\& !defined(CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00464}00464 \textcolor{preprocessor}{\#define CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00465}00465 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00466}00466 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00467}00467 \textcolor{comment}{// end catch\_compiler\_capabilities.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00468}\mbox{\hyperlink{catch2_2catch_8hpp_a7c21e89d8b7727757ce9ca2b848f1cda}{00468}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_UNIQUE\_NAME\_LINE2( name, line ) name\#\#line}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00469}\mbox{\hyperlink{catch2_2catch_8hpp_a1b51a086ea21a750bd306ac0ed4d2a95}{00469}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_UNIQUE\_NAME\_LINE( name, line ) INTERNAL\_CATCH\_UNIQUE\_NAME\_LINE2( name, line )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00470}00470 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_COUNTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00471}\mbox{\hyperlink{catch2_2catch_8hpp_afe320ceec108fc8c160f9ac3938f1bc8}{00471}} \textcolor{preprocessor}{\#  define INTERNAL\_CATCH\_UNIQUE\_NAME( name ) INTERNAL\_CATCH\_UNIQUE\_NAME\_LINE( name, \_\_COUNTER\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00472}00472 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00473}00473 \textcolor{preprocessor}{\#  define INTERNAL\_CATCH\_UNIQUE\_NAME( name ) INTERNAL\_CATCH\_UNIQUE\_NAME\_LINE( name, \_\_LINE\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00474}00474 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00475}00475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00476}00476 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00477}00477 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00478}00478 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00479}00479 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00480}00480 \textcolor{comment}{// We need a dummy global operator<< so we can bring it into Catch namespace later}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00481}00481 \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch__global__namespace__dummy}{Catch\_global\_namespace\_dummy}} \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00482}\mbox{\hyperlink{catch2_2catch_8hpp_aae0cdd5d2f0ac242b9ab18b0f66ba26e}{00482}} std::ostream\& \mbox{\hyperlink{catch_2catch_8hpp_aae0cdd5d2f0ac242b9ab18b0f66ba26e}{operator<<}}(std::ostream\&, \mbox{\hyperlink{struct_catch__global__namespace__dummy}{Catch\_global\_namespace\_dummy}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00483}00483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00484}00484 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00485}00485 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00486}\mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{00486}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_case_sensitive}{CaseSensitive}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{Choice}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00487}00487         \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{Yes}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00488}00488         \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aaeabe15dea2b2d0ea0847e88a9b2a99eb}{No}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00489}00489     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00490}00490 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00491}00491     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00492}00492         \mbox{\hyperlink{class_catch_1_1_non_copyable_a4b492dd5753f9952350fb64dc6cb9fe2}{NonCopyable}}( \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \textcolor{keyword}{const}\& )              = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00493}00493         \mbox{\hyperlink{class_catch_1_1_non_copyable_a4b492dd5753f9952350fb64dc6cb9fe2}{NonCopyable}}( \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \&\& )                  = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00494}00494         \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}}\& operator = ( \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00495}00495         \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}}\& operator = ( \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \&\& )     = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00496}00496 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00497}00497     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00498}\mbox{\hyperlink{class_catch_1_1_non_copyable_a4b492dd5753f9952350fb64dc6cb9fe2}{00498}}         \mbox{\hyperlink{class_catch_1_1_non_copyable_a4b492dd5753f9952350fb64dc6cb9fe2}{NonCopyable}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00499}\mbox{\hyperlink{class_catch_1_1_non_copyable_a81254677280fef337eb4a676e91e3293}{00499}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{class_catch_1_1_non_copyable_a81254677280fef337eb4a676e91e3293}{\string~NonCopyable}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00500}00500     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00501}00501 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00502}00502     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00503}00503 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00504}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a2d80932bb4129b1606d1924a5c44be2f}{00504}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info_a2d80932bb4129b1606d1924a5c44be2f}{SourceLineInfo}}() = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00505}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a48510b82a39a042ab370ed143dd30c10}{00505}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info_a48510b82a39a042ab370ed143dd30c10}{SourceLineInfo}}( \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \_file, std::size\_t \_line ) noexcept}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00506}00506         :   \mbox{\hyperlink{struct_catch_1_1_source_line_info_a24185f1fe039d08a5e0399297c4f1f7e}{file}}( \_file ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00507}00507             \mbox{\hyperlink{struct_catch_1_1_source_line_info_a841e5d696c7b9cde24e45e61dd979c77}{line}}( \_line )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00508}00508         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00509}00509 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00510}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a7c44c9986c33a9cf842b791374332d41}{00510}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info_a7c44c9986c33a9cf842b791374332d41}{SourceLineInfo}}( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& other )            = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00511}\mbox{\hyperlink{struct_catch_1_1_source_line_info_ab9891ccc4e7fa7c1ab747cd013341482}{00511}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}}\& \mbox{\hyperlink{struct_catch_1_1_source_line_info_ab9891ccc4e7fa7c1ab747cd013341482}{operator = }}( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& )     = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00512}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a5ea6179645457b8ec961aec9ca4c5588}{00512}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info_a5ea6179645457b8ec961aec9ca4c5588}{SourceLineInfo}}( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}}\&\& )              noexcept = default;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00513}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a1efc6194265495c99bb455c69fb1c904}{00513}}         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}}\& operator = ( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}}\&\& ) noexcept = default;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00514}00514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00515}\mbox{\hyperlink{struct_catch_1_1_source_line_info_a10a5b5b7dff82971879c2eb8d83f9b3b}{00515}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_source_line_info_a10a5b5b7dff82971879c2eb8d83f9b3b}{empty}}() const noexcept \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_source_line_info_a24185f1fe039d08a5e0399297c4f1f7e}{file}}[0] == \textcolor{charliteral}{'\(\backslash\)0'}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00516}\mbox{\hyperlink{struct_catch_1_1_source_line_info_af07e4fdeddf8409b91e4f842f6264cf8}{00516}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_source_line_info_af07e4fdeddf8409b91e4f842f6264cf8}{operator == }}( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00517}\mbox{\hyperlink{struct_catch_1_1_source_line_info_af77415416919d2d6030b4be085b92f7a}{00517}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_source_line_info_af77415416919d2d6030b4be085b92f7a}{operator < }}( \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00518}00518 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00519}00519         \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \mbox{\hyperlink{struct_catch_1_1_source_line_info_a24185f1fe039d08a5e0399297c4f1f7e}{file}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00520}00520         std::size\_t \mbox{\hyperlink{struct_catch_1_1_source_line_info_a841e5d696c7b9cde24e45e61dd979c77}{line}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00521}00521     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00522}00522 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00523}00523     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00524}00524 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00525}00525     \textcolor{comment}{// Bring in operator<< from global namespace into Catch namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00526}00526     \textcolor{comment}{// This is necessary because the overload of operator<< above makes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00527}00527     \textcolor{comment}{// lookup stop at namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00528}00528     using ::operator<<;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00529}00529 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00530}00530     \textcolor{comment}{// Use this in variadic streaming macros to allow}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00531}00531     \textcolor{comment}{//    >> +StreamEndStop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00532}00532     \textcolor{comment}{// as well as}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00533}00533     \textcolor{comment}{//    >> stuff +StreamEndStop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00534}00534     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_stream_end_stop}{StreamEndStop}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00535}\mbox{\hyperlink{struct_catch_1_1_stream_end_stop_a4a518f0342a381074821d5bda2651401}{00535}}         std::string \mbox{\hyperlink{struct_catch_1_1_stream_end_stop_a4a518f0342a381074821d5bda2651401}{operator+}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00536}00536     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00537}00537     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00538}00538     T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{operator + }}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, \mbox{\hyperlink{struct_catch_1_1_stream_end_stop}{StreamEndStop}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00539}00539         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00540}00540     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00541}00541 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00542}00542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00543}\mbox{\hyperlink{catch2_2catch_8hpp_abc0b2405454c51748a31e0393d9ad5d1}{00543}} \textcolor{preprocessor}{\#define CATCH\_INTERNAL\_LINEINFO \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00544}00544 \textcolor{preprocessor}{    ::Catch::SourceLineInfo( \_\_FILE\_\_, static\_cast<std::size\_t>( \_\_LINE\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00545}00545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00546}00546 \textcolor{comment}{// end catch\_common.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00547}00547 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00548}00548 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00549}00549     \textcolor{keyword}{struct }RegistrarForTagAliases \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00550}\mbox{\hyperlink{struct_catch_1_1_registrar_for_tag_aliases_ae4e45830e4763bcd65d55d8db9167b69}{00550}}         \mbox{\hyperlink{struct_catch_1_1_registrar_for_tag_aliases_ae4e45830e4763bcd65d55d8db9167b69}{RegistrarForTagAliases}}( \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \mbox{\hyperlink{structtag}{tag}}, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00551}00551     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00552}00552 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00553}00553 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00554}00554 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00555}\mbox{\hyperlink{catch2_2catch_8hpp_af7f9d4a12274e1ccf4b1021e5d35e0c5}{00555}} \textcolor{preprocessor}{\#define CATCH\_REGISTER\_TAG\_ALIAS( alias, spec ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00556}00556 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00557}00557 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00558}00558 \textcolor{preprocessor}{    namespace\{ Catch::RegistrarForTagAliases INTERNAL\_CATCH\_UNIQUE\_NAME( AutoRegisterTagAlias )( alias, spec, CATCH\_INTERNAL\_LINEINFO ); \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00559}00559 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00560}00560 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00561}00561 \textcolor{comment}{// end catch\_tag\_alias\_autoregistrar.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00562}00562 \textcolor{comment}{// start catch\_test\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00563}00563 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00564}00564 \textcolor{comment}{// start catch\_interfaces\_testcase.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00565}00565 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00566}00566 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00567}00567 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00568}00568 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00569}00569 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00570}00570     \textcolor{keyword}{class }TestSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00571}00571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00572}00572     \textcolor{keyword}{struct }ITestInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00573}\mbox{\hyperlink{struct_catch_1_1_i_test_invoker_a6fcd5c5b67d6d5ade6491ff33411ca7f}{00573}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_test_invoker_a6fcd5c5b67d6d5ade6491ff33411ca7f}{invoke}} () \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00574}\mbox{\hyperlink{struct_catch_1_1_i_test_invoker_a2c89f3eece5b1b677243766e409bd831}{00574}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_test_invoker_a2c89f3eece5b1b677243766e409bd831}{\string~ITestInvoker}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00575}00575     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00576}00576 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00577}00577     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00578}00578     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00579}00579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00580}00580     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_test_case_registry}{ITestCaseRegistry}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00581}\mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_ae14798f05ac8e2b18cff532849a4da81}{00581}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_ae14798f05ac8e2b18cff532849a4da81}{\string~ITestCaseRegistry}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00582}\mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_a5dad8c412aacc94a112b0fa07c7776fc}{00582}}         \textcolor{keyword}{virtual} std::vector<TestCase> \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_a5dad8c412aacc94a112b0fa07c7776fc}{getAllTests}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00583}\mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_a0aae66ca6ec1b6265a799134d6935127}{00583}}         \textcolor{keyword}{virtual} std::vector<TestCase> \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_a0aae66ca6ec1b6265a799134d6935127}{getAllTestsSorted}}( \mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00584}00584     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00585}00585 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00586}00586     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_af3e820574c7a0b38d71328c5bd54b0e0}{isThrowSafe}}( \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \textcolor{keyword}{const}\& testCase, \mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00587}00587     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_aadef80fbc6bc84589777a462770cef49}{matchTest}}( \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \textcolor{keyword}{const}\& testCase, TestSpec \textcolor{keyword}{const}\& testSpec, \mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00588}00588     std::vector<TestCase> \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( std::vector<TestCase> \textcolor{keyword}{const}\& testCases, TestSpec \textcolor{keyword}{const}\& testSpec, \mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00589}00589     std::vector<TestCase> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( \mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00590}00590 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00591}00591 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00592}00592 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00593}00593 \textcolor{comment}{// end catch\_interfaces\_testcase.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00594}00594 \textcolor{comment}{// start catch\_stringref.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00595}00595 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00596}00596 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00597}00597 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00598}00598 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00599}00599 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00600}00600 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00601}00601 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00602}00602 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00606}00606     \textcolor{keyword}{class }StringRef \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00607}00607     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00608}\mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{00608}}         \textcolor{keyword}{using }\mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} = std::size\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00609}\mbox{\hyperlink{class_catch_1_1_string_ref_ac3aa3d16f48b5429a480f823c504f93c}{00609}}         \textcolor{keyword}{using }\mbox{\hyperlink{class_catch_1_1_string_ref_ac3aa3d16f48b5429a480f823c504f93c}{const\_iterator}} = \textcolor{keyword}{const} \textcolor{keywordtype}{char}*;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00610}00610 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00611}00611     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00612}00612         \textcolor{keyword}{static} \textcolor{keyword}{constexpr} \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \textcolor{keyword}{const} s\_empty = \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00613}00613 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00614}00614         \textcolor{keywordtype}{char} \textcolor{keyword}{const}* m\_start = s\_empty;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00615}00615         \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} m\_size = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00616}00616 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00617}00617     \textcolor{keyword}{public}: \textcolor{comment}{// construction}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00618}\mbox{\hyperlink{class_catch_1_1_string_ref_a611907867225695d38198c058758c92d}{00618}}         \textcolor{keyword}{constexpr} \mbox{\hyperlink{class_catch_1_1_string_ref_a611907867225695d38198c058758c92d}{StringRef}}() noexcept = default;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00619}00619 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00620}\mbox{\hyperlink{class_catch_1_1_string_ref_aea45f5089c53adac362bff6bd7c40943}{00620}}         \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}}( \textcolor{keywordtype}{char} const* rawChars ) noexcept;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00621}00621 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00622}\mbox{\hyperlink{class_catch_1_1_string_ref_a36df94807491c0ad84184fb8e44e1a7c}{00622}}         constexpr \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}}( \textcolor{keywordtype}{char} const* rawChars, \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} \mbox{\hyperlink{class_catch_1_1_string_ref_acb22719801de2b64361b4c283080d4e5}{size}} ) noexcept}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00623}00623         :   m\_start( rawChars ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00624}00624             m\_size( \mbox{\hyperlink{class_catch_1_1_string_ref_acb22719801de2b64361b4c283080d4e5}{size}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00625}00625         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00626}00626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00627}\mbox{\hyperlink{class_catch_1_1_string_ref_a7fe41469048f906e9a847798cd335f23}{00627}}         \mbox{\hyperlink{class_catch_1_1_string_ref_a7fe41469048f906e9a847798cd335f23}{StringRef}}( std::string \textcolor{keyword}{const}\& stdString ) noexcept}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00628}00628         :   m\_start( stdString.c\_str() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00629}00629             m\_size( stdString.size() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00630}00630         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00631}00631 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00632}\mbox{\hyperlink{class_catch_1_1_string_ref_ad9fde21785affacc32d7da7a70d74e93}{00632}}         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} std::string()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00633}00633             \textcolor{keywordflow}{return} std::string(m\_start, m\_size);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00634}00634         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00635}00635 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00636}00636     \textcolor{keyword}{public}: \textcolor{comment}{// operators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00637}\mbox{\hyperlink{class_catch_1_1_string_ref_aabb30149ab961187e4b3ff3394bf6e73}{00637}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_aabb30149ab961187e4b3ff3394bf6e73}{operator == }}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} -\/> bool;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00638}\mbox{\hyperlink{class_catch_1_1_string_ref_aaa6c8bf61c4628034c19763d1c8ad215}{00638}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_aaa6c8bf61c4628034c19763d1c8ad215}{operator != }}(\mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& other) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00639}00639             \textcolor{keywordflow}{return} !(*\textcolor{keyword}{this} == other);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00640}00640         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00641}00641 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00642}\mbox{\hyperlink{class_catch_1_1_string_ref_a4ba2e01eec1f0f56c257d213c796ab3b}{00642}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_a4ba2e01eec1f0f56c257d213c796ab3b}{operator[] }}( \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} index ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} -\/> \textcolor{keywordtype}{char} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00643}00643             assert(index < m\_size);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00644}00644             \textcolor{keywordflow}{return} m\_start[index];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00645}00645         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00646}00646 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00647}00647     \textcolor{keyword}{public}: \textcolor{comment}{// named queries}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00648}\mbox{\hyperlink{class_catch_1_1_string_ref_a0b4841c28cbb14ba07296964a0187023}{00648}}         \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_a0b4841c28cbb14ba07296964a0187023}{empty}}() const noexcept -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00649}00649             \textcolor{keywordflow}{return} m\_size == 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00650}00650         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00651}\mbox{\hyperlink{class_catch_1_1_string_ref_acb22719801de2b64361b4c283080d4e5}{00651}}         \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_acb22719801de2b64361b4c283080d4e5}{size}}() const noexcept -\/> \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00652}00652             \textcolor{keywordflow}{return} m\_size;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00653}00653         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00654}00654 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00655}00655         \textcolor{comment}{// Returns the current start pointer. If the StringRef is not}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00656}00656         \textcolor{comment}{// null-\/terminated, throws std::domain\_exception}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00657}\mbox{\hyperlink{class_catch_1_1_string_ref_a1669cb2765e820ca258159676cbd82a5}{00657}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_a1669cb2765e820ca258159676cbd82a5}{c\_str}}() const -\/> \textcolor{keywordtype}{char} const*;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00658}00658 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00659}00659     public: \textcolor{comment}{// substrings and searches}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00660}00660         \textcolor{comment}{// Returns a substring of [start, start + length).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00661}00661         \textcolor{comment}{// If start + length > size(), then the substring is [start, size()).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00662}00662         \textcolor{comment}{// If start > size(), then the substring is empty.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00663}\mbox{\hyperlink{class_catch_1_1_string_ref_a594bc3e10ffad77df92f7d1a4c99d7ff}{00663}}         auto \mbox{\hyperlink{class_catch_1_1_string_ref_a594bc3e10ffad77df92f7d1a4c99d7ff}{substr}}( \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} start, \mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{size\_type}} \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}} ) const noexcept -\/> \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00664}00664 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00665}00665         \textcolor{comment}{// Returns the current start pointer. May not be null-\/terminated.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00666}\mbox{\hyperlink{class_catch_1_1_string_ref_ab0f85edde9f97153fc758fac3bb14507}{00666}}         auto \mbox{\hyperlink{class_catch_1_1_string_ref_ab0f85edde9f97153fc758fac3bb14507}{data}}() const noexcept -\/> \textcolor{keywordtype}{char} const*;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00667}00667 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00668}\mbox{\hyperlink{class_catch_1_1_string_ref_a646e58f5f4e1f5e82cfba06d9fd5d016}{00668}}         constexpr auto \mbox{\hyperlink{class_catch_1_1_string_ref_a646e58f5f4e1f5e82cfba06d9fd5d016}{isNullTerminated}}() const noexcept -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00669}00669             \textcolor{keywordflow}{return} m\_start[m\_size] == \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00670}00670         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00671}00671 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00672}00672     \textcolor{keyword}{public}: \textcolor{comment}{// iterators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00673}\mbox{\hyperlink{class_catch_1_1_string_ref_ab0adc7198d60867c2842b998ae456795}{00673}}         \textcolor{keyword}{constexpr} \mbox{\hyperlink{class_catch_1_1_string_ref_ac3aa3d16f48b5429a480f823c504f93c}{const\_iterator}} \mbox{\hyperlink{class_catch_1_1_string_ref_ab0adc7198d60867c2842b998ae456795}{begin}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_start; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00674}\mbox{\hyperlink{class_catch_1_1_string_ref_a3ce9afc711b559d6cc59666898fc0828}{00674}}         \textcolor{keyword}{constexpr} \mbox{\hyperlink{class_catch_1_1_string_ref_ac3aa3d16f48b5429a480f823c504f93c}{const\_iterator}} \mbox{\hyperlink{class_catch_1_1_string_ref_a3ce9afc711b559d6cc59666898fc0828}{end}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_start + m\_size; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00675}00675     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00676}00676 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00677}00677     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator += }}( std::string\& lhs, StringRef \textcolor{keyword}{const}\& sr ) -\/> std::string\&;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00678}00678     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, StringRef \textcolor{keyword}{const}\& sr ) -\/> std::ostream\&;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00679}00679 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00680}00680     \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_sr( \textcolor{keywordtype}{char} \textcolor{keyword}{const}* rawChars, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} ) \textcolor{keyword}{noexcept} -\/> StringRef \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00681}00681         \textcolor{keywordflow}{return} StringRef( rawChars, \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00682}00682     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00683}00683 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00684}00684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00685}\mbox{\hyperlink{catch2_2catch_8hpp_ad678c2afffe520362e3bb7d51f0e8f8d}{00685}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_catch\_sr( \textcolor{keywordtype}{char} \textcolor{keyword}{const}* rawChars, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} ) \textcolor{keyword}{noexcept} -\/> \mbox{\hyperlink{class_catch_1_1_string_ref}{Catch::StringRef}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00686}00686     \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_string_ref}{Catch::StringRef}}( rawChars, \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00687}00687 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00688}00688 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00689}00689 \textcolor{comment}{// end catch\_stringref.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00690}00690 \textcolor{comment}{// start catch\_preprocessor.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00691}00691 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00692}00692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00693}\mbox{\hyperlink{catch2_2catch_8hpp_aedfa83a9b9671b2f3ce5d64207eab45f}{00693}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL0(...) \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00694}\mbox{\hyperlink{catch2_2catch_8hpp_ad1cc1127b3a8ed84d336fd86c25571a9}{00694}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL1(...) CATCH\_RECURSION\_LEVEL0(CATCH\_RECURSION\_LEVEL0(CATCH\_RECURSION\_LEVEL0(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00695}\mbox{\hyperlink{catch2_2catch_8hpp_a2a7ccfd6ceda0c723d1c81ed0a8ea7aa}{00695}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL2(...) CATCH\_RECURSION\_LEVEL1(CATCH\_RECURSION\_LEVEL1(CATCH\_RECURSION\_LEVEL1(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00696}\mbox{\hyperlink{catch2_2catch_8hpp_ac5ead3b79069ca9b5de9cad80029bc71}{00696}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL3(...) CATCH\_RECURSION\_LEVEL2(CATCH\_RECURSION\_LEVEL2(CATCH\_RECURSION\_LEVEL2(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00697}\mbox{\hyperlink{catch2_2catch_8hpp_a7738534acacfd54ef5b9f89cf07fa16d}{00697}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL4(...) CATCH\_RECURSION\_LEVEL3(CATCH\_RECURSION\_LEVEL3(CATCH\_RECURSION\_LEVEL3(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00698}\mbox{\hyperlink{catch2_2catch_8hpp_a761d2ca7a5b0393ae7a6edf086a9c3da}{00698}} \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL5(...) CATCH\_RECURSION\_LEVEL4(CATCH\_RECURSION\_LEVEL4(CATCH\_RECURSION\_LEVEL4(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00699}00699 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00700}00700 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00701}00701 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_EXPAND\_VARGS(...) \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00702}00702 \textcolor{comment}{// MSVC needs more evaluations}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00703}00703 \textcolor{preprocessor}{\#define CATCH\_RECURSION\_LEVEL6(...) CATCH\_RECURSION\_LEVEL5(CATCH\_RECURSION\_LEVEL5(CATCH\_RECURSION\_LEVEL5(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00704}00704 \textcolor{preprocessor}{\#define CATCH\_RECURSE(...)  CATCH\_RECURSION\_LEVEL6(CATCH\_RECURSION\_LEVEL6(\_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00705}00705 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00706}\mbox{\hyperlink{catch2_2catch_8hpp_ae3ce5d9c8e50eba755111a19a62432e5}{00706}} \textcolor{preprocessor}{\#define CATCH\_RECURSE(...)  CATCH\_RECURSION\_LEVEL5(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00707}00707 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00708}00708 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00709}\mbox{\hyperlink{catch2_2catch_8hpp_aebb9e7be881ac3dcd10db9fb45830649}{00709}} \textcolor{preprocessor}{\#define CATCH\_REC\_END(...)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00710}\mbox{\hyperlink{catch2_2catch_8hpp_ab469d9696504fd14e36fd1d8b6e47b7f}{00710}} \textcolor{preprocessor}{\#define CATCH\_REC\_OUT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00711}00711 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00712}\mbox{\hyperlink{catch2_2catch_8hpp_a8ac224562b8423a7c07e368216d0f0e9}{00712}} \textcolor{preprocessor}{\#define CATCH\_EMPTY()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00713}\mbox{\hyperlink{catch2_2catch_8hpp_a83c1ab15f3d715f25fe504c114cf6144}{00713}} \textcolor{preprocessor}{\#define CATCH\_DEFER(id) id CATCH\_EMPTY()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00714}00714 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00715}\mbox{\hyperlink{catch2_2catch_8hpp_aa335d39d6fdb7e20c94edaa4de21d1a3}{00715}} \textcolor{preprocessor}{\#define CATCH\_REC\_GET\_END2() 0, CATCH\_REC\_END}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00716}\mbox{\hyperlink{catch2_2catch_8hpp_a476d332d716d4691f874195acea4931b}{00716}} \textcolor{preprocessor}{\#define CATCH\_REC\_GET\_END1(...) CATCH\_REC\_GET\_END2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00717}\mbox{\hyperlink{catch2_2catch_8hpp_a536dd24bc8e72ec8eb14c3676f20c778}{00717}} \textcolor{preprocessor}{\#define CATCH\_REC\_GET\_END(...) CATCH\_REC\_GET\_END1}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00718}\mbox{\hyperlink{catch2_2catch_8hpp_ae25889c34b72704724f5797b6103c463}{00718}} \textcolor{preprocessor}{\#define CATCH\_REC\_NEXT0(test, next, ...) next CATCH\_REC\_OUT}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00719}\mbox{\hyperlink{catch2_2catch_8hpp_a0ddf3b75cc3780765a2cb551d6536721}{00719}} \textcolor{preprocessor}{\#define CATCH\_REC\_NEXT1(test, next) CATCH\_DEFER ( CATCH\_REC\_NEXT0 ) ( test, next, 0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00720}\mbox{\hyperlink{catch2_2catch_8hpp_abaddf93f755cea9e20aee254aa566adf}{00720}} \textcolor{preprocessor}{\#define CATCH\_REC\_NEXT(test, next)  CATCH\_REC\_NEXT1(CATCH\_REC\_GET\_END test, next)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00721}00721 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00722}\mbox{\hyperlink{catch2_2catch_8hpp_a3e07fd613c41bd44cb4bd14fccc3c388}{00722}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST0(f, x, peek, ...) , f(x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST1) ) ( f, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00723}\mbox{\hyperlink{catch2_2catch_8hpp_abedd1ae08e12478704233e9bf29e0fe9}{00723}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST1(f, x, peek, ...) , f(x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST0) ) ( f, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00724}\mbox{\hyperlink{catch2_2catch_8hpp_abe3c205d4ba8406d45439abb91366ce9}{00724}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST2(f, x, peek, ...)   f(x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST1) ) ( f, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00725}00725 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00726}\mbox{\hyperlink{catch2_2catch_8hpp_aea894953d28c5ed83e59ce6c74d0a665}{00726}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST0\_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST1\_UD) ) ( f, userdata, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00727}\mbox{\hyperlink{catch2_2catch_8hpp_abbcff29ced4d413bc121f7b761558c16}{00727}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST1\_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST0\_UD) ) ( f, userdata, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00728}\mbox{\hyperlink{catch2_2catch_8hpp_a0c2dd548d178fbc2202ecd74ce4be91b}{00728}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST2\_UD(f, userdata, x, peek, ...)   f(userdata, x) CATCH\_DEFER ( CATCH\_REC\_NEXT(peek, CATCH\_REC\_LIST1\_UD) ) ( f, userdata, peek, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00729}00729 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00730}00730 \textcolor{comment}{// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00731}00731 \textcolor{comment}{// and passes userdata as the first parameter to each invocation,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00732}00732 \textcolor{comment}{// e.g. CATCH\_REC\_LIST\_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00733}\mbox{\hyperlink{catch2_2catch_8hpp_a8e404d42a6d0402698c1d4d16e831d28}{00733}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST\_UD(f, userdata, ...) CATCH\_RECURSE(CATCH\_REC\_LIST2\_UD(f, userdata, \_\_VA\_ARGS\_\_, ()()(), ()()(), ()()(), 0))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00734}00734 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00735}\mbox{\hyperlink{catch2_2catch_8hpp_a060f5fa141c247b4d07dfe9bf3c54079}{00735}} \textcolor{preprocessor}{\#define CATCH\_REC\_LIST(f, ...) CATCH\_RECURSE(CATCH\_REC\_LIST2(f, \_\_VA\_ARGS\_\_, ()()(), ()()(), ()()(), 0))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00736}00736 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00737}\mbox{\hyperlink{catch2_2catch_8hpp_afec78f8054a97a6ecb38ff098f275efb}{00737}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_EXPAND1(param) INTERNAL\_CATCH\_EXPAND2(param)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00738}\mbox{\hyperlink{catch2_2catch_8hpp_a163ac3d9bea0921d546f125ef5d58a2d}{00738}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_EXPAND2(...) INTERNAL\_CATCH\_NO\#\# \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00739}\mbox{\hyperlink{catch2_2catch_8hpp_a053610cf96d1be50463e9cb08e818ed1}{00739}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEF(...) INTERNAL\_CATCH\_DEF \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00740}\mbox{\hyperlink{catch2_2catch_8hpp_a6868a4eb7481605e628a3aaf0c1fbb01}{00740}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NOINTERNAL\_CATCH\_DEF}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00741}\mbox{\hyperlink{catch2_2catch_8hpp_a13733e49e752d29b735e94d9e72c7d6b}{00741}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE(...) INTERNAL\_CATCH\_STRINGIZE2(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00742}00742 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00743}\mbox{\hyperlink{catch2_2catch_8hpp_a6fedc6934bac0e22dbbd13aabf81ad3f}{00743}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE2(...) \#\_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00744}\mbox{\hyperlink{catch2_2catch_8hpp_aa66562537dd49bc33e53f9aa01acedaf}{00744}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS(param) INTERNAL\_CATCH\_STRINGIZE(INTERNAL\_CATCH\_REMOVE\_PARENS(param))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00745}00745 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00746}00746 \textcolor{comment}{// MSVC is adding extra space and needs another indirection to expand INTERNAL\_CATCH\_NOINTERNAL\_CATCH\_DEF}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00747}00747 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE2(...) INTERNAL\_CATCH\_STRINGIZE3(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00748}00748 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE3(...) \#\_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00749}00749 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS(param) (INTERNAL\_CATCH\_STRINGIZE(INTERNAL\_CATCH\_REMOVE\_PARENS(param)) + 1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00750}00750 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00751}00751 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00752}\mbox{\hyperlink{catch2_2catch_8hpp_a5d544d56630e5c6e293d49a825127646}{00752}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_NAMESPACE2(...) ns\_\#\#\_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00753}\mbox{\hyperlink{catch2_2catch_8hpp_a6b5bf9be0310bb60ec9738cbf4ea53f4}{00753}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_NAMESPACE(name) INTERNAL\_CATCH\_MAKE\_NAMESPACE2(name)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00754}00754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00755}\mbox{\hyperlink{catch2_2catch_8hpp_adf5ede19321b27ce635d01688551e782}{00755}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS(...) INTERNAL\_CATCH\_EXPAND1(INTERNAL\_CATCH\_DEF \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00756}00756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00757}00757 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00758}\mbox{\hyperlink{catch2_2catch_8hpp_ab0c28a0a25d0d138ca5f4049a1094227}{00758}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_TYPE\_LIST2(...) decltype(get\_wrapper<INTERNAL\_CATCH\_REMOVE\_PARENS\_GEN(\_\_VA\_ARGS\_\_)>())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00759}\mbox{\hyperlink{catch2_2catch_8hpp_a74ceed46879d878afcd12648df097264}{00759}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_TYPE\_LIST(...) INTERNAL\_CATCH\_MAKE\_TYPE\_LIST2(INTERNAL\_CATCH\_REMOVE\_PARENS(\_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00760}00760 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00761}00761 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_TYPE\_LIST2(...) INTERNAL\_CATCH\_EXPAND\_VARGS(decltype(get\_wrapper<INTERNAL\_CATCH\_REMOVE\_PARENS\_GEN(\_\_VA\_ARGS\_\_)>()))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00762}00762 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_TYPE\_LIST(...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_MAKE\_TYPE\_LIST2(INTERNAL\_CATCH\_REMOVE\_PARENS(\_\_VA\_ARGS\_\_)))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00763}00763 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00764}00764 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00765}\mbox{\hyperlink{catch2_2catch_8hpp_a3125bdc64f326e6c65f60e3d0b917e0e}{00765}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MAKE\_TYPE\_LISTS\_FROM\_TYPES(...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00766}00766 \textcolor{preprocessor}{    CATCH\_REC\_LIST(INTERNAL\_CATCH\_MAKE\_TYPE\_LIST,\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00767}00767 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00768}\mbox{\hyperlink{catch2_2catch_8hpp_aaff4fdf9d9447a3e896ff3c940aa63bf}{00768}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_1\_ARG(\_0) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00769}\mbox{\hyperlink{catch2_2catch_8hpp_ad922f8cb04e51fa4d1fc7136c2170ec7}{00769}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_2\_ARG(\_0, \_1) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_1\_ARG(\_1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00770}\mbox{\hyperlink{catch2_2catch_8hpp_a3e122b37a4a905554e927a298e96ba4e}{00770}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_3\_ARG(\_0, \_1, \_2) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_2\_ARG(\_1, \_2)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00771}\mbox{\hyperlink{catch2_2catch_8hpp_ad13badf823db63f70503f46977ff7664}{00771}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_4\_ARG(\_0, \_1, \_2, \_3) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_3\_ARG(\_1, \_2, \_3)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00772}\mbox{\hyperlink{catch2_2catch_8hpp_a886c6ae574320d8aae6415985b19426c}{00772}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_5\_ARG(\_0, \_1, \_2, \_3, \_4) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_4\_ARG(\_1, \_2, \_3, \_4)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00773}\mbox{\hyperlink{catch2_2catch_8hpp_a261dd3f6db0cd3199456d5be891bec22}{00773}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_6\_ARG(\_0, \_1, \_2, \_3, \_4, \_5) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_5\_ARG(\_1, \_2, \_3, \_4, \_5)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00774}\mbox{\hyperlink{catch2_2catch_8hpp_a4ff89b8d8438fa571ccebd4611679cb0}{00774}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_7\_ARG(\_0, \_1, \_2, \_3, \_4, \_5, \_6) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_6\_ARG(\_1, \_2, \_3, \_4, \_5, \_6)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00775}\mbox{\hyperlink{catch2_2catch_8hpp_a2bc5383346d063d8aa13169a86101f8a}{00775}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_8\_ARG(\_0, \_1, \_2, \_3, \_4, \_5, \_6, \_7) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_7\_ARG(\_1, \_2, \_3, \_4, \_5, \_6, \_7)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00776}\mbox{\hyperlink{catch2_2catch_8hpp_aac325e60ff7ae083ea5378a57ad0853e}{00776}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_9\_ARG(\_0, \_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_8\_ARG(\_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00777}\mbox{\hyperlink{catch2_2catch_8hpp_ad456e4d0700058feab367df4dfdb034a}{00777}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_10\_ARG(\_0, \_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8, \_9) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_9\_ARG(\_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8, \_9)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00778}\mbox{\hyperlink{catch2_2catch_8hpp_adda79d552d6615a64b064426fe5d8347}{00778}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_11\_ARG(\_0, \_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8, \_9, \_10) INTERNAL\_CATCH\_REMOVE\_PARENS(\_0), INTERNAL\_CATCH\_REMOVE\_PARENS\_10\_ARG(\_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8, \_9, \_10)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00779}00779 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00780}\mbox{\hyperlink{catch2_2catch_8hpp_a053a90e2d222ba1c12095556aa8db44a}{00780}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_VA\_NARGS\_IMPL(\_0, \_1, \_2, \_3, \_4, \_5, \_6, \_7, \_8, \_9, \_10, N, ...) N}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00781}00781 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00782}\mbox{\hyperlink{catch2_2catch_8hpp_aea71652955762dc6db3912ec66740b7a}{00782}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TYPE\_GEN\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00783}00783 \textcolor{preprocessor}{    template<typename...> struct TypeList \{\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00784}00784 \textcolor{preprocessor}{    template<typename...Ts>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00785}00785 \textcolor{preprocessor}{    constexpr auto get\_wrapper() noexcept -\/> TypeList<Ts...> \{ return \{\}; \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00786}00786 \textcolor{preprocessor}{    template<template<typename...> class...> struct TemplateTypeList\{\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00787}00787 \textcolor{preprocessor}{    template<template<typename...> class...Cs>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00788}00788 \textcolor{preprocessor}{    constexpr auto get\_wrapper() noexcept -\/> TemplateTypeList<Cs...> \{ return \{\}; \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00789}00789 \textcolor{preprocessor}{    template<typename...>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00790}00790 \textcolor{preprocessor}{    struct append;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00791}00791 \textcolor{preprocessor}{    template<typename...>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00792}00792 \textcolor{preprocessor}{    struct rewrap;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00793}00793 \textcolor{preprocessor}{    template<template<typename...> class, typename...>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00794}00794 \textcolor{preprocessor}{    struct create;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00795}00795 \textcolor{preprocessor}{    template<template<typename...> class, typename>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00796}00796 \textcolor{preprocessor}{    struct convert;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00797}00797 \textcolor{preprocessor}{    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00798}00798 \textcolor{preprocessor}{    template<typename T> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00799}00799 \textcolor{preprocessor}{    struct append<T> \{ using type = T; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00800}00800 \textcolor{preprocessor}{    template< template<typename...> class L1, typename...E1, template<typename...> class L2, typename...E2, typename...Rest>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00801}00801 \textcolor{preprocessor}{    struct append<L1<E1...>, L2<E2...>, Rest...> \{ using type = typename append<L1<E1...,E2...>, Rest...>::type; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00802}00802 \textcolor{preprocessor}{    template< template<typename...> class L1, typename...E1, typename...Rest>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00803}00803 \textcolor{preprocessor}{    struct append<L1<E1...>, TypeList<mpl\_::na>, Rest...> \{ using type = L1<E1...>; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00804}00804 \textcolor{preprocessor}{    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00805}00805 \textcolor{preprocessor}{    template< template<typename...> class Container, template<typename...> class List, typename...elems>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00806}00806 \textcolor{preprocessor}{    struct rewrap<TemplateTypeList<Container>, List<elems...>> \{ using type = TypeList<Container<elems...>>; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00807}00807 \textcolor{preprocessor}{    template< template<typename...> class Container, template<typename...> class List, class...Elems, typename...Elements>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00808}00808 \textcolor{preprocessor}{    struct rewrap<TemplateTypeList<Container>, List<Elems...>, Elements...> \{ using type = typename append<TypeList<Container<Elems...>>, typename rewrap<TemplateTypeList<Container>, Elements...>::type>::type; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00809}00809 \textcolor{preprocessor}{    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00810}00810 \textcolor{preprocessor}{    template<template <typename...> class Final, template< typename...> class...Containers, typename...Types>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00811}00811 \textcolor{preprocessor}{    struct create<Final, TemplateTypeList<Containers...>, TypeList<Types...>> \{ using type = typename append<Final<>, typename rewrap<TemplateTypeList<Containers>, Types...>::type...>::type; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00812}00812 \textcolor{preprocessor}{    template<template <typename...> class Final, template <typename...> class List, typename...Ts>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00813}00813 \textcolor{preprocessor}{    struct convert<Final, List<Ts...>> \{ using type = typename append<Final<>,TypeList<Ts>...>::type; \};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00814}00814 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00815}\mbox{\hyperlink{catch2_2catch_8hpp_ac74ba3aed32e3cfe16e9aaa7e5229fef}{00815}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_1(signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00816}00816 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> struct Nttp\{\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00817}00817 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00818}00818 \textcolor{preprocessor}{    constexpr auto get\_wrapper() noexcept -\/> Nttp<\_\_VA\_ARGS\_\_> \{ return \{\}; \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00819}00819 \textcolor{preprocessor}{    template<template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class...> struct NttpTemplateTypeList\{\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00820}00820 \textcolor{preprocessor}{    template<template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class...Cs>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00821}00821 \textcolor{preprocessor}{    constexpr auto get\_wrapper() noexcept -\/> NttpTemplateTypeList<Cs...> \{ return \{\}; \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00822}00822 \textcolor{preprocessor}{    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00823}00823 \textcolor{preprocessor}{    template< template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class Container, template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class List, INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00824}00824 \textcolor{preprocessor}{    struct rewrap<NttpTemplateTypeList<Container>, List<\_\_VA\_ARGS\_\_>> \{ using type = TypeList<Container<\_\_VA\_ARGS\_\_>>; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00825}00825 \textcolor{preprocessor}{    template< template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class Container, template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class List, INTERNAL\_CATCH\_REMOVE\_PARENS(signature), typename...Elements>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00826}00826 \textcolor{preprocessor}{    struct rewrap<NttpTemplateTypeList<Container>, List<\_\_VA\_ARGS\_\_>, Elements...> \{ using type = typename append<TypeList<Container<\_\_VA\_ARGS\_\_>>, typename rewrap<NttpTemplateTypeList<Container>, Elements...>::type>::type; \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00827}00827 \textcolor{preprocessor}{    template<template <typename...> class Final, template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> class...Containers, typename...Types>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00828}00828 \textcolor{preprocessor}{    struct create<Final, NttpTemplateTypeList<Containers...>, TypeList<Types...>> \{ using type = typename append<Final<>, typename rewrap<NttpTemplateTypeList<Containers>, Types...>::type...>::type; \};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00829}00829 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00830}\mbox{\hyperlink{catch2_2catch_8hpp_a4f7507c7b536901dbb97dea59df86078}{00830}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST0(TestName)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00831}\mbox{\hyperlink{catch2_2catch_8hpp_ae9b9c3b580df7d3aa3df12e31d07b228}{00831}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST1(TestName, signature)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00832}00832 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00833}00833 \textcolor{preprocessor}{    static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00834}\mbox{\hyperlink{catch2_2catch_8hpp_aa74256b09ddc9f24b9d5e99e6b8cd7f5}{00834}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X(TestName, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00835}00835 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00836}00836 \textcolor{preprocessor}{    static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00837}00837 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00838}\mbox{\hyperlink{catch2_2catch_8hpp_a0687445db41b1402c3b63677f5fb855f}{00838}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST0(TestName)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00839}\mbox{\hyperlink{catch2_2catch_8hpp_a9d259f87ac04160887d8dc58f223298b}{00839}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST1(TestName, signature)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00840}00840 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00841}00841 \textcolor{preprocessor}{    static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00842}\mbox{\hyperlink{catch2_2catch_8hpp_a700005dc1f5d4d1c9b4977dfbcc39553}{00842}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X(TestName, signature,...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00843}00843 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00844}00844 \textcolor{preprocessor}{    static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00845}00845 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00846}\mbox{\hyperlink{catch2_2catch_8hpp_a46d03d475b2d70c812ae2fbb7c62e2e1}{00846}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REGISTER0(TestFunc, signature)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00847}00847 \textcolor{preprocessor}{    template<typename Type>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00848}00848 \textcolor{preprocessor}{    void reg\_test(TypeList<Type>, Catch::NameAndTags nameAndTags)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00849}00849 \textcolor{preprocessor}{    \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00850}00850 \textcolor{preprocessor}{        Catch::AutoReg( Catch::makeTestInvoker(\&TestFunc<Type>), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), nameAndTags);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00851}00851 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00852}00852 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00853}\mbox{\hyperlink{catch2_2catch_8hpp_a3f4b5b59a0890d8f4b5ccde153f52b91}{00853}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REGISTER(TestFunc, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00854}00854 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00855}00855 \textcolor{preprocessor}{    void reg\_test(Nttp<\_\_VA\_ARGS\_\_>, Catch::NameAndTags nameAndTags)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00856}00856 \textcolor{preprocessor}{    \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00857}00857 \textcolor{preprocessor}{        Catch::AutoReg( Catch::makeTestInvoker(\&TestFunc<\_\_VA\_ARGS\_\_>), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), nameAndTags);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00858}00858 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00859}00859 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00860}\mbox{\hyperlink{catch2_2catch_8hpp_a3ec09fcab86a0d09313b48d4e8275594}{00860}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD0(TestName, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00861}00861 \textcolor{preprocessor}{    template<typename Type>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00862}00862 \textcolor{preprocessor}{    void reg\_test(TypeList<Type>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00863}00863 \textcolor{preprocessor}{    \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00864}00864 \textcolor{preprocessor}{        Catch::AutoReg( Catch::makeTestInvoker(\&TestName<Type>::test), CATCH\_INTERNAL\_LINEINFO, className, nameAndTags);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00865}00865 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00866}00866 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00867}\mbox{\hyperlink{catch2_2catch_8hpp_a50f42674ac12901035ad2357a85e160f}{00867}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD(TestName, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00868}00868 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00869}00869 \textcolor{preprocessor}{    void reg\_test(Nttp<\_\_VA\_ARGS\_\_>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00870}00870 \textcolor{preprocessor}{    \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00871}00871 \textcolor{preprocessor}{        Catch::AutoReg( Catch::makeTestInvoker(\&TestName<\_\_VA\_ARGS\_\_>::test), CATCH\_INTERNAL\_LINEINFO, className, nameAndTags);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00872}00872 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00873}00873 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00874}\mbox{\hyperlink{catch2_2catch_8hpp_a2101df7508291ca3898e52c34c40599b}{00874}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD0(TestName, ClassName)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00875}\mbox{\hyperlink{catch2_2catch_8hpp_a4378072081595eeb217cfa656cbcbfad}{00875}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD1(TestName, ClassName, signature)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00876}00876 \textcolor{preprocessor}{    template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00877}00877 \textcolor{preprocessor}{    struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName)<TestType> \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00878}00878 \textcolor{preprocessor}{        void test();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00879}00879 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00880}00880 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00881}\mbox{\hyperlink{catch2_2catch_8hpp_a3a61470086671485bf5f3d8139a8b379}{00881}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X(TestName, ClassName, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00882}00882 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00883}00883 \textcolor{preprocessor}{    struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName)<\_\_VA\_ARGS\_\_> \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00884}00884 \textcolor{preprocessor}{        void test();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00885}00885 \textcolor{preprocessor}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00886}00886 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00887}\mbox{\hyperlink{catch2_2catch_8hpp_aabc65a509a1d132b7a5fe6c4320c82fc}{00887}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD0(TestName)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00888}\mbox{\hyperlink{catch2_2catch_8hpp_ae0cccd56ac66f873543f3dede228dbe9}{00888}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD1(TestName, signature)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00889}00889 \textcolor{preprocessor}{    template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00890}00890 \textcolor{preprocessor}{    void INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)::TestName<TestType>::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00891}\mbox{\hyperlink{catch2_2catch_8hpp_a9c7bb282d50599e94b665ad7f9ffed31}{00891}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X(TestName, signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00892}00892 \textcolor{preprocessor}{    template<INTERNAL\_CATCH\_REMOVE\_PARENS(signature)> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00893}00893 \textcolor{preprocessor}{    void INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)::TestName<\_\_VA\_ARGS\_\_>::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00894}00894 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00895}00895 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00896}\mbox{\hyperlink{catch2_2catch_8hpp_a6e4eddcee92aabb74a7fa182650307c3}{00896}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00897}\mbox{\hyperlink{catch2_2catch_8hpp_a22d82768693e811fd08acca9c0e44726}{00897}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_GEN(...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL(\_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_1(\_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1(\_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1(\_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1(\_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1(\_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1( \_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1( \_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1( \_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_1( \_\_VA\_ARGS\_\_),INTERNAL\_CATCH\_NTTP\_1( \_\_VA\_ARGS\_\_), INTERNAL\_CATCH\_NTTP\_0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00898}\mbox{\hyperlink{catch2_2catch_8hpp_a871da5e60f2ec529a6df64220e9c0790}{00898}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD(TestName, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD1, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD0)(TestName, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00899}\mbox{\hyperlink{catch2_2catch_8hpp_a3df212478ac0ede0c8a0fe9b8e186c8f}{00899}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD(TestName, ClassName, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD1, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD0)(TestName, ClassName, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00900}\mbox{\hyperlink{catch2_2catch_8hpp_a960369279996cfc00d2e1a913afd98e8}{00900}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REG\_METHOD\_GEN(TestName, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD0, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD0)(TestName, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00901}\mbox{\hyperlink{catch2_2catch_8hpp_a534515713c8464b85add867ec4166ecf}{00901}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REG\_GEN(TestFunc, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER0, INTERNAL\_CATCH\_NTTP\_REGISTER0)(TestFunc, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00902}\mbox{\hyperlink{catch2_2catch_8hpp_a812cb39b5411a0f1a3ab2e91cb537f4c}{00902}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST(TestName, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST1, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST0)(TestName, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00903}\mbox{\hyperlink{catch2_2catch_8hpp_a00d8d21b6aeab72bf51f5b7d14afd201}{00903}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST(TestName, ...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST1, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST0)(TestName, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00904}\mbox{\hyperlink{catch2_2catch_8hpp_ab71d7147401833586d6ef7c7db0cb463}{00904}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_GEN(...) INTERNAL\_CATCH\_VA\_NARGS\_IMPL(\_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_REMOVE\_PARENS\_11\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_10\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_9\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_8\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_7\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_6\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_5\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_4\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_3\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_2\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_1\_ARG)(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00905}00905 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00906}00906 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_0(signature)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00907}00907 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_GEN(...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL(\_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_1,INTERNAL\_CATCH\_NTTP\_1, INTERNAL\_CATCH\_NTTP\_0)( \_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00908}00908 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD(TestName, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD1, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD0)(TestName, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00909}00909 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD(TestName, ClassName, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD1, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD0)(TestName, ClassName, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00910}00910 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REG\_METHOD\_GEN(TestName, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD0, INTERNAL\_CATCH\_NTTP\_REGISTER\_METHOD0)(TestName, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00911}00911 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NTTP\_REG\_GEN(TestFunc, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER, INTERNAL\_CATCH\_NTTP\_REGISTER0, INTERNAL\_CATCH\_NTTP\_REGISTER0)(TestFunc, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00912}00912 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DEFINE\_SIG\_TEST(TestName, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DEFINE\_SIG\_TEST1, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST0)(TestName, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00913}00913 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DECLARE\_SIG\_TEST(TestName, ...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL( "{}dummy"{}}, \_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X,INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_X, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST1, INTERNAL\_CATCH\_DECLARE\_SIG\_TEST0)(TestName, \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00914}00914 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REMOVE\_PARENS\_GEN(...) INTERNAL\_CATCH\_EXPAND\_VARGS(INTERNAL\_CATCH\_VA\_NARGS\_IMPL(\_\_VA\_ARGS\_\_, INTERNAL\_CATCH\_REMOVE\_PARENS\_11\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_10\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_9\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_8\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_7\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_6\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_5\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_4\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_3\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_2\_ARG,INTERNAL\_CATCH\_REMOVE\_PARENS\_1\_ARG)(\_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00915}00915 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00916}00916 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00917}00917 \textcolor{comment}{// end catch\_preprocessor.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00918}00918 \textcolor{comment}{// start catch\_meta.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00919}00919 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00920}00920 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00921}00921 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00922}00922 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00923}00923 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00924}00924     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00925}00925     \textcolor{keyword}{struct }always\_false : std::false\_type \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00926}00926 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00927}00927     \textcolor{keyword}{template} <\textcolor{keyword}{typename}> \textcolor{keyword}{struct }true\_given : std::true\_type \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00928}00928     \textcolor{keyword}{struct }is\_callable\_tester \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00929}00929         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00930}\mbox{\hyperlink{struct_catch_1_1is__callable__tester_a9f770cae4c16dfa96d4c0299a6b4f980}{00930}}         \mbox{\hyperlink{struct_catch_1_1true__given}{true\_given<decltype(std::declval<Fun>}}()(std::declval<Args>()...))> \textcolor{keyword}{static} \mbox{\hyperlink{struct_catch_1_1is__callable__tester_a9f770cae4c16dfa96d4c0299a6b4f980}{test}}(\textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00931}00931         \textcolor{keyword}{template} <\textcolor{keyword}{typename}...>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00932}\mbox{\hyperlink{struct_catch_1_1is__callable__tester_adce16c4accb860bf46f6491dd70cfd63}{00932}}         std::false\_type \textcolor{keyword}{static} \mbox{\hyperlink{struct_catch_1_1is__callable__tester_adce16c4accb860bf46f6491dd70cfd63}{test}}(...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00933}00933     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00934}00934 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00935}00935     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00936}00936     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1is__callable}{is\_callable}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00937}00937 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00938}00938     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00939}00939     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1is__callable}{is\_callable}}<Fun(Args...)> : decltype(is\_callable\_tester::test<Fun, Args...>(0)) \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00940}00940 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00941}00941 \textcolor{preprocessor}{\#if defined(\_\_cpp\_lib\_is\_invocable) \&\& \_\_cpp\_lib\_is\_invocable >= 201703}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00942}00942     \textcolor{comment}{// std::result\_of is deprecated in C++17 and removed in C++20. Hence, it is}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00943}00943     \textcolor{comment}{// replaced with std::invoke\_result here.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00944}00944     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Func, \textcolor{keyword}{typename}... U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00945}00945     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_a3051165b0eea6023939f0f8a71ecf03f}{FunctionReturnType}} = \mbox{\hyperlink{namespacekblib_a4be602e9cbe25a984f76f7a66a0466cd}{std::remove\_reference\_t}}<std::remove\_cv\_t<\mbox{\hyperlink{namespacekblib_1_1fakestd_a2641177fb1c17f887061308f2b8b6cae}{std::invoke\_result\_t}}<Func, U...>>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00946}00946 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00947}00947     \textcolor{comment}{// Keep ::type here because we still support C++11}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00948}00948     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Func, \textcolor{keyword}{typename}... U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00949}00949     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_a3051165b0eea6023939f0f8a71ecf03f}{FunctionReturnType}} = \textcolor{keyword}{typename} std::remove\_reference<\textcolor{keyword}{typename} std::remove\_cv<\textcolor{keyword}{typename} std::result\_of<Func(U...)>::type>::type>::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00950}00950 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00951}00951 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00952}00952 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00953}00953 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00954}00954 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacempl__}{mpl\_}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00955}00955     \textcolor{keyword}{struct }na;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00956}00956 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00957}00957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00958}00958 \textcolor{comment}{// end catch\_meta.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00959}00959 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00960}00960 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00961}00961 \textcolor{keyword}{template}<\textcolor{keyword}{typename} C>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00962}00962 \textcolor{keyword}{class }TestInvokerAsMethod : \textcolor{keyword}{public} ITestInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00963}00963     void (C::*m\_testAsMethod)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00964}00964 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00965}\mbox{\hyperlink{class_catch_1_1_test_invoker_as_method_a119c4bdbbdd95c42859c18541987a1a4}{00965}}     \mbox{\hyperlink{class_catch_1_1_test_invoker_as_method_a119c4bdbbdd95c42859c18541987a1a4}{TestInvokerAsMethod}}( \textcolor{keywordtype}{void} (C::*testAsMethod)() ) noexcept : m\_testAsMethod( testAsMethod ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00966}00966 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00967}\mbox{\hyperlink{class_catch_1_1_test_invoker_as_method_a8115a06efe273f4112ec0b5452c1b5f2}{00967}}     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_test_invoker_as_method_a8115a06efe273f4112ec0b5452c1b5f2}{invoke}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00968}00968         C obj;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00969}00969         (obj.*m\_testAsMethod)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00970}00970     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00971}00971 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00972}00972 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00973}00973 \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ab3d8ccbc900fe50322c39ecbba52f536}{makeTestInvoker}}( \textcolor{keywordtype}{void}(*testAsFunction)() ) noexcept -\/> ITestInvoker*;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00974}00974 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00975}00975 template<typename C>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00976}00976 auto \mbox{\hyperlink{namespace_catch_ab3d8ccbc900fe50322c39ecbba52f536}{makeTestInvoker}}( \textcolor{keywordtype}{void} (C::*testAsMethod)() ) noexcept -\/> ITestInvoker* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00977}00977     \textcolor{keywordflow}{return} \textcolor{keyword}{new}(std::nothrow) TestInvokerAsMethod<C>( testAsMethod );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00978}00978 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00979}00979 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00980}00980 \textcolor{keyword}{struct }NameAndTags \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00981}\mbox{\hyperlink{struct_catch_1_1_name_and_tags_ab585111e615ce8c504a2b9630de8ee94}{00981}}     \mbox{\hyperlink{struct_catch_1_1_name_and_tags_ab585111e615ce8c504a2b9630de8ee94}{NameAndTags}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& name\_ = \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}}(), \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& tags\_ = \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}}() ) noexcept;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00982}00982     \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \mbox{\hyperlink{struct_catch_1_1_name_and_tags_a7cbea60e0cebfa622c667008eb011420}{name}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00983}00983     \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \mbox{\hyperlink{struct_catch_1_1_name_and_tags_a74062ed1138834a348424eb7ed900c57}{tags}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00984}00984 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00985}00985 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00986}00986 struct \mbox{\hyperlink{struct_catch_1_1_auto_reg}{AutoReg}} : \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00987}\mbox{\hyperlink{struct_catch_1_1_auto_reg_a7eba02fb9d80b9896bf5a6517369af28}{00987}}     \mbox{\hyperlink{struct_catch_1_1_auto_reg_a7eba02fb9d80b9896bf5a6517369af28}{AutoReg}}( \mbox{\hyperlink{struct_catch_1_1_i_test_invoker}{ITestInvoker}}* invoker, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& classOrMethod, \mbox{\hyperlink{struct_catch_1_1_name_and_tags}{NameAndTags}} \textcolor{keyword}{const}\& nameAndTags ) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00988}\mbox{\hyperlink{struct_catch_1_1_auto_reg_a3cdb53f1e5ff115310f3372bebe198f1}{00988}}     \mbox{\hyperlink{struct_catch_1_1_auto_reg_a3cdb53f1e5ff115310f3372bebe198f1}{\string~AutoReg}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00989}00989 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00990}00990 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00991}00991 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00992}00992 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00993}00993 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00994}00994 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION( TestName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00995}00995 \textcolor{preprocessor}{        static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00996}00996 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TESTCASE\_METHOD\_NO\_REGISTRATION( TestName, ClassName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00997}00997 \textcolor{preprocessor}{        namespace\{                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00998}00998 \textcolor{preprocessor}{            struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l00999}00999 \textcolor{preprocessor}{                void test();              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01000}01000 \textcolor{preprocessor}{            \};                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01001}01001 \textcolor{preprocessor}{        \}                                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01002}01002 \textcolor{preprocessor}{        void TestName::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01003}01003 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION\_2( TestName, TestFunc, Name, Tags, Signature, ... )  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01004}01004 \textcolor{preprocessor}{        INTERNAL\_CATCH\_DEFINE\_SIG\_TEST(TestFunc, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01005}01005 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION\_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... )    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01006}01006 \textcolor{preprocessor}{        namespace\{                                                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01007}01007 \textcolor{preprocessor}{            namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName) \{                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01008}01008 \textcolor{preprocessor}{            INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD(TestName, ClassName, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature));\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01009}01009 \textcolor{preprocessor}{        \}                                                                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01010}01010 \textcolor{preprocessor}{        \}                                                                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01011}01011 \textcolor{preprocessor}{        INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD(TestName, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01012}01012 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01013}01013 \textcolor{preprocessor}{    \#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01014}01014 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(Name, Tags, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01015}01015 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename TestType, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01016}01016 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01017}01017 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(Name, Tags, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01018}01018 \textcolor{preprocessor}{            INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename TestType, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01019}01019 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01020}01020 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01021}01021 \textcolor{preprocessor}{    \#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01022}01022 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(Name, Tags, Signature, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01023}01023 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01024}01024 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01025}01025 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(Name, Tags, Signature, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01026}01026 \textcolor{preprocessor}{            INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01027}01027 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01028}01028 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01029}01029 \textcolor{preprocessor}{    \#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01030}01030 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION( ClassName, Name, Tags,... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01031}01031 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, typename T, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01032}01032 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01033}01033 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION( ClassName, Name, Tags,... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01034}01034 \textcolor{preprocessor}{            INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, typename T, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01035}01035 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01036}01036 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01037}01037 \textcolor{preprocessor}{    \#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01038}01038 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01039}01039 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, Signature, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01040}01040 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01041}01041 \textcolor{preprocessor}{        \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01042}01042 \textcolor{preprocessor}{            INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, Signature, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01043}01043 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01044}01044 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01045}01045 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01047}\mbox{\hyperlink{catch2_2catch_8hpp_a33905c95a4d545efcf34abfbf790ad9c}{01047}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TESTCASE2( TestName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01048}01048 \textcolor{preprocessor}{        static void TestName(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01049}01049 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01050}01050 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01051}01051 \textcolor{preprocessor}{        namespace\{ Catch::AutoReg INTERNAL\_CATCH\_UNIQUE\_NAME( autoRegistrar )( Catch::makeTestInvoker( \&TestName ), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), Catch::NameAndTags\{ \_\_VA\_ARGS\_\_ \} ); \} }\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01052}01052 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01053}01053 \textcolor{preprocessor}{        static void TestName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01054}\mbox{\hyperlink{catch2_2catch_8hpp_a83f221452b6494c1eb0ae9bab79faa3c}{01054}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TESTCASE( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01055}01055 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TESTCASE2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ), \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01056}01056 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01058}\mbox{\hyperlink{catch2_2catch_8hpp_af5bedfdbfc32cddf5287a77cf860f242}{01058}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_METHOD\_AS\_TEST\_CASE( QualifiedMethod, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01059}01059 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01060}01060 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01061}01061 \textcolor{preprocessor}{        namespace\{ Catch::AutoReg INTERNAL\_CATCH\_UNIQUE\_NAME( autoRegistrar )( Catch::makeTestInvoker( \&QualifiedMethod ), CATCH\_INTERNAL\_LINEINFO, "{}\&"{}} \#QualifiedMethod, Catch::NameAndTags\{ \_\_VA\_ARGS\_\_ \} ); \} \textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01062}01062 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01063}01063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01065}\mbox{\hyperlink{catch2_2catch_8hpp_a60e66c178de977271dd864ade805a250}{01065}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEST\_CASE\_METHOD2( TestName, ClassName, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01066}01066 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01067}01067 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01068}01068 \textcolor{preprocessor}{        namespace\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01069}01069 \textcolor{preprocessor}{            struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01070}01070 \textcolor{preprocessor}{                void test(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01071}01071 \textcolor{preprocessor}{            \}; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01072}01072 \textcolor{preprocessor}{            Catch::AutoReg INTERNAL\_CATCH\_UNIQUE\_NAME( autoRegistrar ) ( Catch::makeTestInvoker( \&TestName::test ), CATCH\_INTERNAL\_LINEINFO, \#ClassName, Catch::NameAndTags\{ \_\_VA\_ARGS\_\_ \} ); }\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01073}01073 \textcolor{preprocessor}{        \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01074}01074 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01075}01075 \textcolor{preprocessor}{        void TestName::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01076}\mbox{\hyperlink{catch2_2catch_8hpp_a4755a44f041605a731180e1e19e72bee}{01076}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEST\_CASE\_METHOD( ClassName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01077}01077 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEST\_CASE\_METHOD2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ), ClassName, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01078}01078 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01080}\mbox{\hyperlink{catch2_2catch_8hpp_ad7fc9293cc800a6f2fde7a0a211533c8}{01080}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_REGISTER\_TESTCASE( Function, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01081}01081 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01082}01082 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01083}01083 \textcolor{preprocessor}{        Catch::AutoReg INTERNAL\_CATCH\_UNIQUE\_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), Catch::NameAndTags\{ \_\_VA\_ARGS\_\_ \} ); }\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01084}01084 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01085}01085 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01087}\mbox{\hyperlink{catch2_2catch_8hpp_a7a9fab8f42ff86d3985c11b474efdaec}{01087}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_2(TestName, TestFunc, Name, Tags, Signature, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01088}01088 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01089}01089 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01090}01090 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01091}01091 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01092}01092 \textcolor{preprocessor}{        INTERNAL\_CATCH\_DECLARE\_SIG\_TEST(TestFunc, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature));\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01093}01093 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01094}01094 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01095}01095 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TYPE\_GEN\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01096}01096 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_GEN(INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01097}01097 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_REG\_GEN(TestFunc,INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01098}01098 \textcolor{preprocessor}{            template<typename...Types> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01099}01099 \textcolor{preprocessor}{            struct TestName\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01100}01100 \textcolor{preprocessor}{                TestName()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01101}01101 \textcolor{preprocessor}{                    int index = 0;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01102}01102 \textcolor{preprocessor}{                    constexpr char const* tmpl\_types[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, \_\_VA\_ARGS\_\_)\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01103}01103 \textcolor{preprocessor}{                    using expander = int[];\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01104}01104 \textcolor{preprocessor}{                    (void)expander\{(reg\_test(Types\{\}, Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(tmpl\_types[index]), Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01105}01105 \textcolor{preprocessor}{                \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01106}01106 \textcolor{preprocessor}{            \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01107}01107 \textcolor{preprocessor}{            static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01108}01108 \textcolor{preprocessor}{            TestName<INTERNAL\_CATCH\_MAKE\_TYPE\_LISTS\_FROM\_TYPES(\_\_VA\_ARGS\_\_)>();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01109}01109 \textcolor{preprocessor}{            return 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01110}01110 \textcolor{preprocessor}{        \}();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01111}01111 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01112}01112 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01113}01113 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01114}01114 \textcolor{preprocessor}{        INTERNAL\_CATCH\_DEFINE\_SIG\_TEST(TestFunc,INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01115}01115 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01116}01116 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01117}\mbox{\hyperlink{catch2_2catch_8hpp_a8190f00b563c3efb52f8057be41db45f}{01117}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE(Name, Tags, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01118}01118 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename TestType, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01119}01119 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01120}01120 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE(Name, Tags, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01121}01121 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename TestType, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01122}01122 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01123}01123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01124}01124 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01125}\mbox{\hyperlink{catch2_2catch_8hpp_acdd7766753f3768c537a9a0747dc15fc}{01125}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG(Name, Tags, Signature, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01126}01126 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01127}01127 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01128}01128 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG(Name, Tags, Signature, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01129}01129 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01130}01130 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01131}01131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01132}\mbox{\hyperlink{catch2_2catch_8hpp_a52cf4aaf39fe85c5af878c432296a46d}{01132}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01133}01133 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01134}01134 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01135}01135 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS                \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01136}01136 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01137}01137 \textcolor{preprocessor}{        template<typename TestType> static void TestFuncName();       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01138}01138 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01139}01139 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName) \{                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01140}01140 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TYPE\_GEN                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01141}01141 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_GEN(INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01142}01142 \textcolor{preprocessor}{            template<typename... Types>                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01143}01143 \textcolor{preprocessor}{            struct TestName \{                                         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01144}01144 \textcolor{preprocessor}{                void reg\_tests() \{                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01145}01145 \textcolor{preprocessor}{                    int index = 0;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01146}01146 \textcolor{preprocessor}{                    using expander = int[];                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01147}01147 \textcolor{preprocessor}{                    constexpr char const* tmpl\_types[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, INTERNAL\_CATCH\_REMOVE\_PARENS(TmplTypes))\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01148}01148 \textcolor{preprocessor}{                    constexpr char const* types\_list[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, INTERNAL\_CATCH\_REMOVE\_PARENS(TypesList))\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01149}01149 \textcolor{preprocessor}{                    constexpr auto num\_types = sizeof(types\_list) / sizeof(types\_list[0]);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01150}01150 \textcolor{preprocessor}{                    (void)expander\{(Catch::AutoReg( Catch::makeTestInvoker( \&TestFuncName<Types> ), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(tmpl\_types[index / num\_types]) + "{}<"{} + std::string(types\_list[index \% num\_types]) + "{}>"{}, Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01151}01151 \textcolor{preprocessor}{                \}                                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01152}01152 \textcolor{preprocessor}{            \};                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01153}01153 \textcolor{preprocessor}{            static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01154}01154 \textcolor{preprocessor}{                using TestInit = typename create<TestName, decltype(get\_wrapper<INTERNAL\_CATCH\_REMOVE\_PARENS(TmplTypes)>()), TypeList<INTERNAL\_CATCH\_MAKE\_TYPE\_LISTS\_FROM\_TYPES(INTERNAL\_CATCH\_REMOVE\_PARENS(TypesList))>>::type; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01155}01155 \textcolor{preprocessor}{                TestInit t;                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01156}01156 \textcolor{preprocessor}{                t.reg\_tests();                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01157}01157 \textcolor{preprocessor}{                return 0;                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01158}01158 \textcolor{preprocessor}{            \}();                                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01159}01159 \textcolor{preprocessor}{        \}                                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01160}01160 \textcolor{preprocessor}{        \}                                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01161}01161 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01162}01162 \textcolor{preprocessor}{        template<typename TestType>                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01163}01163 \textcolor{preprocessor}{        static void TestFuncName()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01164}01164 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01165}01165 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01166}\mbox{\hyperlink{catch2_2catch_8hpp_acd8f967bc841a9ab05774e8863cf9506}{01166}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE(Name, Tags, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01167}01167 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE2(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename T,\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01168}01168 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01169}01169 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE(Name, Tags, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01170}01170 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, typename T, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01171}01171 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01172}01172 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01173}01173 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01174}\mbox{\hyperlink{catch2_2catch_8hpp_ab1e624e6e831f5f15df243f97bf7e962}{01174}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG(Name, Tags, Signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01175}01175 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE2(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01176}01176 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01177}01177 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG(Name, Tags, Signature, ...)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01178}01178 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, Signature, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01179}01179 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01180}01180 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01181}\mbox{\hyperlink{catch2_2catch_8hpp_a1ddeb0664108fbef4c50e5dab4dbc567}{01181}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_2(TestName, TestFunc, Name, Tags, TmplList)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01182}01182 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01183}01183 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01184}01184 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01185}01185 \textcolor{preprocessor}{        template<typename TestType> static void TestFunc();       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01186}01186 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01187}01187 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01188}01188 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TYPE\_GEN\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01189}01189 \textcolor{preprocessor}{        template<typename... Types>                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01190}01190 \textcolor{preprocessor}{        struct TestName \{                                         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01191}01191 \textcolor{preprocessor}{            void reg\_tests() \{                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01192}01192 \textcolor{preprocessor}{                int index = 0;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01193}01193 \textcolor{preprocessor}{                using expander = int[];                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01194}01194 \textcolor{preprocessor}{                (void)expander\{(Catch::AutoReg( Catch::makeTestInvoker( \&TestFunc<Types> ), CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(INTERNAL\_CATCH\_STRINGIZE(TmplList)) + "{} -\/ "{} + std::to\_string(index), Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01195}01195 \textcolor{preprocessor}{            \}                                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01196}01196 \textcolor{preprocessor}{        \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01197}01197 \textcolor{preprocessor}{        static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01198}01198 \textcolor{preprocessor}{                using TestInit = typename convert<TestName, TmplList>::type; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01199}01199 \textcolor{preprocessor}{                TestInit t;                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01200}01200 \textcolor{preprocessor}{                t.reg\_tests();                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01201}01201 \textcolor{preprocessor}{                return 0;                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01202}01202 \textcolor{preprocessor}{            \}();                                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01203}01203 \textcolor{preprocessor}{        \}\}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01204}01204 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01205}01205 \textcolor{preprocessor}{        template<typename TestType>                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01206}01206 \textcolor{preprocessor}{        static void TestFunc()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01207}01207 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01208}\mbox{\hyperlink{catch2_2catch_8hpp_ac9ef0e27a1dcfda5fe253f1767e2fab8}{01208}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE(Name, Tags, TmplList) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01209}01209 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), Name, Tags, TmplList )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01210}01210 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01211}\mbox{\hyperlink{catch2_2catch_8hpp_a8d7a6f4bac6e19a2d5ed5b35fd0a7efb}{01211}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01212}01212 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01213}01213 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01214}01214 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01215}01215 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01216}01216 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01217}01217 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01218}01218 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TYPE\_GEN\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01219}01219 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_GEN(INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01220}01220 \textcolor{preprocessor}{            INTERNAL\_CATCH\_DECLARE\_SIG\_TEST\_METHOD(TestName, ClassName, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature));\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01221}01221 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_REG\_METHOD\_GEN(TestName, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01222}01222 \textcolor{preprocessor}{            template<typename...Types> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01223}01223 \textcolor{preprocessor}{            struct TestNameClass\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01224}01224 \textcolor{preprocessor}{                TestNameClass()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01225}01225 \textcolor{preprocessor}{                    int index = 0;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01226}01226 \textcolor{preprocessor}{                    constexpr char const* tmpl\_types[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, \_\_VA\_ARGS\_\_)\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01227}01227 \textcolor{preprocessor}{                    using expander = int[];\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01228}01228 \textcolor{preprocessor}{                    (void)expander\{(reg\_test(Types\{\}, \#ClassName, Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(tmpl\_types[index]), Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01229}01229 \textcolor{preprocessor}{                \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01230}01230 \textcolor{preprocessor}{            \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01231}01231 \textcolor{preprocessor}{            static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01232}01232 \textcolor{preprocessor}{                TestNameClass<INTERNAL\_CATCH\_MAKE\_TYPE\_LISTS\_FROM\_TYPES(\_\_VA\_ARGS\_\_)>();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01233}01233 \textcolor{preprocessor}{                return 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01234}01234 \textcolor{preprocessor}{        \}();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01235}01235 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01236}01236 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01237}01237 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01238}01238 \textcolor{preprocessor}{        INTERNAL\_CATCH\_DEFINE\_SIG\_TEST\_METHOD(TestName, INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01239}01239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01240}01240 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01241}\mbox{\hyperlink{catch2_2catch_8hpp_a582f90e5f7c36e9e69fff5f4c891ac29}{01241}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( ClassName, Name, Tags,... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01242}01242 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, typename T, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01243}01243 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01244}01244 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( ClassName, Name, Tags,... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01245}01245 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, typename T, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01246}01246 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01247}01247 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01248}01248 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01249}\mbox{\hyperlink{catch2_2catch_8hpp_ab536a2ad12ea4a01b8037d0c953e1ddf}{01249}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( ClassName, Name, Tags, Signature, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01250}01250 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, Signature, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01251}01251 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01252}01252 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( ClassName, Name, Tags, Signature, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01253}01253 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_C\_L\_A\_S\_S\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ) , ClassName, Name, Tags, Signature, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01254}01254 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01255}01255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01256}\mbox{\hyperlink{catch2_2catch_8hpp_aa50cacf2bbca5f9ddd2625403e649799}{01256}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01257}01257 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01258}01258 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01259}01259 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_ZERO\_VARIADIC\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01260}01260 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01261}01261 \textcolor{preprocessor}{        template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01262}01262 \textcolor{preprocessor}{            struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName <TestType>) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01263}01263 \textcolor{preprocessor}{                void test();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01264}01264 \textcolor{preprocessor}{            \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01265}01265 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01266}01266 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestNameClass) \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01267}01267 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TYPE\_GEN                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01268}01268 \textcolor{preprocessor}{            INTERNAL\_CATCH\_NTTP\_GEN(INTERNAL\_CATCH\_REMOVE\_PARENS(Signature))\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01269}01269 \textcolor{preprocessor}{            template<typename...Types>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01270}01270 \textcolor{preprocessor}{            struct TestNameClass\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01271}01271 \textcolor{preprocessor}{                void reg\_tests()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01272}01272 \textcolor{preprocessor}{                    int index = 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01273}01273 \textcolor{preprocessor}{                    using expander = int[];\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01274}01274 \textcolor{preprocessor}{                    constexpr char const* tmpl\_types[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, INTERNAL\_CATCH\_REMOVE\_PARENS(TmplTypes))\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01275}01275 \textcolor{preprocessor}{                    constexpr char const* types\_list[] = \{CATCH\_REC\_LIST(INTERNAL\_CATCH\_STRINGIZE\_WITHOUT\_PARENS, INTERNAL\_CATCH\_REMOVE\_PARENS(TypesList))\};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01276}01276 \textcolor{preprocessor}{                    constexpr auto num\_types = sizeof(types\_list) / sizeof(types\_list[0]);\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01277}01277 \textcolor{preprocessor}{                    (void)expander\{(Catch::AutoReg( Catch::makeTestInvoker( \&TestName<Types>::test ), CATCH\_INTERNAL\_LINEINFO, \#ClassName, Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(tmpl\_types[index / num\_types]) + "{}<"{} + std::string(types\_list[index \% num\_types]) + "{}>"{}, Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01278}01278 \textcolor{preprocessor}{                \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01279}01279 \textcolor{preprocessor}{            \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01280}01280 \textcolor{preprocessor}{            static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01281}01281 \textcolor{preprocessor}{                using TestInit = typename create<TestNameClass, decltype(get\_wrapper<INTERNAL\_CATCH\_REMOVE\_PARENS(TmplTypes)>()), TypeList<INTERNAL\_CATCH\_MAKE\_TYPE\_LISTS\_FROM\_TYPES(INTERNAL\_CATCH\_REMOVE\_PARENS(TypesList))>>::type;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01282}01282 \textcolor{preprocessor}{                TestInit t;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01283}01283 \textcolor{preprocessor}{                t.reg\_tests();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01284}01284 \textcolor{preprocessor}{                return 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01285}01285 \textcolor{preprocessor}{            \}(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01286}01286 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01287}01287 \textcolor{preprocessor}{        \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01288}01288 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01289}01289 \textcolor{preprocessor}{        template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01290}01290 \textcolor{preprocessor}{        void TestName<TestType>::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01291}01291 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01292}01292 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01293}\mbox{\hyperlink{catch2_2catch_8hpp_a1a4839fc44923f817dec5694f0bd1f33}{01293}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( ClassName, Name, Tags, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01294}01294 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), ClassName, Name, Tags, typename T, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01295}01295 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01296}01296 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( ClassName, Name, Tags, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01297}01297 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), ClassName, Name, Tags, typename T,\_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01298}01298 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01299}01299 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01300}01300 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01301}\mbox{\hyperlink{catch2_2catch_8hpp_a09fd24fffbc23194f538de357e9714f7}{01301}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( ClassName, Name, Tags, Signature, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01302}01302 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), ClassName, Name, Tags, Signature, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01303}01303 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01304}01304 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( ClassName, Name, Tags, Signature, ... )\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01305}01305 \textcolor{preprocessor}{        INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), ClassName, Name, Tags, Signature,\_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01306}01306 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01307}01307 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01308}\mbox{\hyperlink{catch2_2catch_8hpp_a9f5b6affb41be524dcd4b28723ffcfc8}{01308}} \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_METHOD\_2( TestNameClass, TestName, ClassName, Name, Tags, TmplList) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01309}01309 \textcolor{preprocessor}{        CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01310}01310 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01311}01311 \textcolor{preprocessor}{        CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_TEMPLATE\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01312}01312 \textcolor{preprocessor}{        template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01313}01313 \textcolor{preprocessor}{        struct TestName : INTERNAL\_CATCH\_REMOVE\_PARENS(ClassName <TestType>) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01314}01314 \textcolor{preprocessor}{            void test();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01315}01315 \textcolor{preprocessor}{        \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01316}01316 \textcolor{preprocessor}{        namespace \{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01317}01317 \textcolor{preprocessor}{        namespace INTERNAL\_CATCH\_MAKE\_NAMESPACE(TestName)\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01318}01318 \textcolor{preprocessor}{            INTERNAL\_CATCH\_TYPE\_GEN\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01319}01319 \textcolor{preprocessor}{            template<typename...Types>\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01320}01320 \textcolor{preprocessor}{            struct TestNameClass\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01321}01321 \textcolor{preprocessor}{                void reg\_tests()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01322}01322 \textcolor{preprocessor}{                    int index = 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01323}01323 \textcolor{preprocessor}{                    using expander = int[];\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01324}01324 \textcolor{preprocessor}{                    (void)expander\{(Catch::AutoReg( Catch::makeTestInvoker( \&TestName<Types>::test ), CATCH\_INTERNAL\_LINEINFO, \#ClassName, Catch::NameAndTags\{ Name "{} -\/ "{}} + std::string(INTERNAL\_CATCH\_STRINGIZE(TmplList)) + "{} -\/ "{} + std::to\_string(index), Tags \} ), index++)... \};\textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01325}01325 \textcolor{preprocessor}{                \}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01326}01326 \textcolor{preprocessor}{            \};\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01327}01327 \textcolor{preprocessor}{            static int INTERNAL\_CATCH\_UNIQUE\_NAME( globalRegistrar ) = []()\{\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01328}01328 \textcolor{preprocessor}{                using TestInit = typename convert<TestNameClass, TmplList>::type;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01329}01329 \textcolor{preprocessor}{                TestInit t;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01330}01330 \textcolor{preprocessor}{                t.reg\_tests();\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01331}01331 \textcolor{preprocessor}{                return 0;\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01332}01332 \textcolor{preprocessor}{            \}(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01333}01333 \textcolor{preprocessor}{        \}\}\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01334}01334 \textcolor{preprocessor}{        CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01335}01335 \textcolor{preprocessor}{        template<typename TestType> \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01336}01336 \textcolor{preprocessor}{        void TestName<TestType>::test()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01337}01337 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01338}\mbox{\hyperlink{catch2_2catch_8hpp_a6e9c5f2b3bc07068ad3bd78d224989f3}{01338}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_METHOD(ClassName, Name, Tags, TmplList) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01339}01339 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_METHOD\_2( INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_ ), INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_M\_P\_L\_A\_T\_E\_T\_E\_S\_T\_F\_U\_N\_C\_ ), ClassName, Name, Tags, TmplList )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01340}01340 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01341}01341 \textcolor{comment}{// end catch\_test\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01342}01342 \textcolor{comment}{// start catch\_capture.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01343}01343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01344}01344 \textcolor{comment}{// start catch\_assertionhandler.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01345}01345 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01346}01346 \textcolor{comment}{// start catch\_assertioninfo.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01347}01347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01348}01348 \textcolor{comment}{// start catch\_result\_type.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01349}01349 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01350}01350 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01351}01351 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01352}01352     \textcolor{comment}{// ResultWas::OfType enum}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01353}\mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{01353}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_result_was}{ResultWas}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{OfType}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01354}01354         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa18b7bfef24524824dc1acf3ff5bccd9e}{Unknown}} = -\/1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01355}01355         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{Ok}} = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01356}01356         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{Info}} = 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01357}01357         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{Warning}} = 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01358}01358 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01359}01359         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{FailureBit}} = 0x10,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01360}01360 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01361}01361         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7062ac2bdea77a68bac4675c4315570}{ExpressionFailed}} = \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{FailureBit}} | 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01362}01362         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa0c08e9a7cc2a689bfb86ca3a6cfc6444}{ExplicitFailure}} = \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{FailureBit}} | 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01363}01363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01364}01364         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa94b8ecf31cd791e2e4ddc46f25e3aaf4}{Exception}} = 0x100 | \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{FailureBit}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01365}01365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01366}01366         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ThrewException}} = \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa94b8ecf31cd791e2e4ddc46f25e3aaf4}{Exception}} | 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01367}01367         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa982f9c220de9fb76881da3bbf22b1a85}{DidntThrowException}} = \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa94b8ecf31cd791e2e4ddc46f25e3aaf4}{Exception}} | 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01368}01368 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01369}01369         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7f0c2afadf75d1d24bf8729ebd32cee}{FatalErrorCondition}} = 0x200 | \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{FailureBit}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01370}01370 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01371}01371     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01372}01372 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01373}01373     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{isOk}}( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01374}01374     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a54b01af61673a3e1f21f31713639b180}{isJustInfo}}( \textcolor{keywordtype}{int} flags );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01375}01375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01376}01376     \textcolor{comment}{// ResultDisposition::Flags enum}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01377}\mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{01377}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_result_disposition}{ResultDisposition}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{Flags}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01378}01378         \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8a3758aaf4ec26097b5fdfcc3fbfc76e46}{Normal}} = 0x01,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01379}01379 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01380}01380         \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8a5adbb8bdfe4bf14bf37cb297d8b18b64}{ContinueOnFailure}} = 0x02,   \textcolor{comment}{// Failures fail test, but execution continues}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01381}01381         \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8ad9f2da3df9d8bad526ee088d5db6271a}{FalseTest}} = 0x04,           \textcolor{comment}{// Prefix expression with !}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01382}01382         \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8ac6212775ec7a943e9c49e451f5ff5467}{SuppressFail}} = 0x08         \textcolor{comment}{// Failures are reported but do not fail the test}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01383}01383     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01384}01384 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01385}01385     \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator | }}( \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} lhs, \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} rhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01386}01386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01387}01387     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a7f7480b15d74965459c844f0d393ed87}{shouldContinueOnFailure}}( \textcolor{keywordtype}{int} flags );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01388}01388     \textcolor{keyword}{inline} \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a93ef4e3e307a2021ca0d41b32c0e54b0}{isFalseTest}}( \textcolor{keywordtype}{int} flags ) \{ \textcolor{keywordflow}{return} ( flags \& \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8ad9f2da3df9d8bad526ee088d5db6271a}{ResultDisposition::FalseTest}} ) != 0; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01389}01389     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ab91eb13081203d634fe48d3d2ab386d7}{shouldSuppressFailure}}( \textcolor{keywordtype}{int} flags );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01390}01390 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01391}01391 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01392}01392 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01393}01393 \textcolor{comment}{// end catch\_result\_type.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01394}01394 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01395}01395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01396}01396     \textcolor{keyword}{struct }AssertionInfo}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01397}01397     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01398}01398         StringRef \mbox{\hyperlink{struct_catch_1_1_assertion_info_aaf3fbb9f1fe09c879ba3d877584e3056}{macroName}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01399}01399         SourceLineInfo \mbox{\hyperlink{struct_catch_1_1_assertion_info_a17bdbb404ba12658034f833be2f4c3e7}{lineInfo}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01400}01400         StringRef \mbox{\hyperlink{struct_catch_1_1_assertion_info_accd36744b4acaa3a691a72df0b42190f}{capturedExpression}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01401}01401         \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} \mbox{\hyperlink{struct_catch_1_1_assertion_info_a60353b3632ab2f827162f2b2d6911073}{resultDisposition}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01402}01402 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01403}01403         \textcolor{comment}{// We want to delete this constructor but a compiler bug in 4.8 means}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01404}01404         \textcolor{comment}{// the struct is then treated as non-\/aggregate}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01405}01405         \textcolor{comment}{//AssertionInfo() = delete;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01406}01406     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01407}01407 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01408}01408 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01409}01409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01410}01410 \textcolor{comment}{// end catch\_assertioninfo.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01411}01411 \textcolor{comment}{// start catch\_decomposer.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01412}01412 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01413}01413 \textcolor{comment}{// start catch\_tostring.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01414}01414 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01415}01415 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01416}01416 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01417}01417 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01418}01418 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01419}01419 \textcolor{comment}{// start catch\_stream.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01420}01420 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01421}01421 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01422}01422 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01423}01423 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01424}01424 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01425}01425 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01426}01426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01427}01427     std::ostream\& \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{cout}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01428}01428     std::ostream\& \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{cerr}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01429}01429     std::ostream\& \mbox{\hyperlink{namespace_catch_a1b2213f54e4d31a659db49827e81856b}{clog}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01430}01430 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01431}01431     \textcolor{keyword}{class }StringRef;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01432}01432 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01433}01433     \textcolor{keyword}{struct }IStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01434}\mbox{\hyperlink{struct_catch_1_1_i_stream_a344a88d0e5fc1f727f5801c72b4a4e2a}{01434}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_stream_a344a88d0e5fc1f727f5801c72b4a4e2a}{\string~IStream}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01435}\mbox{\hyperlink{struct_catch_1_1_i_stream_ad1cee80a31407d09aa0627a531f26b07}{01435}}         \textcolor{keyword}{virtual} std::ostream\& \mbox{\hyperlink{struct_catch_1_1_i_stream_ad1cee80a31407d09aa0627a531f26b07}{stream}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01436}01436     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01437}01437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01438}01438     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af6d27462573d60c30c51acf1c980e3ff}{makeStream}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const} \&filename ) -\/> \mbox{\hyperlink{struct_catch_1_1_i_stream}{IStream}} \textcolor{keyword}{const}*;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01439}01439 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01440}01440     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_reusable_string_stream}{ReusableStringStream}} : \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01441}01441         std::size\_t m\_index;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01442}01442         std::ostream* m\_oss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01443}01443     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01444}\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a9b3f8c52b0d2d63ffd825297a9c09781}{01444}}         \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a9b3f8c52b0d2d63ffd825297a9c09781}{ReusableStringStream}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01445}\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_aba9384e258a4db3178447b6a58414712}{01445}}         \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_aba9384e258a4db3178447b6a58414712}{\string~ReusableStringStream}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01446}01446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01447}\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{01447}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01448}01448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01449}01449         template<typename T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01450}\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_af95f72024c082db70e5e50782e28e4f6}{01450}}         auto operator << ( T const\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) -\/> \mbox{\hyperlink{class_catch_1_1_reusable_string_stream}{ReusableStringStream}}\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01451}01451             *m\_oss << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01452}01452             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01453}01453         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01454}\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a6881808c60a080d4e24a0b81c94cbf67}{01454}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a6881808c60a080d4e24a0b81c94cbf67}{get}}() -\/> std::ostream\& \{ \textcolor{keywordflow}{return} *m\_oss; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01455}01455     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01456}01456 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01457}01457 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01458}01458 \textcolor{comment}{// end catch\_stream.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01459}01459 \textcolor{comment}{// start catch\_interfaces\_enum\_values\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01460}01460 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01461}01461 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01462}01462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01463}01463 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01464}01464 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01465}01465     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01466}01466         \textcolor{keyword}{struct }EnumInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01467}01467             StringRef \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_a16ecfd3a7e11439433aabbdf6ecb676c}{m\_name}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01468}01468             std::vector<std::pair<int, StringRef>> \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_ad0e5192faeffe49ef749ea64678adc5e}{m\_values}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01469}01469 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01470}\mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_ab6608593c00614a688045fe8d911258d}{01470}}             \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_ab6608593c00614a688045fe8d911258d}{\string~EnumInfo}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01471}01471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01472}\mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_a2fdfacc411d7afb1cb690366e5e49cb3}{01472}}             \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_a2fdfacc411d7afb1cb690366e5e49cb3}{lookup}}( \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01473}01473         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01474}01474     \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01475}01475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01476}01476     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry}{IMutableEnumValuesRegistry}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01477}\mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_aebd423693128987c89ac732478d74673}{01477}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_aebd423693128987c89ac732478d74673}{\string~IMutableEnumValuesRegistry}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01478}01478 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01479}\mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_a56e9726c383ed48731621c7183730310}{01479}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info}{Detail::EnumInfo}} \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_a56e9726c383ed48731621c7183730310}{registerEnum}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} enumName, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} allEnums, std::vector<int> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01480}01480 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01481}01481         \textcolor{keyword}{template}<\textcolor{keyword}{typename} E>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01482}\mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_ac1f8c7d3d97100ec30e09a3866f69904}{01482}}         \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info}{Detail::EnumInfo}} \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_ac1f8c7d3d97100ec30e09a3866f69904}{registerEnum}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} enumName, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} allEnums, std::initializer\_list<E> \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01483}01483             \textcolor{keyword}{static\_assert}(\textcolor{keyword}{sizeof}(int) >= \textcolor{keyword}{sizeof}(E), \textcolor{stringliteral}{"{}Cannot serialize enum to int"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01484}01484             std::vector<int> intValues;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01485}01485             intValues.reserve( \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01486}01486             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} enumValue : \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01487}01487                 intValues.push\_back( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}( enumValue ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01488}01488             \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_a56e9726c383ed48731621c7183730310}{registerEnum}}( enumName, allEnums, intValues );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01489}01489         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01490}01490     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01491}01491 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01492}01492 \} \textcolor{comment}{// Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01493}01493 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01494}01494 \textcolor{comment}{// end catch\_interfaces\_enum\_values\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01495}01495 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01496}01496 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01497}01497 \textcolor{preprocessor}{\#include <string\_view>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01498}01498 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01499}01499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01500}01500 \textcolor{preprocessor}{\#ifdef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01501}01501 \textcolor{comment}{// start catch\_objc\_arc.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01502}01502 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01503}01503 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01504}01504 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01505}01505 \textcolor{preprocessor}{\#ifdef \_\_has\_feature}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01506}01506 \textcolor{preprocessor}{\#define CATCH\_ARC\_ENABLED \_\_has\_feature(objc\_arc)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01507}01507 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01508}01508 \textcolor{preprocessor}{\#define CATCH\_ARC\_ENABLED 0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01509}01509 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01510}01510 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01511}01511 \textcolor{keywordtype}{void} arcSafeRelease( NSObject* obj );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01512}01512 \textcolor{keywordtype}{id} performOptionalSelector( \textcolor{keywordtype}{id} obj, \textcolor{keywordtype}{SEL} sel );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01513}01513 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01514}01514 \textcolor{preprocessor}{\#if !CATCH\_ARC\_ENABLED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01515}01515 \textcolor{keyword}{inline} \textcolor{keywordtype}{void} arcSafeRelease( NSObject* obj ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01516}01516     [obj release];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01517}01517 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01518}01518 \textcolor{keyword}{inline} \textcolor{keywordtype}{id} performOptionalSelector( \textcolor{keywordtype}{id} obj, \textcolor{keywordtype}{SEL} sel ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01519}01519     \textcolor{keywordflow}{if}( [obj respondsToSelector: sel] )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01520}01520         \textcolor{keywordflow}{return} [obj performSelector: sel];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01521}01521     \textcolor{keywordflow}{return} nil;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01522}01522 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01523}01523 \textcolor{preprocessor}{\#define CATCH\_UNSAFE\_UNRETAINED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01524}01524 \textcolor{preprocessor}{\#define CATCH\_ARC\_STRONG}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01525}01525 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01526}01526 \textcolor{keyword}{inline} \textcolor{keywordtype}{void} arcSafeRelease( NSObject* )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01527}01527 \textcolor{keyword}{inline} \textcolor{keywordtype}{id} performOptionalSelector( \textcolor{keywordtype}{id} obj, \textcolor{keywordtype}{SEL} sel ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01528}01528 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01529}01529 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01530}01530 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Warc-\/performSelector-\/leaks"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01531}01531 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01532}01532     \textcolor{keywordflow}{if}( [obj respondsToSelector: sel] )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01533}01533         \textcolor{keywordflow}{return} [obj performSelector: sel];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01534}01534 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01535}01535 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01536}01536 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01537}01537     \textcolor{keywordflow}{return} nil;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01538}01538 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01539}01539 \textcolor{preprocessor}{\#define CATCH\_UNSAFE\_UNRETAINED \_\_unsafe\_unretained}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01540}01540 \textcolor{preprocessor}{\#define CATCH\_ARC\_STRONG \_\_strong}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01541}01541 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01542}01542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01543}01543 \textcolor{comment}{// end catch\_objc\_arc.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01544}01544 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01545}01545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01546}01546 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01547}01547 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01548}01548 \textcolor{preprocessor}{\#pragma warning(disable:4180) }\textcolor{comment}{// We attempt to stream a function (address) by const\&, which MSVC complains about but is harmless}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01549}01549 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01550}01550 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01551}01551 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01552}01552     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01553}01553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01554}\mbox{\hyperlink{namespace_catch_1_1_detail_a466775f4eec29ffef29ab334cd885136}{01554}}         \textcolor{keyword}{extern} \textcolor{keyword}{const} std::string \mbox{\hyperlink{namespace_catch_1_1_detail_a466775f4eec29ffef29ab334cd885136}{unprintableString}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01555}01555 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01556}01556         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_ac5d6c510e565ee5bddcc2236194ce29e}{rawMemoryToString}}( \textcolor{keyword}{const} \textcolor{keywordtype}{void} *\textcolor{keywordtype}{object}, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01557}01557 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01558}01558         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01559}01559         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_ac5d6c510e565ee5bddcc2236194ce29e}{rawMemoryToString}}( \textcolor{keyword}{const} T\& \textcolor{keywordtype}{object} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01560}01560           \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_detail_ac5d6c510e565ee5bddcc2236194ce29e}{rawMemoryToString}}( \&\textcolor{keywordtype}{object}, \textcolor{keyword}{sizeof}(\textcolor{keywordtype}{object}) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01561}01561         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01562}01562 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01563}01563         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01564}01564         \textcolor{keyword}{class }IsStreamInsertable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01565}01565             \textcolor{keyword}{template}<\textcolor{keyword}{typename} Stream, \textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01566}01566             \textcolor{keyword}{static} \textcolor{keyword}{auto} test(\textcolor{keywordtype}{int})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01567}01567                 -\/> \textcolor{keyword}{decltype}(std::declval<Stream\&>() << std::declval<U>(), std::true\_type());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01568}01568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01569}01569             \textcolor{keyword}{template}<\textcolor{keyword}{typename}, \textcolor{keyword}{typename}>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01570}01570             \textcolor{keyword}{static} \textcolor{keyword}{auto} test(...)-\/>std::false\_type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01571}01571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01572}01572         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01573}01573             \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_detail_1_1_is_stream_insertable_a09db174a537d0f802c5d7a15f0420f46}{value}} = \textcolor{keyword}{decltype}(test<std::ostream, const T\&>(0))\mbox{\hyperlink{class_catch_1_1_detail_1_1_is_stream_insertable_a09db174a537d0f802c5d7a15f0420f46}{::value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01574}01574         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01575}01575 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01576}01576         \textcolor{keyword}{template}<\textcolor{keyword}{typename} E>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01577}01577         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_a242396de537c5176710d680cc9ca6b93}{convertUnknownEnumToString}}( E \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01578}01578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01579}01579         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01580}01580         \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01581}01581             !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_enum<T>::value}} \&\& !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_base\_of<std::exception, T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01582}01582         std::string>::type \mbox{\hyperlink{namespace_catch_1_1_detail_aa4fbd846029625d08378606ffe9ebc3b}{convertUnstreamable}}( T \textcolor{keyword}{const}\& ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01583}01583             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_detail_a466775f4eec29ffef29ab334cd885136}{Detail::unprintableString}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01584}01584         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01585}01585         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01586}01586         \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01587}01587             !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_enum<T>::value}} \&\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_base\_of<std::exception, T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01588}01588          std::string>::type \mbox{\hyperlink{namespace_catch_1_1_detail_aa4fbd846029625d08378606ffe9ebc3b}{convertUnstreamable}}(T \textcolor{keyword}{const}\& ex) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01589}01589             \textcolor{keywordflow}{return} ex.what();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01590}01590         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01591}01591 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01592}01592         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01593}01593         \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01594}01594             \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_enum<T>::value}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01595}01595         , std::string>::type \mbox{\hyperlink{namespace_catch_1_1_detail_aa4fbd846029625d08378606ffe9ebc3b}{convertUnstreamable}}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01596}01596             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_detail_a242396de537c5176710d680cc9ca6b93}{convertUnknownEnumToString}}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01597}01597         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01598}01598 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01599}01599 \textcolor{preprocessor}{\#if defined(\_MANAGED)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01601}01601         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01602}01602         std::string clrReferenceToString( T\string^ ref ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01603}01603             \textcolor{keywordflow}{if} (ref == \textcolor{keyword}{nullptr})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01604}01604                 \textcolor{keywordflow}{return} std::string(\textcolor{stringliteral}{"{}null"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01605}01605             \textcolor{keyword}{auto} bytes = System::Text::Encoding::UTF8-\/>GetBytes(ref-\/>ToString());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01606}01606             cli::pin\_ptr<System::Byte> p = \&bytes[0];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01607}01607             \textcolor{keywordflow}{return} std::string(\textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char} \textcolor{keyword}{const }*\textcolor{keyword}{>}(p), bytes-\/>Length);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01608}01608         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01609}01609 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01610}01610 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01611}01611     \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01612}01612 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01613}01613     \textcolor{comment}{// If we decide for C++14, change these to enable\_if\_ts}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01614}01614     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} = \textcolor{keywordtype}{void}>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01615}01615     \textcolor{keyword}{struct }StringMaker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01616}01616         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fake = T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01617}01617         \textcolor{keyword}{static}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01618}01618         \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<::Catch::Detail::IsStreamInsertable<Fake>::value}}, std::string>::type}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01619}\mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{01619}}             \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} Fake\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01620}01620                 \mbox{\hyperlink{class_catch_1_1_reusable_string_stream}{ReusableStringStream}} rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01621}01621                 \textcolor{comment}{// NB: call using the function-\/like syntax to avoid ambiguity with}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01622}01622                 \textcolor{comment}{// user-\/defined templated operator<< under clang.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01623}01623                 rss.operator<<(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01624}01624                 \textcolor{keywordflow}{return} rss.\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01625}01625         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01626}01626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01627}01627         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fake = T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01628}01628         \textcolor{keyword}{static}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01629}01629         \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<!::Catch::Detail::IsStreamInsertable<Fake>::value}}, std::string>::type}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01630}\mbox{\hyperlink{struct_catch_1_1_string_maker_ac23f621d0bed26c4a511d4f5c37abb91}{01630}}             \mbox{\hyperlink{struct_catch_1_1_string_maker_ac23f621d0bed26c4a511d4f5c37abb91}{convert}}( \textcolor{keyword}{const} Fake\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01631}01631 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_FALLBACK\_STRINGIFIER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01632}01632             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_detail_aa4fbd846029625d08378606ffe9ebc3b}{Detail::convertUnstreamable}}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01633}01633 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01634}01634             \textcolor{keywordflow}{return} CATCH\_CONFIG\_FALLBACK\_STRINGIFIER(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01635}01635 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01636}01636         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01637}01637     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01638}01638 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01639}01639     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01640}01640 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01641}01641         \textcolor{comment}{// This function dispatches all stringification requests inside of Catch.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01642}01642         \textcolor{comment}{// Should be preferably called fully qualified, like ::Catch::Detail::stringify}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01643}01643         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01644}01644         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{stringify}}(\textcolor{keyword}{const} T\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01645}01645             return ::Catch::StringMaker<typename std::remove\_cv<typename std::remove\_reference<T>::type>::type>::convert(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01646}01646         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01647}01647 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01648}01648         \textcolor{keyword}{template}<\textcolor{keyword}{typename} E>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01649}01649         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_a242396de537c5176710d680cc9ca6b93}{convertUnknownEnumToString}}( E \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01650}01650             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}typename std::underlying\_type<E>::type\textcolor{keyword}{>}(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01651}01651         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01652}01652 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01653}01653 \textcolor{preprocessor}{\#if defined(\_MANAGED)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01654}01654         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01655}01655         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{stringify}}( T\string^ \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01656}01656             return ::Catch::StringMaker<T\string^>::convert(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01657}01657         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01658}01658 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01659}01659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01660}01660     \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01661}01661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01662}01662     \textcolor{comment}{// Some predefined specializations}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01663}01663 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01664}01664     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01665}01665     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::string> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01666}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1string_01_4_ae065b2ecc5c1a6c4409cf06d604bd66d}{01666}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1string_01_4_ae065b2ecc5c1a6c4409cf06d604bd66d}{convert}}(\textcolor{keyword}{const} std::string\& str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01667}01667     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01668}01668 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01669}01669 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01670}01670     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01671}01671     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<\mbox{\hyperlink{namespacestd}{std}}::string\_view> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01672}01672         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::string\_view str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01673}01673     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01674}01674 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01675}01675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01676}01676     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01677}01677     \textcolor{keyword}{struct }StringMaker<char const *> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01678}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01const_01_5_01_4_a20813965ad59cdf6d1f874f47158432d}{01678}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01const_01_5_01_4_a20813965ad59cdf6d1f874f47158432d}{convert}}(\textcolor{keywordtype}{char} \textcolor{keyword}{const} * str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01679}01679     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01680}01680     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01681}01681     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<char *> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01682}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01_5_01_4_a33049e24281ea6fba48bd8817bdd52bd}{01682}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01_5_01_4_a33049e24281ea6fba48bd8817bdd52bd}{convert}}(\textcolor{keywordtype}{char} * str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01683}01683     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01684}01684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01685}01685 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_WCHAR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01686}01686     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01687}01687     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<\mbox{\hyperlink{namespacestd}{std}}::wstring> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01688}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1wstring_01_4_a375d49d6281bee4d36d853fa1bd5ebbd}{01688}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1wstring_01_4_a375d49d6281bee4d36d853fa1bd5ebbd}{convert}}(\textcolor{keyword}{const} std::wstring\& wstr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01689}01689     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01690}01690 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01691}01691 \textcolor{preprocessor}{\# ifdef CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01692}01692     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01693}01693     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<\mbox{\hyperlink{namespacestd}{std}}::wstring\_view> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01694}01694         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::wstring\_view str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01695}01695     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01696}01696 \textcolor{preprocessor}{\# endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01697}01697 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01698}01698     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01699}01699     \textcolor{keyword}{struct }StringMaker<wchar\_t const *> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01700}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01wchar__t_01const_01_5_01_4_ae7535a1f417ace45ca05e4389334ffeb}{01700}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01wchar__t_01const_01_5_01_4_ae7535a1f417ace45ca05e4389334ffeb}{convert}}(\textcolor{keywordtype}{wchar\_t} \textcolor{keyword}{const} * str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01701}01701     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01702}01702     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01703}01703     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<wchar\_t *> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01704}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01wchar__t_01_5_01_4_a6112fe324da2a0b3a690071a228ecd71}{01704}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01wchar__t_01_5_01_4_a6112fe324da2a0b3a690071a228ecd71}{convert}}(\textcolor{keywordtype}{wchar\_t} * str);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01705}01705     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01706}01706 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01707}01707 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01708}01708     \textcolor{comment}{// TBD: Should we use `strnlen` to ensure that we don't go out of the buffer,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01709}01709     \textcolor{comment}{//      while keeping string semantics?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01710}01710     \textcolor{keyword}{template}<\textcolor{keywordtype}{int} SZ>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01711}01711     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<char[SZ]> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01712}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_0f_s_z_0e_4_a095e415534f9145300271befe9853357}{01712}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_0f_s_z_0e_4_a095e415534f9145300271befe9853357}{convert}}(\textcolor{keywordtype}{char} \textcolor{keyword}{const}* str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01713}01713             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01714}01714         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01715}01715     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01716}01716     \textcolor{keyword}{template}<\textcolor{keywordtype}{int} SZ>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01717}01717     \textcolor{keyword}{struct }StringMaker<signed char[SZ]> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01718}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01signed_01char_0f_s_z_0e_4_a23ac689cc79dbcfe9b1765fe9e25690e}{01718}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01signed_01char_0f_s_z_0e_4_a23ac689cc79dbcfe9b1765fe9e25690e}{convert}}(\textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} \textcolor{keyword}{const}* str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01719}01719             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char} \textcolor{keyword}{const }*\textcolor{keyword}{>}(str) \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01720}01720         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01721}01721     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01722}01722     \textcolor{keyword}{template}<\textcolor{keywordtype}{int} SZ>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01723}01723     \textcolor{keyword}{struct }StringMaker<unsigned char[SZ]> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01724}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01char_0f_s_z_0e_4_a590d64c72b0cc75c113f1eea95d52b66}{01724}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01char_0f_s_z_0e_4_a590d64c72b0cc75c113f1eea95d52b66}{convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \textcolor{keyword}{const}* str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01725}01725             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char} \textcolor{keyword}{const }*\textcolor{keyword}{>}(str) \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01726}01726         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01727}01727     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01728}01728 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01729}01729 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_CPP17\_BYTE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01730}01730     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01731}01731     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::byte> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01732}01732         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::byte \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01733}01733     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01734}01734 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// defined(CATCH\_CONFIG\_CPP17\_BYTE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01735}01735     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01736}01736     \textcolor{keyword}{struct }StringMaker<int> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01737}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01int_01_4_aab096e55fb7283f6ad47b5ca277e22e8}{01737}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01int_01_4_aab096e55fb7283f6ad47b5ca277e22e8}{convert}}(\textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01738}01738     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01739}01739     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01740}01740     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<long> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01741}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01long_01_4_a1c0c56497813e7a6425c5411d5e66447}{01741}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01long_01_4_a1c0c56497813e7a6425c5411d5e66447}{convert}}(\textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01742}01742     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01743}01743     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01744}01744     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<long long> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01745}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01long_01long_01_4_a7a58929dca2a14c576d7d6d08bc615d2}{01745}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01long_01long_01_4_a7a58929dca2a14c576d7d6d08bc615d2}{convert}}(\textcolor{keywordtype}{long} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01746}01746     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01747}01747     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01748}01748     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<unsigned int> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01749}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01int_01_4_aa0ec816ef8a65664b0524d55d08e2fd9}{01749}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01int_01_4_aa0ec816ef8a65664b0524d55d08e2fd9}{convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01750}01750     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01751}01751     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01752}01752     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<unsigned long> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01753}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01long_01_4_ae105dc97e4462a86a61b59667f8423c9}{01753}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01long_01_4_ae105dc97e4462a86a61b59667f8423c9}{convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01754}01754     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01755}01755     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01756}01756     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<unsigned long long> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01757}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01long_01long_01_4_a6a8708af4fc8df3f52d7eab779b6bc6f}{01757}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01long_01long_01_4_a6a8708af4fc8df3f52d7eab779b6bc6f}{convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01758}01758     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01759}01759 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01760}01760     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01761}01761     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<bool> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01762}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01bool_01_4_a37e9899c82c4b4515f876f16f8957a77}{01762}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01bool_01_4_a37e9899c82c4b4515f876f16f8957a77}{convert}}(\textcolor{keywordtype}{bool} b);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01763}01763     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01764}01764 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01765}01765     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01766}01766     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<char> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01767}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01_4_a4e3db69a12bb83f3ef89251893e65da5}{01767}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01char_01_4_a4e3db69a12bb83f3ef89251893e65da5}{convert}}(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01768}01768     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01769}01769     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01770}01770     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<signed char> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01771}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01signed_01char_01_4_a5ec41f32916539dc90130539db8222cf}{01771}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01signed_01char_01_4_a5ec41f32916539dc90130539db8222cf}{convert}}(\textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01772}01772     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01773}01773     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01774}01774     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<unsigned char> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01775}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01char_01_4_a7cddb1df26275b9a8e631466eb122f59}{01775}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01unsigned_01char_01_4_a7cddb1df26275b9a8e631466eb122f59}{convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01776}01776     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01777}01777 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01778}01778     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01779}01779     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<\mbox{\hyperlink{namespacestd}{std}}::nullptr\_t> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01780}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1nullptr__t_01_4_a131fbb1f5cd68c93aaf30d34e3519e9c}{01780}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01std_1_1nullptr__t_01_4_a131fbb1f5cd68c93aaf30d34e3519e9c}{convert}}(std::nullptr\_t);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01781}01781     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01782}01782 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01783}01783     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01784}01784     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<float> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01785}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01float_01_4_a7ffacc6fa46a338200f3fbb2ee078648}{01785}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01float_01_4_a7ffacc6fa46a338200f3fbb2ee078648}{convert}}(\textcolor{keywordtype}{float} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01786}01786         \textcolor{keyword}{static} \textcolor{keywordtype}{int} precision;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01787}01787     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01788}01788 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01789}01789     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01790}01790     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<double> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01791}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01double_01_4_acaa61529acad2462292c747d34e5f3d2}{01791}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01double_01_4_acaa61529acad2462292c747d34e5f3d2}{convert}}(\textcolor{keywordtype}{double} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01792}01792         \textcolor{keyword}{static} \textcolor{keywordtype}{int} precision;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01793}01793     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01794}01794 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01795}01795     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01796}01796     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_string_maker}{StringMaker}}<T*> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01797}01797         \textcolor{keyword}{template} <\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01798}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_t_01_5_01_4_a2adbc75c99d71b8323f4052bcb0815c9}{01798}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_t_01_5_01_4_a2adbc75c99d71b8323f4052bcb0815c9}{convert}}(U* p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01799}01799             \textcolor{keywordflow}{if} (p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01800}01800                 \mbox{\hyperlink{namespace_catch_1_1_detail_a371620ed524abfcae5c3772bf49b563a}{return ::Catch::Detail::rawMemoryToString}}(p);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01801}01801             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01802}01802                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}nullptr"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01803}01803             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01804}01804         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01805}01805     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01806}01806 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01807}01807     \textcolor{keyword}{template} <\textcolor{keyword}{typename} R, \textcolor{keyword}{typename} C>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01808}01808     \textcolor{keyword}{struct }StringMaker<R C::*> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01809}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_r_01_c_1_1_5_01_4_af69c15e0b406e945777137fe4a333731}{01809}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_r_01_c_1_1_5_01_4_af69c15e0b406e945777137fe4a333731}{convert}}(R C::* p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01810}01810             \textcolor{keywordflow}{if} (p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01811}01811                 \mbox{\hyperlink{namespace_catch_1_1_detail_a371620ed524abfcae5c3772bf49b563a}{return ::Catch::Detail::rawMemoryToString}}(p);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01812}01812             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01813}01813                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}nullptr"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01814}01814             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01815}01815         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01816}01816     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01817}01817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01818}01818 \textcolor{preprocessor}{\#if defined(\_MANAGED)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01819}01819     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01820}01820     \textcolor{keyword}{struct }StringMaker<T\string^> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01821}01821         \textcolor{keyword}{static} std::string convert( T\string^ ref ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01822}01822             return ::Catch::Detail::clrReferenceToString(ref);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01823}01823         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01824}01824     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01825}01825 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01826}01826 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01827}01827     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01828}01828         \textcolor{keyword}{template}<\textcolor{keyword}{typename} InputIterator, \textcolor{keyword}{typename} Sentinel = InputIterator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01829}01829         std::string \mbox{\hyperlink{namespace_catch_1_1_detail_ac954cf158347a76a5b0c3f4fa9a9fa52}{rangeToString}}(InputIterator first, Sentinel last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01830}01830             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01831}01831             rss << \textcolor{stringliteral}{"{}\{ "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01832}01832             \textcolor{keywordflow}{if} (first != last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01833}01833                 rss << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(*first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01834}01834                 \textcolor{keywordflow}{for} (++first; first != last; ++first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01835}01835                     rss << \textcolor{stringliteral}{"{}, "{}} << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(*first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01836}01836             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01837}01837             rss << \textcolor{stringliteral}{"{} \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01838}01838             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01839}01839         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01840}01840     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01841}01841 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01842}01842 \textcolor{preprocessor}{\#ifdef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01843}01843     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01844}01844     \textcolor{keyword}{struct }StringMaker<NSString*> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01845}01845         \textcolor{keyword}{static} std::string convert(NSString * nsstring) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01846}01846             \textcolor{keywordflow}{if} (!nsstring)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01847}01847                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}nil"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01848}01848             \textcolor{keywordflow}{return} std::string(\textcolor{stringliteral}{"{}@"{}}) + [nsstring UTF8String];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01849}01849         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01850}01850     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01851}01851     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01852}01852     \textcolor{keyword}{struct }StringMaker<NSObject*> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01853}01853         \textcolor{keyword}{static} std::string convert(NSObject* nsObject) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01854}01854             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}([nsObject description]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01855}01855         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01856}01856 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01857}01857     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01858}01858     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01859}01859         \textcolor{keyword}{inline} std::string \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{stringify}}( NSString* nsstring ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01860}01860             \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<NSString*>::convert}}( nsstring );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01861}01861         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01862}01862 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01863}01863     \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01864}01864 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01865}01865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01866}01866 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01867}01867 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01869}01869 \textcolor{comment}{// Separate std-\/lib types stringification, so it can be selectively enabled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01870}01870 \textcolor{comment}{// This means that we do not bring in}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01871}01871 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01872}01872 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_ALL\_STRINGMAKERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01873}01873 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ENABLE\_PAIR\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01874}01874 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ENABLE\_TUPLE\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01875}01875 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ENABLE\_VARIANT\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01876}01876 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01877}01877 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_ENABLE\_OPTIONAL\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01878}01878 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01879}01879 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01880}01880 \textcolor{comment}{// Separate std::pair specialization}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01881}01881 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_PAIR\_STRINGMAKER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01882}01882 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01883}01883 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01884}01884     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T1, \textcolor{keyword}{typename} T2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01885}01885     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::pair<T1, T2> > \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01886}01886         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} std::pair<T1, T2>\& pair) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01887}01887             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01888}01888             rss << \textcolor{stringliteral}{"{}\{ "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01889}01889                 << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(pair.first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01890}01890                 << \textcolor{stringliteral}{"{}, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01891}01891                 << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(pair.second)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01892}01892                 << \textcolor{stringliteral}{"{} \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01893}01893             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01894}01894         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01895}01895     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01896}01896 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01897}01897 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_PAIR\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01898}01898 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01899}01899 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_OPTIONAL\_STRINGMAKER) \&\& defined(CATCH\_CONFIG\_CPP17\_OPTIONAL)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01900}01900 \textcolor{preprocessor}{\#include <optional>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01901}01901 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01902}01902     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01903}01903     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::optional<T> > \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01904}01904         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} std::optional<T>\& optional) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01905}01905             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01906}01906             \textcolor{keywordflow}{if} (optional.has\_value()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01907}01907                 rss << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(*optional);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01908}01908             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01909}01909                 rss << \textcolor{stringliteral}{"{}\{ \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01910}01910             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01911}01911             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01912}01912         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01913}01913     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01914}01914 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01915}01915 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_OPTIONAL\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01916}01916 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01917}01917 \textcolor{comment}{// Separate std::tuple specialization}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01918}01918 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_TUPLE\_STRINGMAKER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01919}01919 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01920}01920 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01921}01921     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01922}01922         \textcolor{keyword}{template}<}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01923}01923             \textcolor{keyword}{typename} Tuple,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01924}01924             std::size\_t N = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01925}01925             \textcolor{keywordtype}{bool} = (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{N < std::tuple\_size<Tuple>::value}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01926}01926             >}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01927}01927             \textcolor{keyword}{struct} TupleElementPrinter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01928}01928             \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{structprint}{print}}(\textcolor{keyword}{const} Tuple\& tuple, std::ostream\& os) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01929}01929                 os << (N ? \textcolor{stringliteral}{"{}, "{}} : \textcolor{stringliteral}{"{} "{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01930}01930                     << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(std::get<N>(tuple));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01931}01931                 TupleElementPrinter<Tuple, N + 1>::print(tuple, os);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01932}01932             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01933}01933         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01934}01934 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01935}01935         \textcolor{keyword}{template}<}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01936}01936             \textcolor{keyword}{typename} Tuple,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01937}01937             std::size\_t N}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01938}01938         >}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01939}01939             \textcolor{keyword}{struct }TupleElementPrinter<Tuple, N, false> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01940}01940             \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{structprint}{print}}(\textcolor{keyword}{const} Tuple\&, std::ostream\&) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01941}01941         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01942}01942 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01943}01943     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01944}01944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01945}01945     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ...Types>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01946}01946     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::tuple<Types...>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01947}01947         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} std::tuple<Types...>\& tuple) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01948}01948             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01949}01949             rss << \textcolor{charliteral}{'\{'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01950}01950             Detail::TupleElementPrinter<std::tuple<Types...>>\mbox{\hyperlink{structprint}{::print}}(tuple, rss.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01951}01951             rss << \textcolor{stringliteral}{"{} \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01952}01952             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01953}01953         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01954}01954     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01955}01955 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01956}01956 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_TUPLE\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01957}01957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01958}01958 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_VARIANT\_STRINGMAKER) \&\& defined(CATCH\_CONFIG\_CPP17\_VARIANT)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01959}01959 \textcolor{preprocessor}{\#include <variant>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01960}01960 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01961}01961     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01962}01962     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::monostate> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01963}01963         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} std::monostate\&) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01964}01964             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}\{ \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01965}01965         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01966}01966     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01967}01967 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01968}01968     \textcolor{keyword}{template}<\textcolor{keyword}{typename}... Elements>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01969}01969     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::variant<Elements...>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01970}01970         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(\textcolor{keyword}{const} std::variant<Elements...>\& variant) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01971}01971             \textcolor{keywordflow}{if} (variant.valueless\_by\_exception()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01972}01972                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}\{valueless variant\}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01973}01973             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01974}01974                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af1f6dd52b7ce14276ab5509700c6acf1}{std::visit}}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01975}01975                     [](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01976}01976                         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01977}01977                     \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01978}01978                     variant}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01979}01979                 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01980}01980             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01981}01981         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01982}01982     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01983}01983 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01984}01984 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_VARIANT\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01985}01985 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01986}01986 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01987}01987     \textcolor{comment}{// Import begin/ end from std here}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01988}01988     \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01989}01989     \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01990}01990 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01991}01991     \textcolor{keyword}{namespace }detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01992}01992         \textcolor{keyword}{template} <\textcolor{keyword}{typename}...>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01993}01993         \textcolor{keyword}{struct }void\_type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01994}\mbox{\hyperlink{struct_catch_1_1detail_1_1void__type_ae7ab54169b5452caa24063fef95adf02}{01994}}             \textcolor{keyword}{using }\mbox{\hyperlink{struct_catch_1_1detail_1_1void__type_ae7ab54169b5452caa24063fef95adf02}{type}} = void;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01995}01995         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01996}01996 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01997}01997         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} = \textcolor{keywordtype}{void}>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01998}01998         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1detail_1_1is__range__impl}{is\_range\_impl}} : std::false\_type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l01999}01999         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02000}02000 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02001}02001         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02002}02002         \textcolor{keyword}{struct }is\_range\_impl<T, typename void\_type<decltype(begin(std::declval<T>()))>::type> : std::true\_type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02003}02003         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02004}02004     \} \textcolor{comment}{// namespace detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02005}02005 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02006}02006     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02007}02007     \textcolor{keyword}{struct }is\_range : detail::is\_range\_impl<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02008}02008     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02009}02009 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02010}02010 \textcolor{preprocessor}{\#if defined(\_MANAGED) }\textcolor{comment}{// Managed types are never ranges}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02011}02011     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02012}02012     \textcolor{keyword}{struct }is\_range<T\string^> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02013}02013         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02014}02014     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02015}02015 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02016}02016 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02017}02017     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Range>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02018}02018     std::string \mbox{\hyperlink{namespace_catch_af13494e925a793e3e7143c6ce6f442c2}{rangeToString}}( Range \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02019}02019         \mbox{\hyperlink{namespace_catch_ae162dc66b7767a52e7e4283915fd3d9f}{return ::Catch::Detail::rangeToString}}( begin( \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}} ), end( \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02020}02020     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02021}02021 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02022}02022     \textcolor{comment}{// Handle vector<bool> specially}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02023}02023     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Allocator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02024}02024     std::string \mbox{\hyperlink{namespace_catch_af13494e925a793e3e7143c6ce6f442c2}{rangeToString}}( std::vector<bool, Allocator> \textcolor{keyword}{const}\& v ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02025}02025         ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02026}02026         rss << \textcolor{stringliteral}{"{}\{ "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02027}02027         \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02028}02028         \textcolor{keywordflow}{for}( \textcolor{keywordtype}{bool} b : v ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02029}02029             \textcolor{keywordflow}{if}( first )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02030}02030                 first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02031}02031             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02032}02032                 rss << \textcolor{stringliteral}{"{}, "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02033}02033             rss << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( b );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02034}02034         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02035}02035         rss << \textcolor{stringliteral}{"{} \}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02036}02036         \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02037}02037     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02038}02038 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02039}02039     \textcolor{keyword}{template}<\textcolor{keyword}{typename} R>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02040}02040     \textcolor{keyword}{struct }StringMaker<R, typename \mbox{\hyperlink{namespacestd}{std}}::enable\_if<is\_range<R>::value \&\& !::Catch::Detail::IsStreamInsertable<R>::value>::type> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02041}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_r_00_01typename_01std_1_1enable__if_3_01is__range_3_01_r_01_4536d8fedfff6d62432b3dc59b56e1380_ac6088db00103a7482fb9bc04b1603362}{02041}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_r_00_01typename_01std_1_1enable__if_3_01is__range_3_01_r_01_4536d8fedfff6d62432b3dc59b56e1380_ac6088db00103a7482fb9bc04b1603362}{convert}}( R \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02042}02042             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_af13494e925a793e3e7143c6ce6f442c2}{rangeToString}}( \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02043}02043         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02044}02044     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02045}02045 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02046}02046     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keywordtype}{int} SZ>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02047}02047     \textcolor{keyword}{struct }StringMaker<T[SZ]> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02048}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_t_0f_s_z_0e_4_a3698cea2c24d8649ec9ecb5fa679eeb7}{02048}}         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_t_0f_s_z_0e_4_a3698cea2c24d8649ec9ecb5fa679eeb7}{convert}}(T \textcolor{keyword}{const}(\&arr)[SZ]) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02049}02049             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_af13494e925a793e3e7143c6ce6f442c2}{rangeToString}}(arr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02050}02050         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02051}02051     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02052}02052 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02053}02053 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02054}02054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02055}02055 \textcolor{comment}{// Separate std::chrono::duration specialization}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02056}02056 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02057}02057 \textcolor{preprocessor}{\#include <ctime>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02058}02058 \textcolor{preprocessor}{\#include <ratio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02059}02059 \textcolor{preprocessor}{\#include <chrono>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02060}02060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02061}02061 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02062}02062 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02063}02063 \textcolor{keyword}{template} <\textcolor{keyword}{class} Ratio>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02064}02064 \textcolor{keyword}{struct }ratio\_string \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02065}02065     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02066}02066 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02067}02067 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02068}02068 \textcolor{keyword}{template} <\textcolor{keyword}{class} Ratio>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02069}02069 std::string ratio\_string<Ratio>::symbol() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02070}02070     \mbox{\hyperlink{class_catch_1_1_reusable_string_stream}{Catch::ReusableStringStream}} rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02071}02071     rss << \textcolor{charliteral}{'['} << Ratio::num << \textcolor{charliteral}{'/'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02072}02072         << Ratio::den << \textcolor{charliteral}{']'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02073}02073     \textcolor{keywordflow}{return} rss.\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02074}02074 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02075}02075 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02076}02076 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::atto> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02077}02077     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02078}02078 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02079}02079 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02080}02080 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::femto> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02081}02081     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02082}02082 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02083}02083 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02084}02084 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::pico> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02085}02085     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02086}02086 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02087}02087 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02088}02088 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::nano> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02089}02089     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02090}02090 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02091}02091 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02092}02092 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::micro> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02093}02093     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02094}02094 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02095}02095 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02096}02096 \textcolor{keyword}{struct }ratio\_string<\mbox{\hyperlink{namespacestd}{std}}::milli> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02097}02097     \textcolor{keyword}{static} std::string symbol();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02098}02098 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02099}02099 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02101}02101     \textcolor{comment}{// std::chrono::duration specializations}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02102}02102     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Value, \textcolor{keyword}{typename} Ratio>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02103}02103     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::duration<Value, Ratio>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02104}02104         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::duration<Value, Ratio> \textcolor{keyword}{const}\& duration) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02105}02105             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02106}02106             rss << duration.count() << \textcolor{charliteral}{' '} << ratio\_string<Ratio>::symbol() << \textcolor{charliteral}{'s'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02107}02107             \textcolor{keywordflow}{return} rss.\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02108}02108         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02109}02109     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02110}02110     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Value>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02111}02111     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::duration<Value, std::ratio<1>>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02112}02112         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::duration<Value, std::ratio<1>> \textcolor{keyword}{const}\& duration) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02113}02113             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02114}02114             rss << duration.count() << \textcolor{stringliteral}{"{} s"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02115}02115             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02116}02116         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02117}02117     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02118}02118     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Value>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02119}02119     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::duration<Value, std::ratio<60>>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02120}02120         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::duration<Value, std::ratio<60>> \textcolor{keyword}{const}\& duration) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02121}02121             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02122}02122             rss << duration.count() << \textcolor{stringliteral}{"{} m"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02123}02123             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02124}02124         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02125}02125     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02126}02126     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Value>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02127}02127     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::duration<Value, std::ratio<3600>>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02128}02128         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::duration<Value, std::ratio<3600>> \textcolor{keyword}{const}\& duration) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02129}02129             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02130}02130             rss << duration.count() << \textcolor{stringliteral}{"{} h"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02131}02131             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02132}02132         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02133}02133     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02134}02134 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02136}02136     \textcolor{comment}{// std::chrono::time\_point specialization}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02137}02137     \textcolor{comment}{// Generic time\_point cannot be specialized, only std::chrono::time\_point<system\_clock>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02138}02138     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02139}02139     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::time\_point<Clock, Duration>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02140}02140         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::time\_point<Clock, Duration> \textcolor{keyword}{const}\& time\_point) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02141}02141             \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(time\_point.time\_since\_epoch()) + \textcolor{stringliteral}{"{} since epoch"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02142}02142         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02143}02143     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02144}02144     \textcolor{comment}{// std::chrono::time\_point<system\_clock> specialization}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02145}02145     \textcolor{keyword}{template}<\textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02146}02146     \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespacestd}{std}}::chrono::time\_point<std::chrono::system\_clock, Duration>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02147}02147         \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{convert}}(std::chrono::time\_point<std::chrono::system\_clock, Duration> \textcolor{keyword}{const}\& time\_point) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02148}02148             \textcolor{keyword}{auto} converted = std::chrono::system\_clock::to\_time\_t(time\_point);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02149}02149 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02150}02150 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02151}02151             std::tm timeInfo = \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02152}02152             gmtime\_s(\&timeInfo, \&converted);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02153}02153 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02154}02154             std::tm* timeInfo = std::gmtime(\&converted);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02155}02155 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02156}02156 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02157}02157             \textcolor{keyword}{auto} \textcolor{keyword}{const} timeStampSize = \textcolor{keyword}{sizeof}(\textcolor{stringliteral}{"{}2017-\/01-\/16T17:06:45Z"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02158}02158             \textcolor{keywordtype}{char} timeStamp[timeStampSize];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02159}02159             \textcolor{keyword}{const} \textcolor{keywordtype}{char} * \textcolor{keyword}{const} fmt = \textcolor{stringliteral}{"{}\%Y-\/\%m-\/\%dT\%H:\%M:\%SZ"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02160}02160 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02161}02161 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02162}02162             std::strftime(timeStamp, timeStampSize, fmt, \&timeInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02163}02163 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02164}02164             std::strftime(timeStamp, timeStampSize, fmt, timeInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02165}02165 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02166}02166             \textcolor{keywordflow}{return} std::string(timeStamp);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02167}02167         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02168}02168     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02169}02169 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02170}02170 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02171}02171 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02172}\mbox{\hyperlink{catch2_2catch_8hpp_a1c3c601bf24488800bdf3f634a2a6b11}{02172}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REGISTER\_ENUM( enumName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02173}02173 \textcolor{preprocessor}{namespace Catch \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02174}02174 \textcolor{preprocessor}{    template<> struct StringMaker<enumName> \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02175}02175 \textcolor{preprocessor}{        static std::string convert( enumName value ) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02176}02176 \textcolor{preprocessor}{            static const auto\& enumInfo = ::Catch::getMutableRegistryHub().getMutableEnumValuesRegistry().registerEnum( \#enumName, \#\_\_VA\_ARGS\_\_, \{ \_\_VA\_ARGS\_\_ \} ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02177}02177 \textcolor{preprocessor}{            return static\_cast<std::string>(enumInfo.lookup( static\_cast<int>( value ) )); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02178}02178 \textcolor{preprocessor}{        \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02179}02179 \textcolor{preprocessor}{    \}; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02180}02180 \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02181}02181 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02182}\mbox{\hyperlink{catch2_2catch_8hpp_a3063d7b316c984044916079ab8b7dad6}{02182}} \textcolor{preprocessor}{\#define CATCH\_REGISTER\_ENUM( enumName, ... ) INTERNAL\_CATCH\_REGISTER\_ENUM( enumName, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02183}02183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02184}02184 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02185}02185 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02186}02186 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02187}02187 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02188}02188 \textcolor{comment}{// end catch\_tostring.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02189}02189 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02190}02190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02191}02191 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02192}02192 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02193}02193 \textcolor{preprocessor}{\#pragma warning(disable:4389) }\textcolor{comment}{// '==' : signed/unsigned mismatch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02194}02194 \textcolor{preprocessor}{\#pragma warning(disable:4018) }\textcolor{comment}{// more "{}signed/unsigned mismatch"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02195}02195 \textcolor{preprocessor}{\#pragma warning(disable:4312) }\textcolor{comment}{// Converting int to T* using reinterpret\_cast (issue on x64 platform)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02196}02196 \textcolor{preprocessor}{\#pragma warning(disable:4180) }\textcolor{comment}{// qualifier applied to function type has no meaning}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02197}02197 \textcolor{preprocessor}{\#pragma warning(disable:4800) }\textcolor{comment}{// Forcing result to true or false}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02198}02198 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02199}02199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02200}02200 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02201}02201 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02202}02202     \textcolor{keyword}{struct }ITransientExpression \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02203}\mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a3b436e13a0a6d3522bbf70d4e31deb22}{02203}}         \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a3b436e13a0a6d3522bbf70d4e31deb22}{isBinaryExpression}}() const -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a75ce48da824d514d08152d396abb28d8}{m\_isBinaryExpression}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02204}\mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a101c7db86c87eff93a8ff496720e6320}{02204}}         \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a101c7db86c87eff93a8ff496720e6320}{getResult}}() const -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a4646e2b5e0156e913653ec3b9b60c942}{m\_result}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02205}\mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aabe1889df9c6e639a24afb08d8a0fe9e}{02205}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aabe1889df9c6e639a24afb08d8a0fe9e}{streamReconstructedExpression}}( std::ostream \&os ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02206}02206 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02207}\mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aafe69572b7ed884e63ec81f58d4afd8c}{02207}}         \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aafe69572b7ed884e63ec81f58d4afd8c}{ITransientExpression}}( \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a3b436e13a0a6d3522bbf70d4e31deb22}{isBinaryExpression}}, \textcolor{keywordtype}{bool} result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02208}02208         :   \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a75ce48da824d514d08152d396abb28d8}{m\_isBinaryExpression}}( \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a3b436e13a0a6d3522bbf70d4e31deb22}{isBinaryExpression}} ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02209}02209             \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a4646e2b5e0156e913653ec3b9b60c942}{m\_result}}( result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02210}02210         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02211}02211 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02212}02212         \textcolor{comment}{// We don't actually need a virtual destructor, but many static analysers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02213}02213         \textcolor{comment}{// complain if it's not here :-\/(}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02214}\mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aeadf426de589938c4964fe4068eeee77}{02214}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aeadf426de589938c4964fe4068eeee77}{\string~ITransientExpression}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02215}02215 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02216}02216         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a75ce48da824d514d08152d396abb28d8}{m\_isBinaryExpression}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02217}02217         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_a4646e2b5e0156e913653ec3b9b60c942}{m\_result}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02218}02218 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02219}02219     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02220}02220 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02221}02221     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a520110c31f26cf9892595772ab814fc0}{formatReconstructedExpression}}( std::ostream \&os, std::string \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} op, std::string \textcolor{keyword}{const}\& rhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02222}02222 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02223}02223     \textcolor{keyword}{template}<\textcolor{keyword}{typename} LhsT, \textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02224}02224     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr}}  : \textcolor{keyword}{public} \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02225}02225         LhsT m\_lhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02226}02226         \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} m\_op;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02227}02227         RhsT m\_rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02228}02228 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02229}02229         \textcolor{keywordtype}{void} streamReconstructedExpression( std::ostream \&os )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02230}02230             \mbox{\hyperlink{namespace_catch_a520110c31f26cf9892595772ab814fc0}{formatReconstructedExpression}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02231}02231                     ( os, \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( m\_lhs ), m\_op, \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( m\_rhs ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02232}02232         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02233}02233 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02234}02234     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02235}\mbox{\hyperlink{class_catch_1_1_binary_expr_a657d66346aef97a760c22776fe6008b6}{02235}}         \mbox{\hyperlink{class_catch_1_1_binary_expr_a657d66346aef97a760c22776fe6008b6}{BinaryExpr}}( \textcolor{keywordtype}{bool} comparisonResult, LhsT lhs, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} op, RhsT rhs )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02236}02236         :   \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}}\{ true, comparisonResult \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02237}02237             m\_lhs( lhs ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02238}02238             m\_op( op ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02239}02239             m\_rhs( rhs )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02240}02240         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02241}02241 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02242}02242         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02243}\mbox{\hyperlink{class_catch_1_1_binary_expr_ae4fba62be6063010bc33d0988ff7d8d5}{02243}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_ae4fba62be6063010bc33d0988ff7d8d5}{operator \&\& }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02244}02244             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02245}02245             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02246}02246             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02247}02247         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02248}02248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02249}02249         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02250}\mbox{\hyperlink{class_catch_1_1_binary_expr_a331e53968b1a2f92827c35721cc7eded}{02250}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_a331e53968b1a2f92827c35721cc7eded}{operator || }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02251}02251             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02252}02252             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02253}02253             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02254}02254         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02255}02255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02256}02256         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02257}\mbox{\hyperlink{class_catch_1_1_binary_expr_a245bffd2aab2f560814739986710aaf1}{02257}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_a245bffd2aab2f560814739986710aaf1}{operator == }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02258}02258             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02259}02259             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02260}02260             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02261}02261         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02262}02262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02263}02263         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02264}\mbox{\hyperlink{class_catch_1_1_binary_expr_ad06dd2c9fc1dd77fe8d8e51440c14ff6}{02264}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_ad06dd2c9fc1dd77fe8d8e51440c14ff6}{operator != }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02265}02265             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02266}02266             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02267}02267             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02268}02268         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02269}02269 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02270}02270         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02271}\mbox{\hyperlink{class_catch_1_1_binary_expr_acff324c7d285cbee7efa9fbe83955638}{02271}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_acff324c7d285cbee7efa9fbe83955638}{operator > }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02272}02272             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02273}02273             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02274}02274             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02275}02275         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02276}02276 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02277}02277         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02278}\mbox{\hyperlink{class_catch_1_1_binary_expr_a7e6c3dcf59b3cd51e7c82355da3ef451}{02278}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_a7e6c3dcf59b3cd51e7c82355da3ef451}{operator < }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02279}02279             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02280}02280             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02281}02281             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02282}02282         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02283}02283 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02284}02284         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02285}\mbox{\hyperlink{class_catch_1_1_binary_expr_a67901ddb9afd83961fb4e65ea3d75050}{02285}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_a67901ddb9afd83961fb4e65ea3d75050}{operator >= }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02286}02286             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02287}02287             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02288}02288             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02289}02289         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02290}02290 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02291}02291         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02292}\mbox{\hyperlink{class_catch_1_1_binary_expr_a5590a2c5f5074ca2509c09b92bfcdf57}{02292}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_binary_expr_a5590a2c5f5074ca2509c09b92bfcdf57}{operator <= }}( T ) \textcolor{keyword}{const} -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02293}02293             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02294}02294             \textcolor{stringliteral}{"{}chained comparisons are not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02295}02295             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02296}02296         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02297}02297     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02298}02298 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02299}02299     \textcolor{keyword}{template}<\textcolor{keyword}{typename} LhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02300}02300     \textcolor{keyword}{class }UnaryExpr : \textcolor{keyword}{public} ITransientExpression \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02301}02301         LhsT m\_lhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02302}02302 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02303}02303         \textcolor{keywordtype}{void} streamReconstructedExpression( std::ostream \&os )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02304}02304             os << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( m\_lhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02305}02305         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02306}02306 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02307}02307     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02308}\mbox{\hyperlink{class_catch_1_1_unary_expr_ae02f666a1e64da728628aa2033e1d6e7}{02308}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_unary_expr_ae02f666a1e64da728628aa2033e1d6e7}{UnaryExpr}}( LhsT lhs )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02309}02309         :   \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}}\{ false, static\_cast<bool>(lhs) \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02310}02310             m\_lhs( lhs )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02311}02311         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02312}02312     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02313}02313 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02314}02314     \textcolor{comment}{// Specialised comparison functions to handle equality comparisons between ints and pointers (NULL deduces as an int)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02315}02315     \textcolor{keyword}{template}<\textcolor{keyword}{typename} LhsT, \textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02316}02316     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( LhsT \textcolor{keyword}{const}\& lhs, RhsT \textcolor{keyword}{const}\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(lhs == rhs); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02317}02317     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02318}02318     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( T* \textcolor{keyword}{const}\& lhs, \textcolor{keywordtype}{int} rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} lhs == \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( rhs ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02319}02319     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02320}02320     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( T* \textcolor{keyword}{const}\& lhs, \textcolor{keywordtype}{long} rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} lhs == \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( rhs ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02321}02321     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02322}02322     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( \textcolor{keywordtype}{int} lhs, T* \textcolor{keyword}{const}\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( lhs ) == rhs; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02323}02323     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02324}02324     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( \textcolor{keywordtype}{long} lhs, T* \textcolor{keyword}{const}\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( lhs ) == rhs; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02325}02325 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02326}02326     \textcolor{keyword}{template}<\textcolor{keyword}{typename} LhsT, \textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02327}02327     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( LhsT \textcolor{keyword}{const}\& lhs, RhsT\&\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(lhs != rhs); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02328}02328     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02329}02329     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( T* \textcolor{keyword}{const}\& lhs, \textcolor{keywordtype}{int} rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} lhs != \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( rhs ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02330}02330     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02331}02331     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( T* \textcolor{keyword}{const}\& lhs, \textcolor{keywordtype}{long} rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} lhs != \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( rhs ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02332}02332     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02333}02333     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( \textcolor{keywordtype}{int} lhs, T* \textcolor{keyword}{const}\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( lhs ) != rhs; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02334}02334     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02335}02335     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( \textcolor{keywordtype}{long} lhs, T* \textcolor{keyword}{const}\& rhs ) -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{void} const*\textcolor{keyword}{>}( lhs ) != rhs; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02336}02336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02337}02337     \textcolor{keyword}{template}<\textcolor{keyword}{typename} LhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02338}02338     \textcolor{keyword}{class }ExprLhs \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02339}02339         LhsT m\_lhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02340}02340     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02341}\mbox{\hyperlink{class_catch_1_1_expr_lhs_ad22c6af1a7d6993240624d299714a479}{02341}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_expr_lhs_ad22c6af1a7d6993240624d299714a479}{ExprLhs}}( LhsT lhs ) : m\_lhs( lhs ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02342}02342 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02343}02343         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02344}\mbox{\hyperlink{class_catch_1_1_expr_lhs_af218aaf7b5b0a0ebb6b3697f2c89893d}{02344}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_af218aaf7b5b0a0ebb6b3697f2c89893d}{operator == }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02345}02345             \textcolor{keywordflow}{return} \{ \mbox{\hyperlink{namespace_catch_af89b8df30cfaf09abd048c6ff67359ee}{compareEqual}}( m\_lhs, rhs ), m\_lhs, \textcolor{stringliteral}{"{}=="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02346}02346         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02347}\mbox{\hyperlink{class_catch_1_1_expr_lhs_ab707a84abdffbdc35962a495e238d393}{02347}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_af218aaf7b5b0a0ebb6b3697f2c89893d}{operator == }}( \textcolor{keywordtype}{bool} rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, bool>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02348}02348             \textcolor{keywordflow}{return} \{ m\_lhs == rhs, m\_lhs, \textcolor{stringliteral}{"{}=="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02349}02349         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02350}02350 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02351}02351         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02352}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a2d660580c0a8e6bb24b65a4b5364b5b1}{02352}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a2d660580c0a8e6bb24b65a4b5364b5b1}{operator != }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02353}02353             \textcolor{keywordflow}{return} \{ \mbox{\hyperlink{namespace_catch_a8bec217f5ef5f09c17074c311c958f3c}{compareNotEqual}}( m\_lhs, rhs ), m\_lhs, \textcolor{stringliteral}{"{}!="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02354}02354         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02355}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a60eca847201d057d8a8b7222c69b619c}{02355}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a2d660580c0a8e6bb24b65a4b5364b5b1}{operator != }}( \textcolor{keywordtype}{bool} rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, bool>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02356}02356             \textcolor{keywordflow}{return} \{ m\_lhs != rhs, m\_lhs, \textcolor{stringliteral}{"{}!="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02357}02357         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02358}02358 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02359}02359         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02360}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a7f9d22b7ef87375af7a2583c9643a0f4}{02360}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a7f9d22b7ef87375af7a2583c9643a0f4}{operator > }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02361}02361             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs > rhs), m\_lhs, \textcolor{stringliteral}{"{}>"{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02362}02362         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02363}02363         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02364}\mbox{\hyperlink{class_catch_1_1_expr_lhs_afd1ce21cb0be233a63cbdd7724adffea}{02364}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_afd1ce21cb0be233a63cbdd7724adffea}{operator < }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02365}02365             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs < rhs), m\_lhs, \textcolor{stringliteral}{"{}<"{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02366}02366         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02367}02367         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02368}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a5ab1a2e91533a8b66a5d2e70774f6793}{02368}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a5ab1a2e91533a8b66a5d2e70774f6793}{operator >= }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02369}02369             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs >= rhs), m\_lhs, \textcolor{stringliteral}{"{}>="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02370}02370         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02371}02371         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02372}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a918090c28bee54222730159b56240af1}{02372}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a918090c28bee54222730159b56240af1}{operator <= }}( RhsT \textcolor{keyword}{const}\& rhs ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02373}02373             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs <= rhs), m\_lhs, \textcolor{stringliteral}{"{}<="{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02374}02374         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02375}02375         \textcolor{keyword}{template} <\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02376}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a52358a7cbaf47578ff436a378ac818c6}{02376}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a52358a7cbaf47578ff436a378ac818c6}{operator | }}(RhsT \textcolor{keyword}{const}\& rhs) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02377}02377             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs | rhs), m\_lhs, \textcolor{stringliteral}{"{}|"{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02378}02378         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02379}02379         \textcolor{keyword}{template} <\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02380}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a39bc6a4687580e5fef174cae9b573283}{02380}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a39bc6a4687580e5fef174cae9b573283}{operator \& }}(RhsT \textcolor{keyword}{const}\& rhs) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02381}02381             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs \& rhs), m\_lhs, \textcolor{stringliteral}{"{}\&"{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02382}02382         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02383}02383         \textcolor{keyword}{template} <\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02384}\mbox{\hyperlink{class_catch_1_1_expr_lhs_a904664f51bf478b41b12ac6cb3e1ec23}{02384}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_a904664f51bf478b41b12ac6cb3e1ec23}{operator \string^ }}(RhsT \textcolor{keyword}{const}\& rhs) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02385}02385             \textcolor{keywordflow}{return} \{ \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{bool}\textcolor{keyword}{>}(m\_lhs \string^ rhs), m\_lhs, \textcolor{stringliteral}{"{}\string^"{}}, rhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02386}02386         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02387}02387 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02388}02388         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02389}\mbox{\hyperlink{class_catch_1_1_expr_lhs_ad85684f7b02a98eb1b5d03d4cbd8284b}{02389}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_ad85684f7b02a98eb1b5d03d4cbd8284b}{operator \&\& }}( RhsT \textcolor{keyword}{const}\& ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02390}02390             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<RhsT>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02391}02391             \textcolor{stringliteral}{"{}operator\&\& is not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02392}02392             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02393}02393         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02394}02394 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02395}02395         \textcolor{keyword}{template}<\textcolor{keyword}{typename} RhsT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02396}\mbox{\hyperlink{class_catch_1_1_expr_lhs_ae9b4ee923b90af22c9e39261c2f03cd3}{02396}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_ae9b4ee923b90af22c9e39261c2f03cd3}{operator || }}( RhsT \textcolor{keyword}{const}\& ) -\/> \mbox{\hyperlink{class_catch_1_1_binary_expr}{BinaryExpr<LhsT, RhsT const\&>}} \textcolor{keyword}{const} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02397}02397             \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{struct_catch_1_1always__false}{always\_false<RhsT>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02398}02398             \textcolor{stringliteral}{"{}operator|| is not supported inside assertions, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02399}02399             \textcolor{stringliteral}{"{}wrap the expression inside parentheses, or decompose it"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02400}02400         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02401}02401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02402}\mbox{\hyperlink{class_catch_1_1_expr_lhs_ab68bd6d5d3ae21b7fba9010150fba95d}{02402}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_expr_lhs_ab68bd6d5d3ae21b7fba9010150fba95d}{makeUnaryExpr}}() const -\/> \mbox{\hyperlink{class_catch_1_1_unary_expr}{UnaryExpr}}<LhsT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02403}02403             \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_unary_expr}{UnaryExpr<LhsT>}}\{ m\_lhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02404}02404         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02405}02405     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02406}02406 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02407}02407     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a65af25091f2ab61056e166765963e525}{handleExpression}}( ITransientExpression \textcolor{keyword}{const}\& expr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02408}02408 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02409}02409     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02410}02410     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a65af25091f2ab61056e166765963e525}{handleExpression}}( ExprLhs<T> \textcolor{keyword}{const}\& expr ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02411}02411         \mbox{\hyperlink{namespace_catch_a65af25091f2ab61056e166765963e525}{handleExpression}}( expr.makeUnaryExpr() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02412}02412     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02413}02413 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02414}02414     \textcolor{keyword}{struct }Decomposer \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02415}02415         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02416}\mbox{\hyperlink{struct_catch_1_1_decomposer_a4b1e5e844c20e5a90e3d759d216674cd}{02416}}         \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_decomposer_a4b1e5e844c20e5a90e3d759d216674cd}{operator <= }}( T \textcolor{keyword}{const}\& lhs ) -\/> \mbox{\hyperlink{class_catch_1_1_expr_lhs}{ExprLhs<T const\&>}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02417}02417             \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_expr_lhs}{ExprLhs<T const\&>}}\{ lhs \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02418}02418         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02419}02419 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02420}\mbox{\hyperlink{struct_catch_1_1_decomposer_aac129b94903ae1339d5709049d83613b}{02420}}         \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_decomposer_a4b1e5e844c20e5a90e3d759d216674cd}{operator <=}}( \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) -\/> \mbox{\hyperlink{class_catch_1_1_expr_lhs}{ExprLhs<bool>}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02421}02421             \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_expr_lhs}{ExprLhs<bool>}}\{ \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02422}02422         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02423}02423     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02424}02424 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02425}02425 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02426}02426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02427}02427 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02428}02428 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02429}02429 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02430}02430 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02431}02431 \textcolor{comment}{// end catch\_decomposer.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02432}02432 \textcolor{comment}{// start catch\_interfaces\_capture.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02433}02433 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02434}02434 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02435}02435 \textcolor{preprocessor}{\#include <chrono>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02436}02436 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02437}02437 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02438}02438 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02439}02439     \textcolor{keyword}{class }AssertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02440}02440     \textcolor{keyword}{struct }AssertionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02441}02441     \textcolor{keyword}{struct }SectionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02442}02442     \textcolor{keyword}{struct }SectionEndInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02443}02443     \textcolor{keyword}{struct }MessageInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02444}02444     \textcolor{keyword}{struct }MessageBuilder;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02445}02445     \textcolor{keyword}{struct }Counts;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02446}02446     \textcolor{keyword}{struct }AssertionReaction;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02447}02447     \textcolor{keyword}{struct }SourceLineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02448}02448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02449}02449     \textcolor{keyword}{struct }ITransientExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02450}02450     \textcolor{keyword}{struct }IGeneratorTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02451}02451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02452}02452 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02453}02453     \textcolor{keyword}{struct }BenchmarkInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02454}02454     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration = std::chrono::duration<\textcolor{keywordtype}{double}, std::nano>>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02455}02455     \textcolor{keyword}{struct }BenchmarkStats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02456}02456 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02457}02457 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02458}02458     \textcolor{keyword}{struct }IResultCapture \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02459}02459 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02460}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a3bd16719d6772b7470887fc36c6d0808}{02460}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a3bd16719d6772b7470887fc36c6d0808}{\string~IResultCapture}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02461}02461 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02462}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a5b76ed52badcb64cf374202e12b81a03}{02462}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a5b76ed52badcb64cf374202e12b81a03}{sectionStarted}}(    \mbox{\hyperlink{struct_catch_1_1_section_info}{SectionInfo}} \textcolor{keyword}{const}\& sectionInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02463}02463                                         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}}\& assertions ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02464}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a4e152bc43dc0933684e31fa67a58195d}{02464}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a4e152bc43dc0933684e31fa67a58195d}{sectionEnded}}( \mbox{\hyperlink{struct_catch_1_1_section_end_info}{SectionEndInfo}} \textcolor{keyword}{const}\& endInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02465}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_afcc71eef8ca821ae132cced4a2be6988}{02465}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_afcc71eef8ca821ae132cced4a2be6988}{sectionEndedEarly}}( \mbox{\hyperlink{struct_catch_1_1_section_end_info}{SectionEndInfo}} \textcolor{keyword}{const}\& endInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02466}02466 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02467}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a8f93a848e0a48b630ca9ecbf225e4817}{02467}}         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a8f93a848e0a48b630ca9ecbf225e4817}{acquireGeneratorTracker}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} generatorName, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo ) -\/> \mbox{\hyperlink{struct_catch_1_1_i_generator_tracker}{IGeneratorTracker}}\& = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02468}02468 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02469}02469 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02470}02470         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkPreparing( std::string \textcolor{keyword}{const}\& name ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02471}02471         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& info ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02472}02472         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& stats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02473}02473         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkFailed( std::string \textcolor{keyword}{const}\& error ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02474}02474 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02475}02475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02476}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a91d154c1e087e383dcde5aad95cb6a05}{02476}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a91d154c1e087e383dcde5aad95cb6a05}{pushScopedMessage}}( \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} \textcolor{keyword}{const}\& message ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02477}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a42bcb13276706bf8c3ce081ce16d37fd}{02477}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a42bcb13276706bf8c3ce081ce16d37fd}{popScopedMessage}}( \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} \textcolor{keyword}{const}\& message ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02478}02478 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02479}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a49f74f1323ef8be71b8f9b8e8b2c0fc2}{02479}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a49f74f1323ef8be71b8f9b8e8b2c0fc2}{emplaceUnscopedMessage}}( \mbox{\hyperlink{struct_catch_1_1_message_builder}{MessageBuilder}} \textcolor{keyword}{const}\& builder ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02480}02480 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02481}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a48559e6598ba9474b903697b69c769b2}{02481}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a48559e6598ba9474b903697b69c769b2}{handleFatalErrorCondition}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} message ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02482}02482 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02483}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a59a2b05391e464954575d2afb6d5d607}{02483}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a59a2b05391e464954575d2afb6d5d607}{handleExpr}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02484}02484                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02485}02485                     \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}} \textcolor{keyword}{const}\& expr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02486}02486                     \mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}}\& reaction ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02487}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a21788ebc64571abf322b80c8cc51794d}{02487}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a21788ebc64571abf322b80c8cc51794d}{handleMessage}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02488}02488                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02489}02489                     \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02490}02490                     \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02491}02491                     \mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}}\& reaction ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02492}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a6382ed20486e2d9a020da971c6d5c53d}{02492}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a6382ed20486e2d9a020da971c6d5c53d}{handleUnexpectedExceptionNotThrown}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02493}02493                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02494}02494                     \mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}}\& reaction ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02495}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_afc97bc69829185222f955ebeef97adfe}{02495}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_afc97bc69829185222f955ebeef97adfe}{handleUnexpectedInflightException}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02496}02496                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02497}02497                     std::string \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02498}02498                     \mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}}\& reaction ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02499}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a89b89372eb09cc44f8dcad363de6157d}{02499}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a89b89372eb09cc44f8dcad363de6157d}{handleIncomplete}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02500}02500                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const}\& info ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02501}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_ab7dbdf8aa28427119583e24dbb302c63}{02501}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_ab7dbdf8aa28427119583e24dbb302c63}{handleNonExpr}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02502}02502                 (   \mbox{\hyperlink{struct_catch_1_1_assertion_info}{AssertionInfo}} \textcolor{keyword}{const} \&info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02503}02503                     \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02504}02504                     \mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}} \&reaction ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02505}02505 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02506}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a973435fbdcb2f6f07a0ec5719a01e956}{02506}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a973435fbdcb2f6f07a0ec5719a01e956}{lastAssertionPassed}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02507}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a9b0ef2cb071e9a9dc6ec1b533026aea7}{02507}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a9b0ef2cb071e9a9dc6ec1b533026aea7}{assertionPassed}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02508}02508 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02509}02509         \textcolor{comment}{// Deprecated, do not use:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02510}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_aea1617f4a84cc648246aa3ed6918b5bf}{02510}}         \textcolor{keyword}{virtual} std::string \mbox{\hyperlink{struct_catch_1_1_i_result_capture_aea1617f4a84cc648246aa3ed6918b5bf}{getCurrentTestName}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02511}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a2f44f3fa0bb898ce1aef650c1e063cc9}{02511}}         \textcolor{keyword}{virtual} \textcolor{keyword}{const} AssertionResult* \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a2f44f3fa0bb898ce1aef650c1e063cc9}{getLastResult}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02512}\mbox{\hyperlink{struct_catch_1_1_i_result_capture_ae63ecec95db4c236c63ecf616f483810}{02512}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_result_capture_ae63ecec95db4c236c63ecf616f483810}{exceptionEarlyReported}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02513}02513     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02514}02514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02515}02515     \mbox{\hyperlink{struct_catch_1_1_i_result_capture}{IResultCapture}}\& \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02516}02516 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02517}02517 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02518}02518 \textcolor{comment}{// end catch\_interfaces\_capture.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02519}02519 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02520}02520 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02521}02521     \textcolor{keyword}{struct }TestFailureException\{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02522}02522     \textcolor{keyword}{struct }AssertionResultData;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02523}02523     \textcolor{keyword}{struct }IResultCapture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02524}02524     \textcolor{keyword}{class }RunContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02525}02525 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02526}02526     \textcolor{keyword}{class }LazyExpression \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02527}02527         \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_lazy_expression_aff20a67b8485fd4382191e638360c907}{AssertionHandler}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02528}02528         \textcolor{keyword}{friend} \textcolor{keyword}{struct }\mbox{\hyperlink{class_catch_1_1_lazy_expression_aaebeae6c9db91b5c4f066e2681a8fd04}{AssertionStats}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02529}02529         \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_lazy_expression_a8ddee68e111eb70d3e0ab0ae81087022}{RunContext}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02530}02530 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02531}02531         ITransientExpression \textcolor{keyword}{const}* m\_transientExpression = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02532}02532         \textcolor{keywordtype}{bool} m\_isNegated;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02533}02533     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02534}\mbox{\hyperlink{class_catch_1_1_lazy_expression_a47186c2487bd4bf871e870ba8048553a}{02534}}         \mbox{\hyperlink{class_catch_1_1_lazy_expression_a47186c2487bd4bf871e870ba8048553a}{LazyExpression}}( \textcolor{keywordtype}{bool} isNegated );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02535}\mbox{\hyperlink{class_catch_1_1_lazy_expression_ab82d5e94df0e159b018fbde0170e46f8}{02535}}         \mbox{\hyperlink{class_catch_1_1_lazy_expression_ab82d5e94df0e159b018fbde0170e46f8}{LazyExpression}}( \mbox{\hyperlink{class_catch_1_1_lazy_expression}{LazyExpression}} \textcolor{keyword}{const}\& other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02536}\mbox{\hyperlink{class_catch_1_1_lazy_expression_a1b080e25fdfdecbc3e475d0e96cf0fd4}{02536}}         \mbox{\hyperlink{class_catch_1_1_lazy_expression}{LazyExpression}}\& \mbox{\hyperlink{class_catch_1_1_lazy_expression_a1b080e25fdfdecbc3e475d0e96cf0fd4}{operator = }}( \mbox{\hyperlink{class_catch_1_1_lazy_expression}{LazyExpression}} \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02537}02537 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02538}\mbox{\hyperlink{class_catch_1_1_lazy_expression_acdb846cb230cecfc6aca7a925b31fbca}{02538}}         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02539}02539 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02540}\mbox{\hyperlink{class_catch_1_1_lazy_expression_aa01086581cab2fcd2d4580b8fa787dfc}{02540}}         \textcolor{keyword}{friend} \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_lazy_expression_aa01086581cab2fcd2d4580b8fa787dfc}{operator << }}( std::ostream\& os, \mbox{\hyperlink{class_catch_1_1_lazy_expression}{LazyExpression}} \textcolor{keyword}{const}\& lazyExpr ) -\/> std::ostream\&;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02541}02541     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02542}02542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02543}02543     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_assertion_reaction}{AssertionReaction}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02544}02544         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_assertion_reaction_adcf30fb90ff20d9789df78d424652497}{shouldDebugBreak}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02545}02545         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_assertion_reaction_a82c8d95a2c1b6a331bde66982a8e090f}{shouldThrow}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02546}02546     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02547}02547 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02548}02548     \textcolor{keyword}{class }AssertionHandler \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02549}02549         AssertionInfo m\_assertionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02550}02550         AssertionReaction m\_reaction;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02551}02551         \textcolor{keywordtype}{bool} m\_completed = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02552}02552         IResultCapture\& m\_resultCapture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02553}02553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02554}02554     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02555}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a32efbb1b56b71d758d4c2094bac1f1a9}{02555}}         \mbox{\hyperlink{class_catch_1_1_assertion_handler_a32efbb1b56b71d758d4c2094bac1f1a9}{AssertionHandler}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02556}02556             (   \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02557}02557                 \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02558}02558                 \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} capturedExpression,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02559}02559                 \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} resultDisposition );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02560}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a1e839d810f6ac0fa6d127fe8350175ed}{02560}}         \mbox{\hyperlink{class_catch_1_1_assertion_handler_a1e839d810f6ac0fa6d127fe8350175ed}{\string~AssertionHandler}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02561}02561             \textcolor{keywordflow}{if} ( !m\_completed ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02562}02562                 m\_resultCapture.handleIncomplete( m\_assertionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02563}02563             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02564}02564         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02565}02565 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02566}02566         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02567}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a2ef387e567bad90ec6e4b5bf5c367388}{02567}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a2ef387e567bad90ec6e4b5bf5c367388}{handleExpr}}( \mbox{\hyperlink{class_catch_1_1_expr_lhs}{ExprLhs<T>}} \textcolor{keyword}{const}\& expr ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02568}02568             \mbox{\hyperlink{class_catch_1_1_assertion_handler_a2ef387e567bad90ec6e4b5bf5c367388}{handleExpr}}( expr.makeUnaryExpr() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02569}02569         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02570}\mbox{\hyperlink{class_catch_1_1_assertion_handler_afe14d9cf1b1c7f70dae439fbdb51d0c4}{02570}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_afe14d9cf1b1c7f70dae439fbdb51d0c4}{handleExpr}}( \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}} \textcolor{keyword}{const}\& expr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02571}02571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02572}\mbox{\hyperlink{class_catch_1_1_assertion_handler_abdb4c180ed83ec2858b2fb87712c516d}{02572}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_abdb4c180ed83ec2858b2fb87712c516d}{handleMessage}}(\mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02573}02573 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02574}\mbox{\hyperlink{class_catch_1_1_assertion_handler_ab6caf765764a4064e90fce829eec201d}{02574}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_ab6caf765764a4064e90fce829eec201d}{handleExceptionThrownAsExpected}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02575}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a7764d0adb6ed5eeb10964f6abc02fab1}{02575}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a7764d0adb6ed5eeb10964f6abc02fab1}{handleUnexpectedExceptionNotThrown}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02576}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a51e4936e3af43b74690cedae6d2e297a}{02576}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a51e4936e3af43b74690cedae6d2e297a}{handleExceptionNotThrownAsExpected}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02577}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a67a194d5518f307c4a16faa03a7f7442}{02577}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a67a194d5518f307c4a16faa03a7f7442}{handleThrowingCallSkipped}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02578}\mbox{\hyperlink{class_catch_1_1_assertion_handler_aa2504dad6a91f3645e5f52c932c11270}{02578}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_aa2504dad6a91f3645e5f52c932c11270}{handleUnexpectedInflightException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02579}02579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02580}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a878a9eb828d8a1863c8dcb6575f6f40e}{02580}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a878a9eb828d8a1863c8dcb6575f6f40e}{complete}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02581}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a6756bd5395c0ddd28764a9fb4612d5e4}{02581}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a6756bd5395c0ddd28764a9fb4612d5e4}{setCompleted}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02582}02582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02583}02583         \textcolor{comment}{// query}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02584}\mbox{\hyperlink{class_catch_1_1_assertion_handler_a193bb3999494c46457f3059184c6b251}{02584}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a193bb3999494c46457f3059184c6b251}{allowThrows}}() const -\/> \textcolor{keywordtype}{bool};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02585}02585     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02586}02586 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02587}02587     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_aea6f8ff3b3838829d4a61694e4bc41ca}{handleExceptionMatchExpr}}( \mbox{\hyperlink{class_catch_1_1_assertion_handler}{AssertionHandler}}\& handler, \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} const\& str, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} const\& matcherString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02588}02588 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02589}02589 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02590}02590 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02591}02591 \textcolor{comment}{// end catch\_assertionhandler.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02592}02592 \textcolor{comment}{// start catch\_message.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02593}02593 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02594}02594 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02595}02595 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02596}02596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02597}02597 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02598}02598 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02599}02599     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02600}\mbox{\hyperlink{struct_catch_1_1_message_info_afac7a84a9e8655428035a3c5418044f0}{02600}}         \mbox{\hyperlink{struct_catch_1_1_message_info_afac7a84a9e8655428035a3c5418044f0}{MessageInfo}}(    \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& \_macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02601}02601                         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& \_lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02602}02602                         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} \_type );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02603}02603 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02604}02604         \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} macroName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02605}02605         std::string message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02606}02606         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02607}02607         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02608}02608         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} sequence;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02609}02609 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02610}\mbox{\hyperlink{struct_catch_1_1_message_info_af4b37f2172ba55395813b4bb6bbbde1a}{02610}}         \textcolor{keywordtype}{bool} operator == ( \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02611}\mbox{\hyperlink{struct_catch_1_1_message_info_a8254cb8fca2da02a29a9843cdcb79df1}{02611}}         \textcolor{keywordtype}{bool} operator < ( \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02612}02612     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02613}02613         \textcolor{keyword}{static} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} globalCount;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02614}02614     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02615}02615 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02616}02616     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_message_stream}{MessageStream}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02617}02617 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02618}02618         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02619}\mbox{\hyperlink{struct_catch_1_1_message_stream_a7c052042fb31ed74d97df99ae14ebd46}{02619}}         \mbox{\hyperlink{struct_catch_1_1_message_stream}{MessageStream}}\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02620}02620             m\_stream << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02621}02621             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02622}02622         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02623}02623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02624}02624         \mbox{\hyperlink{class_catch_1_1_reusable_string_stream}{ReusableStringStream}} m\_stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02625}02625     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02626}02626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02627}02627     \textcolor{keyword}{struct }MessageBuilder : MessageStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02628}\mbox{\hyperlink{struct_catch_1_1_message_builder_ac34832ca527a758f000ac233d32dd068}{02628}}         \mbox{\hyperlink{struct_catch_1_1_message_builder_ac34832ca527a758f000ac233d32dd068}{MessageBuilder}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02629}02629                         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02630}02630                         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} type );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02631}02631 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02632}02632         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02633}\mbox{\hyperlink{struct_catch_1_1_message_builder_af65f5f1a92c52b81bc68f4a47fc9aaa4}{02633}}         \mbox{\hyperlink{struct_catch_1_1_message_builder}{MessageBuilder}}\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02634}02634             m\_stream << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02635}02635             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02636}02636         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02637}02637 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02638}02638         \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} m\_info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02639}02639     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02640}02640 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02641}02641     \textcolor{keyword}{class }ScopedMessage \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02642}02642     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02643}\mbox{\hyperlink{class_catch_1_1_scoped_message_a5cc59f0f2ebe840e6607f83004d49a17}{02643}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_scoped_message_a5cc59f0f2ebe840e6607f83004d49a17}{ScopedMessage}}( \mbox{\hyperlink{struct_catch_1_1_message_builder}{MessageBuilder}} \textcolor{keyword}{const}\& builder );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02644}\mbox{\hyperlink{class_catch_1_1_scoped_message_a5fe2e79afdfd737818c15edfc49f378e}{02644}}         \mbox{\hyperlink{class_catch_1_1_scoped_message_a5fe2e79afdfd737818c15edfc49f378e}{ScopedMessage}}( \mbox{\hyperlink{class_catch_1_1_scoped_message}{ScopedMessage}}\& duplicate ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02645}\mbox{\hyperlink{class_catch_1_1_scoped_message_aac833a6a2245a26e6bd5c9252ca1caa0}{02645}}         \mbox{\hyperlink{class_catch_1_1_scoped_message_aac833a6a2245a26e6bd5c9252ca1caa0}{ScopedMessage}}( \mbox{\hyperlink{class_catch_1_1_scoped_message}{ScopedMessage}}\&\& old );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02646}\mbox{\hyperlink{class_catch_1_1_scoped_message_a43190843f9eeb84a0b42b0bc95fdf93a}{02646}}         \mbox{\hyperlink{class_catch_1_1_scoped_message_a43190843f9eeb84a0b42b0bc95fdf93a}{\string~ScopedMessage}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02647}02647 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02648}02648         \mbox{\hyperlink{struct_catch_1_1_message_info}{MessageInfo}} m\_info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02649}02649         \textcolor{keywordtype}{bool} m\_moved;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02650}02650     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02651}02651 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02652}02652     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_capturer}{Capturer}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02653}02653         std::vector<MessageInfo> m\_messages;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02654}02654         \mbox{\hyperlink{struct_catch_1_1_i_result_capture}{IResultCapture}}\& m\_resultCapture = \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02655}02655         \textcolor{keywordtype}{size\_t} m\_captured = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02656}02656     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02657}\mbox{\hyperlink{class_catch_1_1_capturer_a86b0b27acc803a4e1310c10820f3038f}{02657}}         \mbox{\hyperlink{class_catch_1_1_capturer_a86b0b27acc803a4e1310c10820f3038f}{Capturer}}( \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} macroName, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} names );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02658}\mbox{\hyperlink{class_catch_1_1_capturer_aecde85cf69e65565cec91e325a657b82}{02658}}         \mbox{\hyperlink{class_catch_1_1_capturer_aecde85cf69e65565cec91e325a657b82}{\string~Capturer}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02659}02659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02660}\mbox{\hyperlink{class_catch_1_1_capturer_a0695ebf77f7cdcb344c73bcb3d9131e4}{02660}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_capturer_a0695ebf77f7cdcb344c73bcb3d9131e4}{captureValue}}( \textcolor{keywordtype}{size\_t} index, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02661}02661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02662}02662         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02663}\mbox{\hyperlink{class_catch_1_1_capturer_a60d08e6db2e54740bb2298bbbec3bc0b}{02663}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_capturer_a60d08e6db2e54740bb2298bbbec3bc0b}{captureValues}}( \textcolor{keywordtype}{size\_t} index, T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02664}02664             captureValue( index, \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02665}02665         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02666}02666 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02667}02667         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename}... Ts>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02668}\mbox{\hyperlink{class_catch_1_1_capturer_a76f2a097cfeb3042688300b81eb9bcbc}{02668}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_capturer_a76f2a097cfeb3042688300b81eb9bcbc}{captureValues}}( \textcolor{keywordtype}{size\_t} index, T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, Ts \textcolor{keyword}{const}\&... \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02669}02669             captureValue( index, \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02670}02670             captureValues( index+1, \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}... );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02671}02671         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02672}02672     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02673}02673 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02674}02674 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02675}02675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02676}02676 \textcolor{comment}{// end catch\_message.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02677}02677 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02678}02678 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02679}02679 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_STRINGIFICATION)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02680}\mbox{\hyperlink{catch2_2catch_8hpp_ab6dc42a98c8854e2e1d91874b1fe406c}{02680}} \textcolor{preprocessor}{  \#define CATCH\_INTERNAL\_STRINGIFY(...) \#\_\_VA\_ARGS\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02681}02681 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02682}02682 \textcolor{preprocessor}{  \#define CATCH\_INTERNAL\_STRINGIFY(...) "{}Disabled by CATCH\_CONFIG\_DISABLE\_STRINGIFICATION"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02683}02683 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02684}02684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02685}02685 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_FAST\_COMPILE) || defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02686}02686 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02688}02688 \textcolor{comment}{// Another way to speed-\/up compilation is to omit local try-\/catch for REQUIRE*}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02689}02689 \textcolor{comment}{// macros.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02690}\mbox{\hyperlink{catch2_2catch_8hpp_af21395add3cdee3109e0a2e7c15a54bc}{02690}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TRY}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02691}\mbox{\hyperlink{catch2_2catch_8hpp_a3ef8d1213eac4fd0e2fdb4e13bdb8070}{02691}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_CATCH( capturer )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02692}02692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02693}02693 \textcolor{preprocessor}{\#else }\textcolor{comment}{// CATCH\_CONFIG\_FAST\_COMPILE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02694}02694 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02695}02695 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TRY try}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02696}02696 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_CATCH( handler ) catch(...) \{ handler.handleUnexpectedInflightException(); \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02697}02697 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02698}02698 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02699}02699 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02700}\mbox{\hyperlink{catch2_2catch_8hpp_a87986fec7b6b65bdae29cd2fa62bec20}{02700}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_REACT( handler ) handler.complete();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02701}02701 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02703}\mbox{\hyperlink{catch2_2catch_8hpp_ac3284f56c2f755d2b79fdb663cf9fb72}{02703}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TEST( macroName, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02704}02704 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02705}02705 \textcolor{preprocessor}{        CATCH\_INTERNAL\_IGNORE\_BUT\_WARN(\_\_VA\_ARGS\_\_); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02706}02706 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(\_\_VA\_ARGS\_\_), resultDisposition ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02707}02707 \textcolor{preprocessor}{        INTERNAL\_CATCH\_TRY \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02708}02708 \textcolor{preprocessor}{            CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02709}02709 \textcolor{preprocessor}{            CATCH\_INTERNAL\_SUPPRESS\_PARENTHESES\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02710}02710 \textcolor{preprocessor}{            catchAssertionHandler.handleExpr( Catch::Decomposer() <= \_\_VA\_ARGS\_\_ ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02711}02711 \textcolor{preprocessor}{            CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02712}02712 \textcolor{preprocessor}{        \} INTERNAL\_CATCH\_CATCH( catchAssertionHandler ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02713}02713 \textcolor{preprocessor}{        INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02714}02714 \textcolor{preprocessor}{    \} while( (void)0, (false) \&\& static\_cast<bool>( !!(\_\_VA\_ARGS\_\_) ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02715}02715 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02717}\mbox{\hyperlink{catch2_2catch_8hpp_abfd240b1bdcc699638464fb3c7131c1d}{02717}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_IF( macroName, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02718}02718 \textcolor{preprocessor}{    INTERNAL\_CATCH\_TEST( macroName, resultDisposition, \_\_VA\_ARGS\_\_ ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02719}02719 \textcolor{preprocessor}{    if( Catch::getResultCapture().lastAssertionPassed() )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02720}02720 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02722}\mbox{\hyperlink{catch2_2catch_8hpp_aaf2139c8903264bfe442e4b23b6673a9}{02722}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_ELSE( macroName, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02723}02723 \textcolor{preprocessor}{    INTERNAL\_CATCH\_TEST( macroName, resultDisposition, \_\_VA\_ARGS\_\_ ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02724}02724 \textcolor{preprocessor}{    if( !Catch::getResultCapture().lastAssertionPassed() )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02725}02725 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02727}\mbox{\hyperlink{catch2_2catch_8hpp_ac340cc35716115abaec4dfbcb061da52}{02727}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_NO\_THROW( macroName, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02728}02728 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02729}02729 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(\_\_VA\_ARGS\_\_), resultDisposition ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02730}02730 \textcolor{preprocessor}{        try \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02731}02731 \textcolor{preprocessor}{            static\_cast<void>(\_\_VA\_ARGS\_\_); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02732}02732 \textcolor{preprocessor}{            catchAssertionHandler.handleExceptionNotThrownAsExpected(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02733}02733 \textcolor{preprocessor}{        \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02734}02734 \textcolor{preprocessor}{        catch( ... ) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02735}02735 \textcolor{preprocessor}{            catchAssertionHandler.handleUnexpectedInflightException(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02736}02736 \textcolor{preprocessor}{        \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02737}02737 \textcolor{preprocessor}{        INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02738}02738 \textcolor{preprocessor}{    \} while( false )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02739}02739 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02741}\mbox{\hyperlink{catch2_2catch_8hpp_a2f3028d4fd4510f2f47ddd20626cccae}{02741}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_THROWS( macroName, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02742}02742 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02743}02743 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(\_\_VA\_ARGS\_\_), resultDisposition); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02744}02744 \textcolor{preprocessor}{        if( catchAssertionHandler.allowThrows() ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02745}02745 \textcolor{preprocessor}{            try \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02746}02746 \textcolor{preprocessor}{                static\_cast<void>(\_\_VA\_ARGS\_\_); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02747}02747 \textcolor{preprocessor}{                catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02748}02748 \textcolor{preprocessor}{            \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02749}02749 \textcolor{preprocessor}{            catch( ... ) \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02750}02750 \textcolor{preprocessor}{                catchAssertionHandler.handleExceptionThrownAsExpected(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02751}02751 \textcolor{preprocessor}{            \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02752}02752 \textcolor{preprocessor}{        else \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02753}02753 \textcolor{preprocessor}{            catchAssertionHandler.handleThrowingCallSkipped(); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02754}02754 \textcolor{preprocessor}{        INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02755}02755 \textcolor{preprocessor}{    \} while( false )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02756}02756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02758}\mbox{\hyperlink{catch2_2catch_8hpp_a5e87b48ab40b7b128ae8428c14c25a91}{02758}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_THROWS\_AS( macroName, exceptionType, resultDisposition, expr ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02759}02759 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02760}02760 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(expr) "{}, "{}} CATCH\_INTERNAL\_STRINGIFY(exceptionType), resultDisposition ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02761}02761         if( catchAssertionHandler.allowThrows() ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02762}02762             try \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02763}02763                 static\_cast<void>(expr); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02764}02764                 catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02765}02765             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02766}02766             catch( exceptionType const\& ) \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02767}02767                 catchAssertionHandler.handleExceptionThrownAsExpected(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02768}02768             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02769}02769             catch( ... ) \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02770}02770                 catchAssertionHandler.handleUnexpectedInflightException(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02771}02771             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02772}02772         else \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02773}02773             catchAssertionHandler.handleThrowingCallSkipped(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02774}02774         INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02775}02775     \} while( false )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02776}02776 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02778}\mbox{\hyperlink{catch2_2catch_8hpp_ad1f7d83040ad9b09020dc72c57019638}{02778}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_MSG( macroName, messageType, resultDisposition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02779}02779 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02780}02780 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, Catch::StringRef(), resultDisposition ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02781}02781 \textcolor{preprocessor}{        catchAssertionHandler.handleMessage( messageType, ( Catch::MessageStream() << \_\_VA\_ARGS\_\_ + ::Catch::StreamEndStop() ).m\_stream.str() ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02782}02782 \textcolor{preprocessor}{        INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02783}02783 \textcolor{preprocessor}{    \} while( false )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02784}02784 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02786}\mbox{\hyperlink{catch2_2catch_8hpp_ad8c51fdad7ab7e39414cd1bf90a3ce06}{02786}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_CAPTURE( varName, macroName, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02787}02787 \textcolor{preprocessor}{    auto varName = Catch::Capturer( macroName, CATCH\_INTERNAL\_LINEINFO, Catch::ResultWas::Info, \#\_\_VA\_ARGS\_\_ ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02788}02788 \textcolor{preprocessor}{    varName.captureValues( 0, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02789}02789 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02791}\mbox{\hyperlink{catch2_2catch_8hpp_ab0eb5cfab90a80f3113f0ecb65c62a1c}{02791}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_INFO( macroName, log ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02792}02792 \textcolor{preprocessor}{    Catch::ScopedMessage INTERNAL\_CATCH\_UNIQUE\_NAME( scopedMessage )( Catch::MessageBuilder( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, Catch::ResultWas::Info ) << log );}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02793}02793 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02795}\mbox{\hyperlink{catch2_2catch_8hpp_ab268c09b68167db4b163234f9934463f}{02795}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_UNSCOPED\_INFO( macroName, log ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02796}02796 \textcolor{preprocessor}{    Catch::getResultCapture().emplaceUnscopedMessage( Catch::MessageBuilder( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, Catch::ResultWas::Info ) << log )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02797}02797 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02799}02799 \textcolor{comment}{// Although this is matcher-\/based, it can be used with just a string}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02800}\mbox{\hyperlink{catch2_2catch_8hpp_a4296ab989dbc1f6c52c24d60012144d6}{02800}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_THROWS\_STR\_MATCHES( macroName, resultDisposition, matcher, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02801}02801 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02802}02802 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(\_\_VA\_ARGS\_\_) "{}, "{}} CATCH\_INTERNAL\_STRINGIFY(matcher), resultDisposition ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02803}02803         if( catchAssertionHandler.allowThrows() ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02804}02804             try \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02805}02805                 static\_cast<void>(\_\_VA\_ARGS\_\_); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02806}02806                 catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02807}02807             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02808}02808             catch( ... ) \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02809}02809                 Catch::handleExceptionMatchExpr( catchAssertionHandler, matcher, \#matcher\#\#\_catch\_sr ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02810}02810             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02811}02811         else \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02812}02812             catchAssertionHandler.handleThrowingCallSkipped(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02813}02813         INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02814}02814     \} while( false )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02815}02815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02816}02816 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02817}02817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02818}02818 \textcolor{comment}{// end catch\_capture.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02819}02819 \textcolor{comment}{// start catch\_section.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02820}02820 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02821}02821 \textcolor{comment}{// start catch\_section\_info.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02822}02822 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02823}02823 \textcolor{comment}{// start catch\_totals.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02824}02824 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02825}02825 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02826}02826 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02827}02827 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02828}02828 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02829}02829     \textcolor{keyword}{struct }Counts \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02830}\mbox{\hyperlink{struct_catch_1_1_counts_aaa10666f559057e3e860d2a5a6fae4c4}{02830}}         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} operator -\/ ( \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02831}\mbox{\hyperlink{struct_catch_1_1_counts_a0c4a2295b896e189cdf4663377e156df}{02831}}         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}}\& \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator += }}( \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} \textcolor{keyword}{const}\& other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02832}02832 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02833}\mbox{\hyperlink{struct_catch_1_1_counts_a94f969c09cf52d1339c085c9603cd1d3}{02833}}         std::size\_t \mbox{\hyperlink{struct_catch_1_1_counts_a94f969c09cf52d1339c085c9603cd1d3}{total}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02834}\mbox{\hyperlink{struct_catch_1_1_counts_a84999490e0ecaa3de5e121bf48eda1b3}{02834}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_counts_a84999490e0ecaa3de5e121bf48eda1b3}{allPassed}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02835}\mbox{\hyperlink{struct_catch_1_1_counts_a33bd996e016030155b99fe1c51c08991}{02835}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_counts_a33bd996e016030155b99fe1c51c08991}{allOk}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02836}02836 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02837}02837         std::size\_t passed = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02838}02838         std::size\_t failed = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02839}02839         std::size\_t failedButOk = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02840}02840     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02841}02841 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02842}02842     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02843}02843 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02844}\mbox{\hyperlink{struct_catch_1_1_totals_a9279ed39139cb7e7b291918a6d08290e}{02844}}         \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} operator -\/ ( \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02845}\mbox{\hyperlink{struct_catch_1_1_totals_aa809975b6055917ecb1b1ae7c25149a8}{02845}}         \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}}\& \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator += }}( \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} \textcolor{keyword}{const}\& other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02846}02846 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02847}\mbox{\hyperlink{struct_catch_1_1_totals_a1a94a654f5f3786b75695e081fc9bca2}{02847}}         \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} \mbox{\hyperlink{struct_catch_1_1_totals_a1a94a654f5f3786b75695e081fc9bca2}{delta}}( \mbox{\hyperlink{struct_catch_1_1_totals}{Totals}} \textcolor{keyword}{const}\& prevTotals ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02848}02848 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02849}02849         \textcolor{keywordtype}{int} error = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02850}02850         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02851}02851         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} testCases;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02852}02852     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02853}02853 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02854}02854 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02855}02855 \textcolor{comment}{// end catch\_totals.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02856}02856 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02857}02857 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02858}02858 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02859}02859 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02860}02860     \textcolor{keyword}{struct }SectionInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02861}\mbox{\hyperlink{struct_catch_1_1_section_info_a2808437ae7d4bc0830cee1c3995165a6}{02861}}         \mbox{\hyperlink{struct_catch_1_1_section_info_a2808437ae7d4bc0830cee1c3995165a6}{SectionInfo}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02862}02862             (   \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& \_lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02863}02863                 std::string \textcolor{keyword}{const}\& \_name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02864}02864 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02865}02865         \textcolor{comment}{// Deprecated}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02866}\mbox{\hyperlink{struct_catch_1_1_section_info_a139875f2e7bd12a5898a948f8bad15b3}{02866}}         \mbox{\hyperlink{struct_catch_1_1_section_info_a139875f2e7bd12a5898a948f8bad15b3}{SectionInfo}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02867}02867             (   \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& \_lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02868}02868                 std::string \textcolor{keyword}{const}\& \_name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02869}02869                 std::string \textcolor{keyword}{const}\& ) : \mbox{\hyperlink{struct_catch_1_1_section_info}{SectionInfo}}( \_lineInfo, \_name ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02870}02870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02871}02871         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02872}02872         std::string description; \textcolor{comment}{// !Deprecated: this will always be empty}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02873}02873         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02874}02874     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02875}02875 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02876}02876     \textcolor{keyword}{struct }SectionEndInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02877}02877         SectionInfo sectionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02878}02878         Counts prevAssertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02879}02879         \textcolor{keywordtype}{double} durationInSeconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02880}02880     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02881}02881 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02882}02882 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02883}02883 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02884}02884 \textcolor{comment}{// end catch\_section\_info.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02885}02885 \textcolor{comment}{// start catch\_timer.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02886}02886 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02887}02887 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02888}02888 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02889}02889 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02890}02890 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02891}02891     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}() -\/> uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02892}02892     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ac8e1ed37624bd0d97b2c0d4ec099d31f}{getEstimatedClockResolution}}() -\/> uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02893}02893 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02894}02894     \textcolor{keyword}{class }Timer \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02895}02895         uint64\_t m\_nanoseconds = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02896}02896     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02897}\mbox{\hyperlink{class_catch_1_1_timer_a0a56e879e43f36c102bf9ea8b5fc8b72}{02897}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_timer_a0a56e879e43f36c102bf9ea8b5fc8b72}{start}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02898}\mbox{\hyperlink{class_catch_1_1_timer_a57be5d17ca868a2d6fb1eea84de665cf}{02898}}         \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_timer_a57be5d17ca868a2d6fb1eea84de665cf}{getElapsedNanoseconds}}() const -\/> uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02899}\mbox{\hyperlink{class_catch_1_1_timer_a545de17a61a6fee1dbe3de5b0723e5fa}{02899}}         auto getElapsedMicroseconds() const -\/> uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02900}\mbox{\hyperlink{class_catch_1_1_timer_a30aaf458dbb59dd8ac8971c9c62e0eac}{02900}}         auto getElapsedMilliseconds() const -\/> \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02901}\mbox{\hyperlink{class_catch_1_1_timer_a065e37e3c9eb16bd4dcf41971d8deedc}{02901}}         auto getElapsedSeconds() const -\/> \textcolor{keywordtype}{double};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02902}02902     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02903}02903 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02904}02904 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02905}02905 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02906}02906 \textcolor{comment}{// end catch\_timer.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02907}02907 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02908}02908 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02909}02909 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02910}02910 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02911}02911     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_section}{Section}} : \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02912}02912     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02913}\mbox{\hyperlink{class_catch_1_1_section_a68fd4e51e8981aaa7ddb00d8a6abd099}{02913}}         \mbox{\hyperlink{class_catch_1_1_section_a68fd4e51e8981aaa7ddb00d8a6abd099}{Section}}( \mbox{\hyperlink{struct_catch_1_1_section_info}{SectionInfo}} \textcolor{keyword}{const}\& info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02914}\mbox{\hyperlink{class_catch_1_1_section_aa1422edd68a77aa578b5cc6b8b69f86f}{02914}}         \mbox{\hyperlink{class_catch_1_1_section_aa1422edd68a77aa578b5cc6b8b69f86f}{\string~Section}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02915}02915 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02916}02916         \textcolor{comment}{// This indicates whether the section should be executed or not}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02917}\mbox{\hyperlink{class_catch_1_1_section_a0632b804dcea1417a2970620a9742eb3}{02917}}         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02918}02918 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02919}02919     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02920}02920         \mbox{\hyperlink{struct_catch_1_1_section_info}{SectionInfo}} m\_info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02921}02921 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02922}02922         std::string m\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02923}02923         \mbox{\hyperlink{struct_catch_1_1_counts}{Counts}} m\_assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02924}02924         \textcolor{keywordtype}{bool} m\_sectionIncluded;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02925}02925         \mbox{\hyperlink{class_catch_1_1_timer}{Timer}} m\_timer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02926}02926     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02927}02927 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02928}02928 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02929}02929 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02930}\mbox{\hyperlink{catch2_2catch_8hpp_a2969ec50cc661169e94b1b80ac799c07}{02930}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_SECTION( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02931}02931 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02932}02932 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02933}02933 \textcolor{preprocessor}{    if( Catch::Section const\& INTERNAL\_CATCH\_UNIQUE\_NAME( catch\_internal\_Section ) = Catch::SectionInfo( CATCH\_INTERNAL\_LINEINFO, \_\_VA\_ARGS\_\_ ) ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02934}02934 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02935}02935 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02936}\mbox{\hyperlink{catch2_2catch_8hpp_abe92a5063c83dec8143bf685e4b4a198}{02936}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_DYNAMIC\_SECTION( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02937}02937 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02938}02938 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_UNUSED\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02939}02939 \textcolor{preprocessor}{    if( Catch::Section const\& INTERNAL\_CATCH\_UNIQUE\_NAME( catch\_internal\_Section ) = Catch::SectionInfo( CATCH\_INTERNAL\_LINEINFO, (Catch::ReusableStringStream() << \_\_VA\_ARGS\_\_).str() ) ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02940}02940 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02941}02941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02942}02942 \textcolor{comment}{// end catch\_section.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02943}02943 \textcolor{comment}{// start catch\_interfaces\_exception.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02944}02944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02945}02945 \textcolor{comment}{// start catch\_interfaces\_registry\_hub.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02946}02946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02947}02947 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02948}02948 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02949}02949 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02950}02950 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02951}02951 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02952}02952     \textcolor{keyword}{class }TestCase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02953}02953     \textcolor{keyword}{struct }ITestCaseRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02954}02954     \textcolor{keyword}{struct }IExceptionTranslatorRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02955}02955     \textcolor{keyword}{struct }IExceptionTranslator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02956}02956     \textcolor{keyword}{struct }IReporterRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02957}02957     \textcolor{keyword}{struct }IReporterFactory;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02958}02958     \textcolor{keyword}{struct }ITagAliasRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02959}02959     \textcolor{keyword}{struct }IMutableEnumValuesRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02960}02960 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02961}02961     \textcolor{keyword}{class }StartupExceptionRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02962}02962 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02963}02963     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} = std::shared\_ptr<IReporterFactory>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02964}02964 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02965}02965     \textcolor{keyword}{struct }IRegistryHub \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02966}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a050de0f27f96888c8b410992146c9a09}{02966}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a050de0f27f96888c8b410992146c9a09}{\string~IRegistryHub}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02967}02967 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02968}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{02968}}         \textcolor{keyword}{virtual} IReporterRegistry \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{getReporterRegistry}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02969}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3016c8766e42bae7b021f02d1cbd356b}{02969}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_test_case_registry}{ITestCaseRegistry}} \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3016c8766e42bae7b021f02d1cbd356b}{getTestCaseRegistry}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02970}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3fb24564dba3f679dfa58792f1e21708}{02970}}         \textcolor{keyword}{virtual} ITagAliasRegistry \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3fb24564dba3f679dfa58792f1e21708}{getTagAliasRegistry}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02971}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_aa97defa756fe28dd6249b19c12bbbec1}{02971}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry}{IExceptionTranslatorRegistry}} \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_aa97defa756fe28dd6249b19c12bbbec1}{getExceptionTranslatorRegistry}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02972}02972 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02973}\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a6a1810bb78ba99c3be091958bcc12f29}{02973}}         \textcolor{keyword}{virtual} StartupExceptionRegistry \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a6a1810bb78ba99c3be091958bcc12f29}{getStartupExceptionRegistry}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02974}02974     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02975}02975 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02976}02976     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub}{IMutableRegistryHub}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02977}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a759ca1e044e19f905fb4d306f1367193}{02977}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a759ca1e044e19f905fb4d306f1367193}{\string~IMutableRegistryHub}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02978}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a1c0ac202ac31ee9f88e8ff5cbac4b243}{02978}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a1c0ac202ac31ee9f88e8ff5cbac4b243}{registerReporter}}( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02979}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abd892a133f85581fd00ee75bb379ca56}{02979}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abd892a133f85581fd00ee75bb379ca56}{registerListener}}( \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02980}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a11b85c6744d88c9f83fe16ad4a8dd451}{02980}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a11b85c6744d88c9f83fe16ad4a8dd451}{registerTest}}( \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \textcolor{keyword}{const}\& testInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02981}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_ae6825365102693cf7707db022a2c2b49}{02981}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_ae6825365102693cf7707db022a2c2b49}{registerTranslator}}( \textcolor{keyword}{const} \mbox{\hyperlink{struct_catch_1_1_i_exception_translator}{IExceptionTranslator}}* translator ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02982}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abf2e386b6f94f615719ada711adbf822}{02982}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abf2e386b6f94f615719ada711adbf822}{registerTagAlias}}( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02983}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a72a7d5386851ac3200f8da794a009c86}{02983}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a72a7d5386851ac3200f8da794a009c86}{registerStartupException}}() noexcept = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02984}\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_ab1f0013630047f8295e5969b624ad632}{02984}}         virtual \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry}{IMutableEnumValuesRegistry}}\& getMutableEnumValuesRegistry() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02985}02985     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02986}02986 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02987}02987     \mbox{\hyperlink{struct_catch_1_1_i_registry_hub}{IRegistryHub}} const\& \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02988}02988     \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub}{IMutableRegistryHub}}\& \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02989}02989     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a0f78e9afdebc6d4512d18e76fbf54b8c}{cleanUp}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02990}02990     \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02991}02991 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02992}02992 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02993}02993 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02994}02994 \textcolor{comment}{// end catch\_interfaces\_registry\_hub.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02995}02995 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02996}02996 \textcolor{preprocessor}{    \#define INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION\_NO\_REG( translatorName, signature) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02997}02997 \textcolor{preprocessor}{        static std::string translatorName( signature )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02998}02998 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l02999}02999 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03000}03000 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03001}03001 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03002}03002 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03003}03003 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03004}03004 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03005}03005     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_aa7e3e5e9ffc312fdf5414c9cb0d07c24}{exceptionTranslateFunction}} = std::string(*)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03006}03006 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03007}03007     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_exception_translator}{IExceptionTranslator}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03008}03008     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_ac9b085681977f88ed527c279723edf48}{ExceptionTranslators}} = std::vector<std::unique\_ptr<IExceptionTranslator const>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03009}03009 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03010}03010     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_exception_translator}{IExceptionTranslator}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03011}\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_afa00bb6258c07591df472aadae05783f}{03011}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_afa00bb6258c07591df472aadae05783f}{\string~IExceptionTranslator}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03012}\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_a2a554b96ed5ed411e7c796b6b42837a5}{03012}}         \textcolor{keyword}{virtual} std::string \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_a2a554b96ed5ed411e7c796b6b42837a5}{translate}}( ExceptionTranslators::const\_iterator it, ExceptionTranslators::const\_iterator itEnd ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03013}03013     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03014}03014 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03015}03015     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry}{IExceptionTranslatorRegistry}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03016}\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_acf7402e18789ea46d54ea8564ac358d3}{03016}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_acf7402e18789ea46d54ea8564ac358d3}{\string~IExceptionTranslatorRegistry}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03017}03017 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03018}\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_af76ae8c331a17f2a94c9720bc0d686bb}{03018}}         \textcolor{keyword}{virtual} std::string \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_af76ae8c331a17f2a94c9720bc0d686bb}{translateActiveException}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03019}03019     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03020}03020 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03021}03021     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_exception_translator_registrar}{ExceptionTranslatorRegistrar}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03022}03022         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03023}03023         \textcolor{keyword}{class }ExceptionTranslator : \textcolor{keyword}{public} \mbox{\hyperlink{struct_catch_1_1_i_exception_translator}{IExceptionTranslator}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03024}03024         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03025}03025 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03026}03026             ExceptionTranslator( std::string(*translateFunction)( T\& ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03027}03027             : m\_translateFunction( translateFunction )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03028}03028             \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03029}03029 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03030}03030             std::string translate( ExceptionTranslators::const\_iterator it, ExceptionTranslators::const\_iterator itEnd )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03031}03031 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03032}03032                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03033}03033 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03034}03034                 \textcolor{keywordflow}{try} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03035}03035                     \textcolor{keywordflow}{if}( it == itEnd )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03036}03036                         std::rethrow\_exception(std::current\_exception());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03037}03037                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03038}03038                         \textcolor{keywordflow}{return} (*it)-\/>translate( it+1, itEnd );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03039}03039                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03040}03040                 \textcolor{keywordflow}{catch}( T\& ex ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03041}03041                     \textcolor{keywordflow}{return} m\_translateFunction( ex );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03042}03042                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03043}03043 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03044}03044             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03045}03045 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03046}03046         \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03047}03047             std::string(*m\_translateFunction)( T\& );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03048}03048         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03049}03049 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03050}03050     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03051}03051         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03052}\mbox{\hyperlink{class_catch_1_1_exception_translator_registrar_aa73229de911f26b1df6c6c87c4d9e04e}{03052}}         \mbox{\hyperlink{class_catch_1_1_exception_translator_registrar_aa73229de911f26b1df6c6c87c4d9e04e}{ExceptionTranslatorRegistrar}}( std::string(*translateFunction)( T\& ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03053}03053             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_ae6825365102693cf7707db022a2c2b49}{registerTranslator}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03054}03054                 ( \textcolor{keyword}{new} ExceptionTranslator<T>( translateFunction ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03055}03055         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03056}03056     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03057}03057 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03058}03058 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03060}\mbox{\hyperlink{catch2_2catch_8hpp_ab5314f401394dc4f7d1ac8b59370af09}{03060}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION2( translatorName, signature ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03061}03061 \textcolor{preprocessor}{    static std::string translatorName( signature ); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03062}03062 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03063}03063 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03064}03064 \textcolor{preprocessor}{    namespace\{ Catch::ExceptionTranslatorRegistrar INTERNAL\_CATCH\_UNIQUE\_NAME( catch\_internal\_ExceptionRegistrar )( \&translatorName ); \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03065}03065 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03066}03066 \textcolor{preprocessor}{    static std::string translatorName( signature )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03067}03067 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03068}\mbox{\hyperlink{catch2_2catch_8hpp_a109d814750b0a695e2b66e9c53e748c0}{03068}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION( signature ) INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION2( INTERNAL\_CATCH\_UNIQUE\_NAME( catch\_internal\_ExceptionTranslator ), signature )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03069}03069 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03070}03070 \textcolor{comment}{// end catch\_interfaces\_exception.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03071}03071 \textcolor{comment}{// start catch\_approx.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03072}03072 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03073}03073 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03074}03074 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03075}03075 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03076}03076 \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03077}03077 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03078}03078     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03079}03079     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03080}03080         \textcolor{keywordtype}{bool} equalityComparisonImpl(\textcolor{keywordtype}{double} other) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03081}03081         \textcolor{comment}{// Validates the new margin (margin >= 0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03082}03082         \textcolor{comment}{// out-\/of-\/line to avoid including stdexcept in the header}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03083}03083         \textcolor{keywordtype}{void} setMargin(\textcolor{keywordtype}{double} margin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03084}03084         \textcolor{comment}{// Validates the new epsilon (0 < epsilon < 1)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03085}03085         \textcolor{comment}{// out-\/of-\/line to avoid including stdexcept in the header}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03086}03086         \textcolor{keywordtype}{void} setEpsilon(\textcolor{keywordtype}{double} epsilon);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03087}03087 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03088}03088     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03089}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a1a8618ea8db08c66bd3d9fe8f74b957a}{03089}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a1a8618ea8db08c66bd3d9fe8f74b957a}{Approx}} ( \textcolor{keywordtype}{double} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03090}03090 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03091}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_aaf86dc0ee92272ac2d9839197a07951d}{03091}}         \textcolor{keyword}{static} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_aaf86dc0ee92272ac2d9839197a07951d}{custom}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03092}03092 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03093}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_aa9adf5f05e641df770039543d5067d30}{03093}}         \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_aa9adf5f05e641df770039543d5067d30}{operator-\/}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03094}03094 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03095}03095         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03096}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a006f6f92cecf2b2e7d2c70329709f6e4}{03096}}         \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a006f6f92cecf2b2e7d2c70329709f6e4}{operator()}}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03097}03097             \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} approx( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03098}03098             approx.m\_epsilon = m\_epsilon;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03099}03099             approx.m\_margin = m\_margin;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03100}03100             approx.m\_scale = m\_scale;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03101}03101             \textcolor{keywordflow}{return} approx;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03102}03102         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03103}03103 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03104}03104         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03105}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_ab14b979fa8a37f21d037157fabed4072}{03105}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_ab14b979fa8a37f21d037157fabed4072}{Approx}}( T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ): \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}}(static\_cast<double>(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03106}03106         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03107}03107 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03108}03108         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03109}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_ab38782a37d09b527ca5e126dbf433dda}{03109}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator == ( \textcolor{keyword}{const} T\& lhs, \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03110}03110             \textcolor{keyword}{auto} lhs\_v = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(lhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03111}03111             \textcolor{keywordflow}{return} rhs.equalityComparisonImpl(lhs\_v);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03112}03112         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03113}03113 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03114}03114         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03115}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a0e5ef1957d4c38d7857005909c613743}{03115}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator == ( \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& lhs, \textcolor{keyword}{const} T\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03116}03116             \textcolor{keywordflow}{return} operator==( rhs, lhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03117}03117         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03118}03118 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03119}03119         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03120}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a29696f14ebd51887c8c88e771d12ef54}{03120}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator != ( T \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03121}03121             \textcolor{keywordflow}{return} !operator==( lhs, rhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03122}03122         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03123}03123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03124}03124         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03125}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a31d62e3c35abb86cf25e02601966ca5d}{03125}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator != ( \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& lhs, T \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03126}03126             \textcolor{keywordflow}{return} !operator==( rhs, lhs );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03127}03127         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03128}03128 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03129}03129         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03130}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a0369de03e81bc2ceaf6c9d830476bd49}{03130}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator <= ( T \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03131}03131             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(lhs) < rhs.m\_value || lhs == rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03132}03132         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03133}03133 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03134}03134         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03135}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a6040b908588745570847d7ae8483b091}{03135}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator <= ( \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& lhs, T \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03136}03136             \textcolor{keywordflow}{return} lhs.m\_value < \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(rhs) || lhs == rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03137}03137         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03138}03138 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03139}03139         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03140}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_affd27efc62be386daeecb7a09e828d44}{03140}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator >= ( T \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03141}03141             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(lhs) > rhs.m\_value || lhs == rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03142}03142         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03143}03143 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03144}03144         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03145}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a5899b8a36725406701e2ebded2971ee6}{03145}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator >= ( \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} \textcolor{keyword}{const}\& lhs, T \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03146}03146             \textcolor{keywordflow}{return} lhs.m\_value > \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(rhs) || lhs == rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03147}03147         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03148}03148 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03149}03149         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03150}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a1feb255ab2b116e126c1994ab6c250fd}{03150}}         \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}}\& \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a1feb255ab2b116e126c1994ab6c250fd}{epsilon}}( T \textcolor{keyword}{const}\& newEpsilon ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03151}03151             \textcolor{keywordtype}{double} epsilonAsDouble = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(newEpsilon);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03152}03152             setEpsilon(epsilonAsDouble);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03153}03153             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03154}03154         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03155}03155 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03156}03156         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03157}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a617c79e67f8a52df3918293a3a8066ef}{03157}}         \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}}\& \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a617c79e67f8a52df3918293a3a8066ef}{margin}}( T \textcolor{keyword}{const}\& newMargin ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03158}03158             \textcolor{keywordtype}{double} marginAsDouble = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(newMargin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03159}03159             setMargin(marginAsDouble);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03160}03160             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03161}03161         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03162}03162 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03163}03163         \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename T, typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03164}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a9504645876aabe1fe4a807b84e445bc2}{03164}}         \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}}\& \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a9504645876aabe1fe4a807b84e445bc2}{scale}}( T \textcolor{keyword}{const}\& newScale ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03165}03165             m\_scale = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(newScale);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03166}03166             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03167}03167         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03168}03168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03169}\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a972fd9ac60607483263f1b0f0f9955e6}{03169}}         std::string \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a972fd9ac60607483263f1b0f0f9955e6}{toString}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03170}03170 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03171}03171     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03172}03172         \textcolor{keywordtype}{double} m\_epsilon;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03173}03173         \textcolor{keywordtype}{double} m\_margin;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03174}03174         \textcolor{keywordtype}{double} m\_scale;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03175}03175         \textcolor{keywordtype}{double} m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03176}03176     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03177}03177 \} \textcolor{comment}{// end namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03178}03178 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03179}03179 \textcolor{keyword}{namespace }literals \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03180}03180     \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Detail::Approx}} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_a(\textcolor{keywordtype}{long} \textcolor{keywordtype}{double} val);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03181}03181     \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Detail::Approx}} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_a(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long} val);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03182}03182 \} \textcolor{comment}{// end namespace literals}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03183}03183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03184}03184 \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03185}03185 \textcolor{keyword}{struct }StringMaker<\mbox{\hyperlink{namespace_catch}{Catch}}::\mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Detail::Approx}}> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03186}\mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_catch_1_1_detail_1_1_approx_01_4_a8e5015720682fecfbff0f05de19a698f}{03186}}     \textcolor{keyword}{static} std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01_catch_1_1_detail_1_1_approx_01_4_a8e5015720682fecfbff0f05de19a698f}{convert}}(\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Catch::Detail::Approx}} \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03187}03187 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03188}03188 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03189}03189 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03190}03190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03191}03191 \textcolor{comment}{// end catch\_approx.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03192}03192 \textcolor{comment}{// start catch\_string\_manip.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03193}03193 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03194}03194 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03195}03195 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03196}03196 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03197}03197 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03198}03198 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03199}03199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03200}03200     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& prefix );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03201}03201     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( std::string \textcolor{keyword}{const}\& s, \textcolor{keywordtype}{char} prefix );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03202}03202     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& suffix );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03203}03203     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( std::string \textcolor{keyword}{const}\& s, \textcolor{keywordtype}{char} suffix );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03204}03204     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_aa52974b0e426e7e2fbd725a900e9c36e}{contains}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& infix );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03205}03205     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a0760dbe87d090a55a35414db57d272c4}{toLowerInPlace}}( std::string\& s );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03206}03206     std::string \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( std::string \textcolor{keyword}{const}\& s );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03208}03208     std::string \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( std::string \textcolor{keyword}{const}\& str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03210}03210     StringRef \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(StringRef ref);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03211}03211 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03212}03212     \textcolor{comment}{// !!! Be aware, returns refs into original string -\/ make sure original string outlives them}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03213}03213     std::vector<StringRef> \mbox{\hyperlink{namespace_catch_a678e3c779388970bb3ec5802245f93d7}{splitStringRef}}( StringRef str, \textcolor{keywordtype}{char} delimiter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03214}03214     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_afe4e6770da547e43e9e4eeaa05f946ea}{replaceInPlace}}( std::string\& str, std::string \textcolor{keyword}{const}\& replaceThis, std::string \textcolor{keyword}{const}\& withThis );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03215}03215 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03216}03216     \textcolor{keyword}{struct }pluralise \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03217}\mbox{\hyperlink{struct_catch_1_1pluralise_a5c55e22de2416cfe416edf715c6b9234}{03217}}         \mbox{\hyperlink{struct_catch_1_1pluralise_a5c55e22de2416cfe416edf715c6b9234}{pluralise}}( std::size\_t count, std::string \textcolor{keyword}{const}\& label );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03218}03218 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03219}\mbox{\hyperlink{struct_catch_1_1pluralise_abe20c2451f99d57be5cc5157949b09ad}{03219}}         \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, \mbox{\hyperlink{struct_catch_1_1pluralise}{pluralise}} \textcolor{keyword}{const}\& pluraliser );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03220}03220 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03221}03221         std::size\_t m\_count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03222}03222         std::string m\_label;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03223}03223     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03224}03224 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03225}03225 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03226}03226 \textcolor{comment}{// end catch\_string\_manip.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03227}03227 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03228}03228 \textcolor{comment}{// start catch\_capture\_matchers.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03229}03229 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03230}03230 \textcolor{comment}{// start catch\_matchers.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03231}03231 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03232}03232 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03233}03233 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03234}03234 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03235}03235 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03236}03236 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03237}03237     \textcolor{keyword}{namespace }Impl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03238}03238 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03239}03239         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT> \textcolor{keyword}{struct }MatchAllOf;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03240}03240         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT> \textcolor{keyword}{struct }MatchAnyOf;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03241}03241         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT> \textcolor{keyword}{struct }MatchNotOf;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03242}03242 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03243}03243         \textcolor{keyword}{class }MatcherUntypedBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03244}03244         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03245}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_ab65764dc245d85e2b268d3be870b650a}{03245}}             \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_ab65764dc245d85e2b268d3be870b650a}{MatcherUntypedBase}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03246}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a985fd3c3ffcc9f2e8dc7a330130040b0}{03246}}             \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a985fd3c3ffcc9f2e8dc7a330130040b0}{MatcherUntypedBase}} ( \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base}{MatcherUntypedBase}} \textcolor{keyword}{const}\& ) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03247}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a1d446c018ecedb2ef633d9426d5f7914}{03247}}             \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base}{MatcherUntypedBase}}\& operator = ( \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base}{MatcherUntypedBase}} \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03248}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a5982c7c80ca71dfe2298babadad7a453}{03248}}             std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a5982c7c80ca71dfe2298babadad7a453}{toString}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03249}03249 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03250}03250         \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03251}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a853be93ce33f71b5abede38081c79e9d}{03251}}             \textcolor{keyword}{virtual} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a853be93ce33f71b5abede38081c79e9d}{\string~MatcherUntypedBase}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03252}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a91d3a907dbfcbb596077df24f6e11fe2}{03252}}             \textcolor{keyword}{virtual} std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a91d3a907dbfcbb596077df24f6e11fe2}{describe}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03253}03253             \textcolor{keyword}{mutable} std::string m\_cachedToString;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03254}03254         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03255}03255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03256}03256 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03257}03257 \textcolor{preprocessor}{\#    pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03258}03258 \textcolor{preprocessor}{\#    pragma clang diagnostic ignored "{}-\/Wnon-\/virtual-\/dtor"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03259}03259 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03260}03260 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03261}03261         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ObjectT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03262}03262         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_method}{MatcherMethod}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03263}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_method_ae0920ff9e817acf08e1bb0cbcb044e30}{03263}}             \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_method_ae0920ff9e817acf08e1bb0cbcb044e30}{match}}( ObjectT \textcolor{keyword}{const}\& arg ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03264}03264         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03265}03265 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03266}03266 \textcolor{preprocessor}{\#if defined(\_\_OBJC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03267}03267         \textcolor{comment}{// Hack to fix Catch GH issue \#1661. Could use id for generic Object support.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03268}03268         \textcolor{comment}{// use of const for Object pointers is very uncommon and under ARC it causes some kind of signature mismatch that breaks compilation}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03269}03269         \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03270}03270         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_method}{MatcherMethod}}<NSString*> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03271}03271             \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} match( NSString* arg ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03272}03272         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03273}03273 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03274}03274 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03275}03275 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03276}03276 \textcolor{preprocessor}{\#    pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03277}03277 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03278}03278 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03279}03279         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03280}03280         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}} : MatcherUntypedBase, MatcherMethod<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03281}03281 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03282}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_aae4a9827601f6f26a52126e193d012de}{03282}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of}{MatchAllOf<T>}} operator \&\& ( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03283}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_a5f8542b8f1567a6f9c65d0a6da7b679b}{03283}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of}{MatchAnyOf<T>}} operator || ( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03284}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_a5bb94bf2ff5c7ef73b7c11eb173bdf3b}{03284}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of}{MatchNotOf<T>}} operator ! () \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03285}03285         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03286}03286 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03287}03287         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03288}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of}{03288}}         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of}{MatchAllOf}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<ArgT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03289}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of_acfb377bda2c58ae62e6df9c3a8a89f8f}{03289}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of_acfb377bda2c58ae62e6df9c3a8a89f8f}{match}}( ArgT \textcolor{keyword}{const}\& arg )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03290}03290                 \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} matcher : m\_matchers ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03291}03291                     \textcolor{keywordflow}{if} (!matcher-\/>match(arg))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03292}03292                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03293}03293                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03294}03294                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03295}03295             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03296}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of_acbb9a083e93b546fd33c9235b644c40f}{03296}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of_acbb9a083e93b546fd33c9235b644c40f}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03297}03297                 std::string description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03298}03298                 description.reserve( 4 + m\_matchers.size()*32 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03299}03299                 description += \textcolor{stringliteral}{"{}( "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03300}03300                 \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03301}03301                 \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} matcher : m\_matchers ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03302}03302                     \textcolor{keywordflow}{if}( first )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03303}03303                         first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03304}03304                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03305}03305                         description += \textcolor{stringliteral}{"{} and "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03306}03306                     description += matcher-\/>toString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03307}03307                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03308}03308                 description += \textcolor{stringliteral}{"{} )"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03309}03309                 \textcolor{keywordflow}{return} description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03310}03310             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03311}03311 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03312}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of_a2ccd931f2739331bf9c26911618942a3}{03312}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_all_of}{MatchAllOf<ArgT>}} operator \&\& ( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase<ArgT>}} \textcolor{keyword}{const}\& other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03313}03313                 \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(*\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03314}03314                 \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.m\_matchers.push\_back( \&other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03315}03315                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03316}03316             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03317}03317 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03318}03318             std::vector<MatcherBase<ArgT> \textcolor{keyword}{const}*> m\_matchers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03319}03319         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03320}03320         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03321}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of}{03321}}         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of}{MatchAnyOf}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<ArgT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03322}03322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03323}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of_a8a3e8338f979e56277dcf553efb78dc0}{03323}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of_a8a3e8338f979e56277dcf553efb78dc0}{match}}( ArgT \textcolor{keyword}{const}\& arg )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03324}03324                 \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} matcher : m\_matchers ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03325}03325                     \textcolor{keywordflow}{if} (matcher-\/>match(arg))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03326}03326                         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03327}03327                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03328}03328                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03329}03329             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03330}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of_a315285204df93d1f8e72f50dd66eb709}{03330}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of_a315285204df93d1f8e72f50dd66eb709}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03331}03331                 std::string description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03332}03332                 description.reserve( 4 + m\_matchers.size()*32 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03333}03333                 description += \textcolor{stringliteral}{"{}( "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03334}03334                 \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03335}03335                 \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} matcher : m\_matchers ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03336}03336                     \textcolor{keywordflow}{if}( first )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03337}03337                         first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03338}03338                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03339}03339                         description += \textcolor{stringliteral}{"{} or "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03340}03340                     description += matcher-\/>toString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03341}03341                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03342}03342                 description += \textcolor{stringliteral}{"{} )"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03343}03343                 \textcolor{keywordflow}{return} description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03344}03344             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03345}03345 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03346}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of_add743d0bf073b81a204dc9997fbd2e30}{03346}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_any_of}{MatchAnyOf<ArgT>}} operator || ( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase<ArgT>}} \textcolor{keyword}{const}\& other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03347}03347                 \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(*\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03348}03348                 \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.m\_matchers.push\_back( \&other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03349}03349                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03350}03350             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03351}03351 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03352}03352             std::vector<MatcherBase<ArgT> \textcolor{keyword}{const}*> m\_matchers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03353}03353         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03354}03354 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03355}03355         \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03356}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of}{03356}}         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of}{MatchNotOf}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<ArgT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03357}03357 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03358}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_a47afdd9e4c3354cef85adc3186097ae4}{03358}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_a47afdd9e4c3354cef85adc3186097ae4}{MatchNotOf}}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase<ArgT>}} \textcolor{keyword}{const}\& underlyingMatcher ) : m\_underlyingMatcher( underlyingMatcher ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03359}03359 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03360}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_a181d693c0258e582d80dc6117a1f2b66}{03360}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_a181d693c0258e582d80dc6117a1f2b66}{match}}( ArgT \textcolor{keyword}{const}\& arg )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03361}03361                 \textcolor{keywordflow}{return} !m\_underlyingMatcher.match( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03362}03362             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03363}03363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03364}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_ac5fb4ef6a9069d23a4098c3c818f06b0}{03364}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_match_not_of_ac5fb4ef6a9069d23a4098c3c818f06b0}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03365}03365                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}not "{}} + m\_underlyingMatcher.toString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03366}03366             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03367}03367             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase<ArgT>}} \textcolor{keyword}{const}\& m\_underlyingMatcher;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03368}03368         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03369}03369 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03370}03370         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03371}03371         MatchAllOf<T> \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_aae4a9827601f6f26a52126e193d012de}{MatcherBase<T>::operator \&\& }}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}} \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03372}03372             \textcolor{keywordflow}{return} MatchAllOf<T>() \&\& *\textcolor{keyword}{this} \&\& other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03373}03373         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03374}03374         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03375}03375         MatchAnyOf<T> \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_a5f8542b8f1567a6f9c65d0a6da7b679b}{MatcherBase<T>::operator || }}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}} \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03376}03376             \textcolor{keywordflow}{return} MatchAnyOf<T>() || *\textcolor{keyword}{this} || other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03377}03377         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03378}03378         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03379}03379         MatchNotOf<T> \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base_a5bb94bf2ff5c7ef73b7c11eb173bdf3b}{MatcherBase<T>::operator ! }}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03380}03380             \textcolor{keywordflow}{return} MatchNotOf<T>( *\textcolor{keyword}{this} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03381}03381         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03382}03382 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03383}03383     \} \textcolor{comment}{// namespace Impl}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03384}03384 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03385}03385 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03386}03386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03387}03387 \textcolor{keyword}{using namespace }Matchers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03388}03388 \textcolor{keyword}{using }Matchers::Impl::MatcherBase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03389}03389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03390}03390 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03391}03391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03392}03392 \textcolor{comment}{// end catch\_matchers.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03393}03393 \textcolor{comment}{// start catch\_matchers\_exception.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03394}03394 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03395}03395 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03396}03396 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03397}03397 \textcolor{keyword}{namespace }Exception \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03398}03398 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03399}03399 \textcolor{keyword}{class }ExceptionMessageMatcher : \textcolor{keyword}{public} MatcherBase<std::exception> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03400}03400     std::string m\_message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03401}03401 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03402}03402 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03403}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_ace55942f39ba653db3fd69d6d90e188f}{03403}}     \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_ace55942f39ba653db3fd69d6d90e188f}{ExceptionMessageMatcher}}(std::string \textcolor{keyword}{const}\& message):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03404}03404         m\_message(message)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03405}03405     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03406}03406 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03407}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_aa0566d24990d69e96495360b8f79593d}{03407}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_aa0566d24990d69e96495360b8f79593d}{match}}(std::exception \textcolor{keyword}{const}\& ex) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03408}03408 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03409}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_a3543441985ec877a781e660a403b1bae}{03409}}     std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_a3543441985ec877a781e660a403b1bae}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03410}03410 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03411}03411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03412}03412 \} \textcolor{comment}{// namespace Exception}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03413}03413 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03414}03414 \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher}{Exception::ExceptionMessageMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a0fcd8bd126bb510a6bb99e6360aa270a}{Message}}(std::string \textcolor{keyword}{const}\& message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03415}03415 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03416}03416 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03417}03417 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03418}03418 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03419}03419 \textcolor{comment}{// end catch\_matchers\_exception.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03420}03420 \textcolor{comment}{// start catch\_matchers\_floating.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03421}03421 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03422}03422 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03423}03423 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03424}03424 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03425}03425     \textcolor{keyword}{namespace }Floating \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03426}03426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03427}03427         \textcolor{keyword}{enum class} FloatingPointKind : uint8\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03428}03428 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03429}03429         \textcolor{keyword}{struct }WithinAbsMatcher : MatcherBase<double> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03430}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_ac45340b98c41230a7def5bd86c2d870f}{03430}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_ac45340b98c41230a7def5bd86c2d870f}{WithinAbsMatcher}}(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} margin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03431}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_afa5d8eed57f12c1e5d006471eb0bfe72}{03431}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_afa5d8eed57f12c1e5d006471eb0bfe72}{match}}(\textcolor{keywordtype}{double} \textcolor{keyword}{const}\& matchee) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03432}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_a206a738680f8767af31d3f1835afff3f}{03432}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher_a206a738680f8767af31d3f1835afff3f}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03433}03433         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03434}03434             \textcolor{keywordtype}{double} m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03435}03435             \textcolor{keywordtype}{double} m\_margin;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03436}03436         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03437}03437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03438}03438         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher}{WithinUlpsMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<double> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03439}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_a0d29702ebd6ab7b679c9ce275514fe1e}{03439}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_a0d29702ebd6ab7b679c9ce275514fe1e}{WithinUlpsMatcher}}(\textcolor{keywordtype}{double} target, uint64\_t ulps, FloatingPointKind baseType);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03440}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_aabda42a0dc5d00f3c5916feb75006b32}{03440}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_aabda42a0dc5d00f3c5916feb75006b32}{match}}(\textcolor{keywordtype}{double} \textcolor{keyword}{const}\& matchee) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03441}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_ad9bc8bb7f3abd326580a4bf6cf369b1b}{03441}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher_ad9bc8bb7f3abd326580a4bf6cf369b1b}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03442}03442         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03443}03443             \textcolor{keywordtype}{double} m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03444}03444             uint64\_t m\_ulps;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03445}03445             FloatingPointKind m\_type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03446}03446         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03447}03447 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03448}03448         \textcolor{comment}{// Given IEEE-\/754 format for floats and doubles, we can assume}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03449}03449         \textcolor{comment}{// that float -\/> double promotion is lossless. Given this, we can}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03450}03450         \textcolor{comment}{// assume that if we do the standard relative comparison of}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03451}03451         \textcolor{comment}{// |lhs -\/ rhs| <= epsilon * max(fabs(lhs), fabs(rhs)), then we get}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03452}03452         \textcolor{comment}{// the same result if we do this for floats, as if we do this for}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03453}03453         \textcolor{comment}{// doubles that were promoted from floats.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03454}03454         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher}{WithinRelMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<double> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03455}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_aadfe37f6ed9bb025c93e51e11d8bee43}{03455}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_aadfe37f6ed9bb025c93e51e11d8bee43}{WithinRelMatcher}}(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} epsilon);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03456}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_ac4fc68ff316028137a6d940e10d78e12}{03456}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_ac4fc68ff316028137a6d940e10d78e12}{match}}(\textcolor{keywordtype}{double} \textcolor{keyword}{const}\& matchee) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03457}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_aeabbf5394d7dafebe874fef8a959fe8a}{03457}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher_aeabbf5394d7dafebe874fef8a959fe8a}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03458}03458         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03459}03459             \textcolor{keywordtype}{double} m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03460}03460             \textcolor{keywordtype}{double} m\_epsilon;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03461}03461         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03462}03462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03463}03463     \} \textcolor{comment}{// namespace Floating}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03464}03464 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03465}03465     \textcolor{comment}{// The following functions create the actual matcher objects.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03466}03466     \textcolor{comment}{// This allows the types to be inferred}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03467}03467     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher}{Floating::WithinUlpsMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a5d108ff6aaeac40f20f4978dfb3f51fc}{WithinULP}}(\textcolor{keywordtype}{double} target, uint64\_t maxUlpDiff);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03468}03468     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_ulps_matcher}{Floating::WithinUlpsMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a5d108ff6aaeac40f20f4978dfb3f51fc}{WithinULP}}(\textcolor{keywordtype}{float} target, uint64\_t maxUlpDiff);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03469}03469     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_abs_matcher}{Floating::WithinAbsMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a4c9ea76d47d02de0cf2d354c87c26e95}{WithinAbs}}(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} margin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03470}03470     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher}{Floating::WithinRelMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a18cfb571dd191377674bad0cbb50078e}{WithinRel}}(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} eps);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03471}03471     \textcolor{comment}{// defaults epsilon to 100*numeric\_limits<double>::epsilon()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03472}03472     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher}{Floating::WithinRelMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a18cfb571dd191377674bad0cbb50078e}{WithinRel}}(\textcolor{keywordtype}{double} target);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03473}03473     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher}{Floating::WithinRelMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a18cfb571dd191377674bad0cbb50078e}{WithinRel}}(\textcolor{keywordtype}{float} target, \textcolor{keywordtype}{float} eps);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03474}03474     \textcolor{comment}{// defaults epsilon to 100*numeric\_limits<float>::epsilon()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03475}03475     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_floating_1_1_within_rel_matcher}{Floating::WithinRelMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a18cfb571dd191377674bad0cbb50078e}{WithinRel}}(\textcolor{keywordtype}{float} target);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03476}03476 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03477}03477 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03478}03478 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03479}03479 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03480}03480 \textcolor{comment}{// end catch\_matchers\_floating.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03481}03481 \textcolor{comment}{// start catch\_matchers\_generic.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03482}03482 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03483}03483 \textcolor{preprocessor}{\#include <functional>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03484}03484 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03485}03485 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03486}03486 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03487}03487 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03488}03488 \textcolor{keyword}{namespace }Generic \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03489}03489 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03490}03490 \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03491}03491     std::string \mbox{\hyperlink{namespace_catch_1_1_matchers_1_1_generic_1_1_detail_a79ef1103073f7a8d31735436d2012835}{finalizeDescription}}(\textcolor{keyword}{const} std::string\& desc);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03492}03492 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03493}03493 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03494}03494 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03495}03495 \textcolor{keyword}{class }PredicateMatcher : \textcolor{keyword}{public} MatcherBase<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03496}03496     std::function<bool(T \textcolor{keyword}{const}\&)> m\_predicate;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03497}03497     std::string m\_description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03498}03498 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03499}03499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03500}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_a57d53ef028c2f7b92b016f627f91aa76}{03500}}     \mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_a57d53ef028c2f7b92b016f627f91aa76}{PredicateMatcher}}(std::function<\textcolor{keywordtype}{bool}(T \textcolor{keyword}{const}\&)> \textcolor{keyword}{const}\& elem, std::string \textcolor{keyword}{const}\& descr)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03501}03501         :m\_predicate(\mbox{\hyperlink{namespacestd}{std}}::move(elem)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03502}03502         m\_description(Detail::\mbox{\hyperlink{namespace_catch_1_1_matchers_1_1_generic_1_1_detail_a79ef1103073f7a8d31735436d2012835}{finalizeDescription}}(descr))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03503}03503     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03504}03504 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03505}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_a2ec0e8ec19c4c5e26271d59a06a62b52}{03505}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_a2ec0e8ec19c4c5e26271d59a06a62b52}{match}}( T \textcolor{keyword}{const}\& item )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03506}03506         \textcolor{keywordflow}{return} m\_predicate(item);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03507}03507     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03508}03508 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03509}\mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_af7d59e94892cc09471bbaefac4c889fd}{03509}}     std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher_af7d59e94892cc09471bbaefac4c889fd}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03510}03510         \textcolor{keywordflow}{return} m\_description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03511}03511     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03512}03512 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03513}03513 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03514}03514 \} \textcolor{comment}{// namespace Generic}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03515}03515 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03516}03516     \textcolor{comment}{// The following functions create the actual matcher objects.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03517}03517     \textcolor{comment}{// The user has to explicitly specify type to the function, because}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03518}03518     \textcolor{comment}{// inferring std::function<bool(T const\&)> is hard (but possible) and}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03519}03519     \textcolor{comment}{// requires a lot of TMP.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03520}03520     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03521}03521     \mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher}{Generic::PredicateMatcher<T>}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a70a7c65c44f6ea7f739402c0b6f28657}{Predicate}}(std::function<\textcolor{keywordtype}{bool}(T \textcolor{keyword}{const}\&)> \textcolor{keyword}{const}\& predicate, std::string \textcolor{keyword}{const}\& description = \textcolor{stringliteral}{"{}"{}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03522}03522         \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_generic_1_1_predicate_matcher}{Generic::PredicateMatcher<T>}}(predicate, description);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03523}03523     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03524}03524 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03525}03525 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03526}03526 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03527}03527 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03528}03528 \textcolor{comment}{// end catch\_matchers\_generic.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03529}03529 \textcolor{comment}{// start catch\_matchers\_string.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03530}03530 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03531}03531 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03532}03532 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03533}03533 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03534}03534 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03535}03535 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03536}03536     \textcolor{keyword}{namespace }StdString \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03537}03537 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03538}03538         \textcolor{keyword}{struct }CasedString}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03539}03539         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03540}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_aa88bbc5acd2bff22351d8d4b1816b561}{03540}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_aa88bbc5acd2bff22351d8d4b1816b561}{CasedString}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03541}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_a77639b1165c01f424ee0e96f53335010}{03541}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_a77639b1165c01f424ee0e96f53335010}{adjustString}}( std::string \textcolor{keyword}{const}\& str ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03542}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_a9759155344d696b2476d764a1d95fcc9}{03542}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_a9759155344d696b2476d764a1d95fcc9}{caseSensitivitySuffix}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03543}03543 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03544}03544             \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} m\_caseSensitivity;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03545}03545             std::string m\_str;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03546}03546         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03547}03547 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03548}03548         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base}{StringMatcherBase}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::string> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03549}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base_a3a9b66bae298ae27058478529b4bb39d}{03549}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base_a3a9b66bae298ae27058478529b4bb39d}{StringMatcherBase}}( std::string \textcolor{keyword}{const}\& operation, \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} \textcolor{keyword}{const}\& comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03550}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base_a47af030f8cea42a601ffb1000eea5cca}{03550}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base_a47af030f8cea42a601ffb1000eea5cca}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03551}03551 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03552}03552             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} m\_comparator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03553}03553             std::string m\_operation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03554}03554         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03555}03555 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03556}03556         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher}{EqualsMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base}{StringMatcherBase}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03557}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher_ab740f1fb2310e9fe3fed5134d4c7e4c8}{03557}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher_ab740f1fb2310e9fe3fed5134d4c7e4c8}{EqualsMatcher}}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} \textcolor{keyword}{const}\& comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03558}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher_a0bb9d64693f7bb1ef7441062d219f21a}{03558}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher_a0bb9d64693f7bb1ef7441062d219f21a}{match}}( std::string \textcolor{keyword}{const}\& source ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03559}03559         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03560}03560         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher}{ContainsMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base}{StringMatcherBase}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03561}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher_acc892883c8409e34b28c9b39d4ef1fe3}{03561}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher_acc892883c8409e34b28c9b39d4ef1fe3}{ContainsMatcher}}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} \textcolor{keyword}{const}\& comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03562}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher_a630628b234b037be83fe587081a80b53}{03562}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher_a630628b234b037be83fe587081a80b53}{match}}( std::string \textcolor{keyword}{const}\& source ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03563}03563         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03564}03564         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher}{StartsWithMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base}{StringMatcherBase}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03565}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher_a7b86f258bdbd131a6e7bcd94a8977325}{03565}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher_a7b86f258bdbd131a6e7bcd94a8977325}{StartsWithMatcher}}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} \textcolor{keyword}{const}\& comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03566}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher_a7da4747aed0c48989d8be59a89e2b7fb}{03566}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher_a7da4747aed0c48989d8be59a89e2b7fb}{match}}( std::string \textcolor{keyword}{const}\& source ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03567}03567         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03568}03568         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher}{EndsWithMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_string_matcher_base}{StringMatcherBase}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03569}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher_aa5ec700b4629562f74f362080accfd7b}{03569}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher_aa5ec700b4629562f74f362080accfd7b}{EndsWithMatcher}}( \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string}{CasedString}} \textcolor{keyword}{const}\& comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03570}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher_aca2741fa57374a2a98d2a84ac3e13a6d}{03570}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher_aca2741fa57374a2a98d2a84ac3e13a6d}{match}}( std::string \textcolor{keyword}{const}\& source ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03571}03571         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03572}03572 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03573}03573         \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher}{RegexMatcher}} : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::string> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03574}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_ab914deb885fe25558c41ab368c6b3916}{03574}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_ab914deb885fe25558c41ab368c6b3916}{RegexMatcher}}( std::string regex, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03575}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_aa8e61adccabb2f36133029301f6b8f4e}{03575}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_aa8e61adccabb2f36133029301f6b8f4e}{match}}( std::string \textcolor{keyword}{const}\& matchee ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03576}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_a1f788cd5258c987e5043f6c7f43adeb9}{03576}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher_a1f788cd5258c987e5043f6c7f43adeb9}{describe}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03577}03577 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03578}03578         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03579}03579             std::string m\_regex;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03580}03580             \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} m\_caseSensitivity;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03581}03581         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03582}03582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03583}03583     \} \textcolor{comment}{// namespace StdString}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03584}03584 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03585}03585     \textcolor{comment}{// The following functions create the actual matcher objects.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03586}03586     \textcolor{comment}{// This allows the types to be inferred}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03587}03587 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03588}03588     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_equals_matcher}{StdString::EqualsMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity = \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{CaseSensitive::Yes}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03589}03589     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_contains_matcher}{StdString::ContainsMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity = \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{CaseSensitive::Yes}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03590}03590     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_ends_with_matcher}{StdString::EndsWithMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{EndsWith}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity = \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{CaseSensitive::Yes}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03591}03591     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_starts_with_matcher}{StdString::StartsWithMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{StartsWith}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity = \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{CaseSensitive::Yes}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03592}03592     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_regex_matcher}{StdString::RegexMatcher}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{Matches}}( std::string \textcolor{keyword}{const}\& regex, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity = \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aa0b895efea11374090c2ff086bf15df8e}{CaseSensitive::Yes}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03593}03593 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03594}03594 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03595}03595 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03596}03596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03597}03597 \textcolor{comment}{// end catch\_matchers\_string.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03598}03598 \textcolor{comment}{// start catch\_matchers\_vector.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03599}03599 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03600}03600 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03601}03601 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03602}03602 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03603}03603 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03604}03604 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03605}03605     \textcolor{keyword}{namespace }Vector \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03606}03606         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} Alloc>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03607}03607         \textcolor{keyword}{struct }ContainsElementMatcher : MatcherBase<std::vector<T, Alloc>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03608}03608 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03609}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_a3f094e7ba2cf4764e784253818c506c8}{03609}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_a3f094e7ba2cf4764e784253818c506c8}{ContainsElementMatcher}}(T \textcolor{keyword}{const} \&comparator) : m\_comparator( comparator) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03610}03610 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03611}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_ac39745f1d1e2f102121a443fad761de3}{03611}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_ac39745f1d1e2f102121a443fad761de3}{match}}(std::vector<T, Alloc> \textcolor{keyword}{const} \&v)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03612}03612                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& el : v) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03613}03613                     \textcolor{keywordflow}{if} (el == m\_comparator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03614}03614                         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03615}03615                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03616}03616                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03617}03617                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03618}03618             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03619}03619 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03620}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_a4bcd9a471271ed4dadf5db7987baeeaa}{03620}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_element_matcher_a4bcd9a471271ed4dadf5db7987baeeaa}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03621}03621                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Contains: "{}} + \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( m\_comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03622}03622             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03623}03623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03624}03624             T \textcolor{keyword}{const}\& m\_comparator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03625}03625         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03626}03626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03627}03627         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp, \textcolor{keyword}{typename} AllocMatch>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03628}03628         \textcolor{keyword}{struct }ContainsMatcher : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::vector<T, AllocMatch>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03629}03629 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03630}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_a5cff10175edc91ed105b157493218ad8}{03630}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_a5cff10175edc91ed105b157493218ad8}{ContainsMatcher}}(std::vector<T, AllocComp> \textcolor{keyword}{const} \&comparator) : m\_comparator( comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03631}03631 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03632}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_a3104513b50a3da1659f82d69ac79057d}{03632}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_a3104513b50a3da1659f82d69ac79057d}{match}}(std::vector<T, AllocMatch> \textcolor{keyword}{const} \&v)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03633}03633                 \textcolor{comment}{// !TBD: see note in EqualsMatcher}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03634}03634                 \textcolor{keywordflow}{if} (m\_comparator.size() > v.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03635}03635                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03636}03636                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& comparator : m\_comparator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03637}03637                     \textcolor{keyword}{auto} present = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03638}03638                     \textcolor{keywordflow}{for} (\textcolor{keyword}{const} \textcolor{keyword}{auto}\& el : v) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03639}03639                         \textcolor{keywordflow}{if} (el == comparator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03640}03640                             present = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03641}03641                             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03642}03642                         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03643}03643                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03644}03644                     \textcolor{keywordflow}{if} (!present) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03645}03645                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03646}03646                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03647}03647                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03648}03648                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03649}03649             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03650}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_aa8ba33f6de86d0198b77023e1808933b}{03650}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher_aa8ba33f6de86d0198b77023e1808933b}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03651}03651                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Contains: "{}} + \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( m\_comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03652}03652             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03653}03653 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03654}03654             std::vector<T, AllocComp> \textcolor{keyword}{const}\& m\_comparator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03655}03655         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03656}03656 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03657}03657         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp, \textcolor{keyword}{typename} AllocMatch>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03658}03658         \textcolor{keyword}{struct }EqualsMatcher : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::vector<T, AllocMatch>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03659}03659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03660}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_aca4855dbe43977f4aceae8fd0a0422a8}{03660}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_aca4855dbe43977f4aceae8fd0a0422a8}{EqualsMatcher}}(std::vector<T, AllocComp> \textcolor{keyword}{const} \&comparator) : m\_comparator( comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03661}03661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03662}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_a4d46442b9d25b2234138359faab4f19d}{03662}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_a4d46442b9d25b2234138359faab4f19d}{match}}(std::vector<T, AllocMatch> \textcolor{keyword}{const} \&v)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03663}03663                 \textcolor{comment}{// !TBD: This currently works if all elements can be compared using !=}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03664}03664                 \textcolor{comment}{// -\/ a more general approach would be via a compare template that defaults}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03665}03665                 \textcolor{comment}{// to using !=. but could be specialised for, e.g. std::vector<T, Alloc> etc}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03666}03666                 \textcolor{comment}{// -\/ then just call that directly}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03667}03667                 \textcolor{keywordflow}{if} (m\_comparator.size() != v.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03668}03668                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03669}03669                 \textcolor{keywordflow}{for} (std::size\_t i = 0; i < v.size(); ++i)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03670}03670                     \textcolor{keywordflow}{if} (m\_comparator[i] != v[i])}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03671}03671                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03672}03672                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03673}03673             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03674}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_a398b5cc80200b3b45922c36bddcb4b37}{03674}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_equals_matcher_a398b5cc80200b3b45922c36bddcb4b37}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03675}03675                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Equals: "{}} + \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( m\_comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03676}03676             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03677}03677             std::vector<T, AllocComp> \textcolor{keyword}{const}\& m\_comparator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03678}03678         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03679}03679 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03680}03680         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp, \textcolor{keyword}{typename} AllocMatch>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03681}03681         \textcolor{keyword}{struct }ApproxMatcher : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::vector<T, AllocMatch>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03682}03682 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03683}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a23147d891d3d9b6bb0af599ee87bbcc2}{03683}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a23147d891d3d9b6bb0af599ee87bbcc2}{ApproxMatcher}}(std::vector<T, AllocComp> \textcolor{keyword}{const}\& comparator) : m\_comparator( comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03684}03684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03685}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_af200c5c98e8e2a6f24617ef4a0a6830a}{03685}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_af200c5c98e8e2a6f24617ef4a0a6830a}{match}}(std::vector<T, AllocMatch> \textcolor{keyword}{const} \&v)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03686}03686                 \textcolor{keywordflow}{if} (m\_comparator.size() != v.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03687}03687                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03688}03688                 \textcolor{keywordflow}{for} (std::size\_t i = 0; i < v.size(); ++i)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03689}03689                     \textcolor{keywordflow}{if} (m\_comparator[i] != approx(v[i]))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03690}03690                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03691}03691                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03692}03692             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03693}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a760b0d1922d53b7ec327ac7418681c3f}{03693}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a760b0d1922d53b7ec327ac7418681c3f}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03694}03694                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}is approx: "{}} + \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( m\_comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03695}03695             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03696}03696             \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03697}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_aa459371d702f3230df20000f40585f2a}{03697}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher}{ApproxMatcher}}\& \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_aa459371d702f3230df20000f40585f2a}{epsilon}}( T \textcolor{keyword}{const}\& newEpsilon ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03698}03698                 approx.\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_aa459371d702f3230df20000f40585f2a}{epsilon}}(newEpsilon);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03699}03699                 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03700}03700             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03701}03701             \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03702}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a9cb1a0ca6bd538f98a6c87d9202156d6}{03702}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher}{ApproxMatcher}}\& \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a9cb1a0ca6bd538f98a6c87d9202156d6}{margin}}( T \textcolor{keyword}{const}\& newMargin ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03703}03703                 approx.\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a9cb1a0ca6bd538f98a6c87d9202156d6}{margin}}(newMargin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03704}03704                 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03705}03705             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03706}03706             \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{template <typename = typename std::enable\_if<std::is\_constructible<double, T>::value}}>::type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03707}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a0c30af2e88e9ba997fd7400d3d4ac93d}{03707}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher}{ApproxMatcher}}\& \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a0c30af2e88e9ba997fd7400d3d4ac93d}{scale}}( T \textcolor{keyword}{const}\& newScale ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03708}03708                 approx.\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_approx_matcher_a0c30af2e88e9ba997fd7400d3d4ac93d}{scale}}(newScale);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03709}03709                 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03710}03710             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03711}03711 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03712}03712             std::vector<T, AllocComp> \textcolor{keyword}{const}\& m\_comparator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03713}03713             \textcolor{keyword}{mutable} \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Catch::Detail::Approx}} approx = \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_aaf86dc0ee92272ac2d9839197a07951d}{Catch::Detail::Approx::custom}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03714}03714         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03715}03715 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03716}03716         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp, \textcolor{keyword}{typename} AllocMatch>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03717}03717         \textcolor{keyword}{struct }UnorderedEqualsMatcher : \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_impl_1_1_matcher_base}{MatcherBase}}<std::vector<T, AllocMatch>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03718}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_ab78e6bbbad05472815a695650edc062c}{03718}}             \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_ab78e6bbbad05472815a695650edc062c}{UnorderedEqualsMatcher}}(std::vector<T, AllocComp> \textcolor{keyword}{const}\& target) : m\_target(target) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03719}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_abd5547585ba722cf3bb7aa3f9a8ffc0e}{03719}}             \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_abd5547585ba722cf3bb7aa3f9a8ffc0e}{match}}(std::vector<T, AllocMatch> \textcolor{keyword}{const}\& vec)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03720}03720                 \textcolor{keywordflow}{if} (m\_target.size() != vec.size()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03721}03721                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03722}03722                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03723}03723                 \textcolor{keywordflow}{return} std::is\_permutation(m\_target.begin(), m\_target.end(), vec.begin());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03724}03724             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03725}03725 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03726}\mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_a33b685a1505a0afe06ded7e0d207bc14}{03726}}             std::string \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_unordered_equals_matcher_a33b685a1505a0afe06ded7e0d207bc14}{describe}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03727}03727                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}UnorderedEquals: "{}} + \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}(m\_target);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03728}03728             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03729}03729         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03730}03730             std::vector<T, AllocComp> \textcolor{keyword}{const}\& m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03731}03731         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03732}03732 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03733}03733     \} \textcolor{comment}{// namespace Vector}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03734}03734 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03735}03735     \textcolor{comment}{// The following functions create the actual matcher objects.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03736}03736     \textcolor{comment}{// This allows the types to be inferred}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03737}03737 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03738}03738     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp = std::allocator<T>, \textcolor{keyword}{typename} AllocMatch = AllocComp>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03739}03739     \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher}{Vector::ContainsMatcher<T, AllocComp, AllocMatch>}} \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}}( std::vector<T, AllocComp> \textcolor{keyword}{const}\& comparator ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03740}03740         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_vector_1_1_contains_matcher}{Vector::ContainsMatcher<T, AllocComp, AllocMatch>}}( comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03741}03741     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03742}03742 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03743}03743     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} Alloc = std::allocator<T>>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03744}03744     Vector::ContainsElementMatcher<T, Alloc> \mbox{\hyperlink{namespace_catch_1_1_matchers_ad8092d8b34128390dbff20b87f2f6f99}{VectorContains}}( T \textcolor{keyword}{const}\& comparator ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03745}03745         \textcolor{keywordflow}{return} Vector::ContainsElementMatcher<T, Alloc>( comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03746}03746     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03747}03747 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03748}03748     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp = std::allocator<T>, \textcolor{keyword}{typename} AllocMatch = AllocComp>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03749}03749     Vector::EqualsMatcher<T, AllocComp, AllocMatch> \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}}( std::vector<T, AllocComp> \textcolor{keyword}{const}\& comparator ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03750}03750         \textcolor{keywordflow}{return} Vector::EqualsMatcher<T, AllocComp, AllocMatch>( comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03751}03751     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03752}03752 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03753}03753     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp = std::allocator<T>, \textcolor{keyword}{typename} AllocMatch = AllocComp>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03754}03754     Vector::ApproxMatcher<T, AllocComp, AllocMatch> \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Approx}}( std::vector<T, AllocComp> \textcolor{keyword}{const}\& comparator ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03755}03755         \textcolor{keywordflow}{return} Vector::ApproxMatcher<T, AllocComp, AllocMatch>( comparator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03756}03756     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03757}03757 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03758}03758     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} AllocComp = std::allocator<T>, \textcolor{keyword}{typename} AllocMatch = AllocComp>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03759}03759     Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch> \mbox{\hyperlink{namespace_catch_1_1_matchers_a3b1784cd26bd7e3fea38505eb138b186}{UnorderedEquals}}(std::vector<T, AllocComp> \textcolor{keyword}{const}\& target) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03760}03760         \textcolor{keywordflow}{return} Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch>( target );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03761}03761     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03762}03762 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03763}03763 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03764}03764 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03765}03765 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03766}03766 \textcolor{comment}{// end catch\_matchers\_vector.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03767}03767 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03768}03768 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03769}03769     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT, \textcolor{keyword}{typename} MatcherT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03770}03770     \textcolor{keyword}{class }MatchExpr : \textcolor{keyword}{public} ITransientExpression \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03771}03771         ArgT \textcolor{keyword}{const}\& m\_arg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03772}03772         MatcherT m\_matcher;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03773}03773         StringRef m\_matcherString;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03774}03774     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03775}\mbox{\hyperlink{class_catch_1_1_match_expr_ae55ee9bf46c8676c65e9df291a98c345}{03775}}         \mbox{\hyperlink{class_catch_1_1_match_expr_ae55ee9bf46c8676c65e9df291a98c345}{MatchExpr}}( ArgT \textcolor{keyword}{const}\& arg, MatcherT \textcolor{keyword}{const}\& matcher, \mbox{\hyperlink{class_catch_1_1_string_ref}{StringRef}} \textcolor{keyword}{const}\& matcherString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03776}03776         :   \mbox{\hyperlink{struct_catch_1_1_i_transient_expression}{ITransientExpression}}\{ true, matcher.match( arg ) \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03777}03777             m\_arg( arg ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03778}03778             m\_matcher( matcher ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03779}03779             m\_matcherString( matcherString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03780}03780         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03781}03781 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03782}\mbox{\hyperlink{class_catch_1_1_match_expr_ad3e41adb597750b2219bb37e51185629}{03782}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_match_expr_ad3e41adb597750b2219bb37e51185629}{streamReconstructedExpression}}( std::ostream \&os )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03783}03783             \textcolor{keyword}{auto} matcherAsString = m\_matcher.toString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03784}03784             os << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( m\_arg ) << \textcolor{charliteral}{' '};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03785}03785             \textcolor{keywordflow}{if}( matcherAsString == \mbox{\hyperlink{namespace_catch_1_1_detail_a466775f4eec29ffef29ab334cd885136}{Detail::unprintableString}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03786}03786                 os << m\_matcherString;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03787}03787             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03788}03788                 os << matcherAsString;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03789}03789         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03790}03790     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03791}03791 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03792}03792     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_ad347e71864a8f95073fb1ba62137f9d6}{StringMatcher}} = Matchers::Impl::MatcherBase<std::string>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03793}03793 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03794}03794     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_aea6f8ff3b3838829d4a61694e4bc41ca}{handleExceptionMatchExpr}}( \mbox{\hyperlink{class_catch_1_1_assertion_handler_a32efbb1b56b71d758d4c2094bac1f1a9}{AssertionHandler}}\& handler, \mbox{\hyperlink{namespace_catch_ad347e71864a8f95073fb1ba62137f9d6}{StringMatcher}} \textcolor{keyword}{const}\& matcher, StringRef \textcolor{keyword}{const}\& matcherString  );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03795}03795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03796}03796     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgT, \textcolor{keyword}{typename} MatcherT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03797}03797     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a23a9a9a6dfef7ecd5e0eaf553fc52de6}{makeMatchExpr}}( ArgT \textcolor{keyword}{const}\& arg, MatcherT \textcolor{keyword}{const}\& matcher, StringRef \textcolor{keyword}{const}\& matcherString  ) -\/> MatchExpr<ArgT, MatcherT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03798}03798         \textcolor{keywordflow}{return} MatchExpr<ArgT, MatcherT>( arg, matcher, matcherString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03799}03799     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03800}03800 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03801}03801 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03802}03802 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03804}\mbox{\hyperlink{catch2_2catch_8hpp_a877690adc04f1fbfe944df6bebe6f8b5}{03804}} \textcolor{preprocessor}{\#define INTERNAL\_CHECK\_THAT( macroName, matcher, resultDisposition, arg ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03805}03805 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03806}03806 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(arg) "{}, "{}} CATCH\_INTERNAL\_STRINGIFY(matcher), resultDisposition ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03807}03807         INTERNAL\_CATCH\_TRY \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03808}03808             catchAssertionHandler.handleExpr( Catch::makeMatchExpr( arg, matcher, \#matcher\#\#\_catch\_sr ) ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03809}03809         \} INTERNAL\_CATCH\_CATCH( catchAssertionHandler ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03810}03810         INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03811}03811     \} while( false )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03812}03812 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03814}\mbox{\hyperlink{catch2_2catch_8hpp_ace8fc7b74db8a1b2916554ad64e5b036}{03814}} \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_THROWS\_MATCHES( macroName, exceptionType, resultDisposition, matcher, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03815}03815 \textcolor{preprocessor}{    do \{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03816}03816 \textcolor{preprocessor}{        Catch::AssertionHandler catchAssertionHandler( macroName\#\#\_catch\_sr, CATCH\_INTERNAL\_LINEINFO, CATCH\_INTERNAL\_STRINGIFY(\_\_VA\_ARGS\_\_) "{}, "{}} CATCH\_INTERNAL\_STRINGIFY(exceptionType) "{}, "{} CATCH\_INTERNAL\_STRINGIFY(matcher), resultDisposition ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03817}03817         if( catchAssertionHandler.allowThrows() ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03818}03818             try \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03819}03819                 static\_cast<void>(\_\_VA\_ARGS\_\_ ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03820}03820                 catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03821}03821             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03822}03822             catch( exceptionType const\& ex ) \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03823}03823                 catchAssertionHandler.handleExpr( Catch::makeMatchExpr( ex, matcher, \#matcher\#\#\_catch\_sr ) ); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03824}03824             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03825}03825             catch( ... ) \{ \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03826}03826                 catchAssertionHandler.handleUnexpectedInflightException(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03827}03827             \} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03828}03828         else \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03829}03829             catchAssertionHandler.handleThrowingCallSkipped(); \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03830}03830         INTERNAL\_CATCH\_REACT( catchAssertionHandler ) \(\backslash\)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03831}03831     \} while( false )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03832}03832 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03833}03833 \textcolor{comment}{// end catch\_capture\_matchers.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03834}03834 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03835}03835 \textcolor{comment}{// start catch\_generators.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03836}03836 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03837}03837 \textcolor{comment}{// start catch\_interfaces\_generatortracker.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03838}03838 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03839}03839 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03840}03840 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03841}03841 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03842}03842 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03843}03843 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03844}03844     \textcolor{keyword}{namespace }Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03845}03845         \textcolor{keyword}{class }GeneratorUntypedBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03846}03846         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03847}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_a00ff0179d739c3016756b6cf56fabbad}{03847}}             \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_a00ff0179d739c3016756b6cf56fabbad}{GeneratorUntypedBase}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03848}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_a6f05f8099fdc5744a7aff68aa8c09c7f}{03848}}             \textcolor{keyword}{virtual} \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_a6f05f8099fdc5744a7aff68aa8c09c7f}{\string~GeneratorUntypedBase}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03849}03849             \textcolor{comment}{// Attempts to move the generator to the next element}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03850}03850              \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03851}03851              \textcolor{comment}{// Returns true iff the move succeeded (and a valid element}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03852}03852              \textcolor{comment}{// can be retrieved).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03853}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_aeed3c0cd6233c5f553549e453b8d6638}{03853}}             \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_aeed3c0cd6233c5f553549e453b8d6638}{next}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03854}03854         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03855}03855         \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}} = std::unique\_ptr<GeneratorUntypedBase>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03856}03856 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03857}03857     \} \textcolor{comment}{// namespace Generators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03858}03858 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03859}03859     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_generator_tracker}{IGeneratorTracker}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03860}\mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_a20b3c82baa68f821c180d6dac1234eb1}{03860}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_a20b3c82baa68f821c180d6dac1234eb1}{\string~IGeneratorTracker}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03861}\mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_ae88084f9af27c8b9a5d5775b9c148498}{03861}}         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} \mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_ae88084f9af27c8b9a5d5775b9c148498}{hasGenerator}}() const -\/> \textcolor{keywordtype}{bool} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03862}\mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_a23be942fc51672598bfa02c678c3078a}{03862}}         virtual auto getGenerator() const -\/> Generators::\mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}} const\& = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03863}\mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_a9945eff42219edc5a7071eebd8b0419e}{03863}}         virtual \textcolor{keywordtype}{void} setGenerator( Generators::\mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}}\&\& generator ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03864}03864     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03865}03865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03866}03866 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03867}03867 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03868}03868 \textcolor{comment}{// end catch\_interfaces\_generatortracker.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03869}03869 \textcolor{comment}{// start catch\_enforce.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03870}03870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03871}03871 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03872}03872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03873}03873 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03874}03874 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03875}03875     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Ex>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03876}03876     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03877}03877     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(Ex \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03878}03878         \textcolor{keywordflow}{throw} \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03879}03879     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03880}03880 \textcolor{preprocessor}{\#else }\textcolor{comment}{// \string^\string^ Exceptions are enabled //  Exceptions are disabled vv}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03881}03881     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03882}03882     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(std::exception \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03883}03883 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03884}03884 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03885}03885     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03886}03886     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a707884e681203fef6bf7dbf752532fa5}{throw\_logic\_error}}(std::string \textcolor{keyword}{const}\& msg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03887}03887     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03888}03888     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_ae67297c3e265b0fcd55de371bf408e4e}{throw\_domain\_error}}(std::string \textcolor{keyword}{const}\& msg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03889}03889     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03890}03890     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a48d2c35022dd9d56a1b7ee78ad581eea}{throw\_runtime\_error}}(std::string \textcolor{keyword}{const}\& msg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03891}03891 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03892}03892 \} \textcolor{comment}{// namespace Catch;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03893}03893 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03894}\mbox{\hyperlink{catch2_2catch_8hpp_a8e47cad0b28262f193e489df151fed27}{03894}} \textcolor{preprocessor}{\#define CATCH\_MAKE\_MSG(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03895}03895 \textcolor{preprocessor}{    (Catch::ReusableStringStream() << \_\_VA\_ARGS\_\_).str()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03896}03896 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03897}\mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{03897}} \textcolor{preprocessor}{\#define CATCH\_INTERNAL\_ERROR(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03898}03898 \textcolor{preprocessor}{    Catch::throw\_logic\_error(CATCH\_MAKE\_MSG( CATCH\_INTERNAL\_LINEINFO << "{}: Internal Catch2 error: "{}} << \_\_VA\_ARGS\_\_))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03899}03899 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03900}\mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{03900}} \textcolor{preprocessor}{\#define CATCH\_ERROR(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03901}03901 \textcolor{preprocessor}{    Catch::throw\_domain\_error(CATCH\_MAKE\_MSG( \_\_VA\_ARGS\_\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03902}03902 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03903}\mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{03903}} \textcolor{preprocessor}{\#define CATCH\_RUNTIME\_ERROR(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03904}03904 \textcolor{preprocessor}{    Catch::throw\_runtime\_error(CATCH\_MAKE\_MSG( \_\_VA\_ARGS\_\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03905}03905 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03906}\mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{03906}} \textcolor{preprocessor}{\#define CATCH\_ENFORCE( condition, ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03907}03907 \textcolor{preprocessor}{    do\{ if( !(condition) ) CATCH\_ERROR( \_\_VA\_ARGS\_\_ ); \} while(false)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03908}03908 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03909}03909 \textcolor{comment}{// end catch\_enforce.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03910}03910 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03911}03911 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03912}03912 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03913}03913 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03914}03914 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03915}03915 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03916}03916 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03917}03917 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03918}03918 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03919}03919 \textcolor{keyword}{class }GeneratorException : \textcolor{keyword}{public} std::exception \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03920}03920     \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \textcolor{keyword}{const} m\_msg = \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03921}03921 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03922}03922 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03923}\mbox{\hyperlink{class_catch_1_1_generator_exception_a3cf9282d555ec32389665ce723bf36ea}{03923}}     \mbox{\hyperlink{class_catch_1_1_generator_exception_a3cf9282d555ec32389665ce723bf36ea}{GeneratorException}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* msg):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03924}03924         m\_msg(msg)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03925}03925     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03926}03926 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03927}\mbox{\hyperlink{class_catch_1_1_generator_exception_ac40705ff5da208ce3a7d3023d0d3f4c6}{03927}}     \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \mbox{\hyperlink{class_catch_1_1_generator_exception_ac40705ff5da208ce3a7d3023d0d3f4c6}{what}}() const noexcept override final;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03928}03928 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03929}03929 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03930}03930 namespace Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03931}03931 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03932}03932     \textcolor{comment}{// !TBD move this into its own location?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03933}03933     \textcolor{keyword}{namespace }pf\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03934}03934         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03935}03935         std::unique\_ptr<T> \mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{make\_unique}}( Args\&\&... args ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03936}03936             \textcolor{keywordflow}{return} std::unique\_ptr<T>(\textcolor{keyword}{new} T(std::forward<Args>(args)...));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03937}03937         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03938}03938     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03939}03939 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03940}03940     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03941}03941     \textcolor{keyword}{struct }IGenerator : GeneratorUntypedBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03942}\mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_afe5b6eecbbd735e69748d68574611747}{03942}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_afe5b6eecbbd735e69748d68574611747}{\string~IGenerator}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03943}03943 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03944}03944         \textcolor{comment}{// Returns the current element of the generator}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03945}03945         \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03946}03946         \textcolor{comment}{// \(\backslash\)Precondition The generator is either freshly constructed,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03947}03947         \textcolor{comment}{// or the last call to `next()` returned true}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03948}\mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_a0fb6da789cda5b4e90f036737db82485}{03948}}         \textcolor{keyword}{virtual} T \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_a0fb6da789cda5b4e90f036737db82485}{get}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03949}\mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_a1f8677875fe0ff31f39c60d45504b9a5}{03949}}         \textcolor{keyword}{using }\mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator_a1f8677875fe0ff31f39c60d45504b9a5}{type}} = T;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03950}03950     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03951}03951 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03952}03952     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03953}03953     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator}{SingleValueGenerator}} final : \textcolor{keyword}{public} \mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator}{IGenerator}}<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03954}03954         T m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03955}03955     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03956}\mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_a532140dd2d1a673692271bb76a661ebe}{03956}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_a532140dd2d1a673692271bb76a661ebe}{SingleValueGenerator}}(T\&\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) : m\_value(\mbox{\hyperlink{namespacestd}{std}}::move(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}})) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03957}03957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03958}\mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_af1ed1913c9c73687fd74378fe5394382}{03958}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_af1ed1913c9c73687fd74378fe5394382}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03959}03959             \textcolor{keywordflow}{return} m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03960}03960         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03961}\mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_a10833b34e3ccbc484624185712eb8b6e}{03961}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_single_value_generator_a10833b34e3ccbc484624185712eb8b6e}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03962}03962             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03963}03963         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03964}03964     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03965}03965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03966}03966     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03967}03967     \textcolor{keyword}{class }FixedValuesGenerator final : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03968}03968         \textcolor{keyword}{static\_assert}(!\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03969}03969             \textcolor{stringliteral}{"{}FixedValuesGenerator does not support bools because of std::vector<bool>"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03970}03970             \textcolor{stringliteral}{"{}specialization, use SingleValue Generator instead."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03971}03971         std::vector<T> m\_values;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03972}03972         \textcolor{keywordtype}{size\_t} m\_idx = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03973}03973     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03974}\mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a6e9f473655413c1cb15f079890f06b86}{03974}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a6e9f473655413c1cb15f079890f06b86}{FixedValuesGenerator}}( std::initializer\_list<T> \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) : m\_values( \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03975}03975 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03976}\mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a8d64d3d943f3029d1669ae3cf91cc493}{03976}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a8d64d3d943f3029d1669ae3cf91cc493}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03977}03977             \textcolor{keywordflow}{return} m\_values[m\_idx];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03978}03978         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03979}\mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a6ce9e3ed045239c7b82873f24bd9cd3b}{03979}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_fixed_values_generator_a6ce9e3ed045239c7b82873f24bd9cd3b}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03980}03980             ++m\_idx;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03981}03981             \textcolor{keywordflow}{return} m\_idx < m\_values.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03982}03982         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03983}03983     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03984}03984 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03985}03985     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03986}03986     \textcolor{keyword}{class }GeneratorWrapper final \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03987}03987         std::unique\_ptr<IGenerator<T>> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03988}03988     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03989}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_ad65b09392d8b3a7472a8b5375048748d}{03989}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_ad65b09392d8b3a7472a8b5375048748d}{GeneratorWrapper}}(std::unique\_ptr<\mbox{\hyperlink{struct_catch_1_1_generators_1_1_i_generator}{IGenerator<T>}}> generator):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03990}03990             m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03991}03991         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03992}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_a4a461a591d0bd5360a2745cb2b5011cc}{03992}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_a4a461a591d0bd5360a2745cb2b5011cc}{get}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03993}03993             \textcolor{keywordflow}{return} m\_generator-\/>get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03994}03994         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03995}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_acbfdca94811ae02461bd2cf5f60b666e}{03995}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper_acbfdca94811ae02461bd2cf5f60b666e}{next}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03996}03996             \textcolor{keywordflow}{return} m\_generator-\/>next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03997}03997         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03998}03998     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l03999}03999 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04000}04000     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04001}04001     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}(T\&\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04002}04002         \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<SingleValueGenerator<T>>(std::forward<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}})));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04003}04003     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04004}04004     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04005}04005     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}(std::initializer\_list<T> \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04006}04006         \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<FixedValuesGenerator<T>>(\mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04007}04007     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04008}04008 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04009}04009     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04010}04010     \textcolor{keyword}{class }Generators : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04011}04011         std::vector<GeneratorWrapper<T>> m\_generators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04012}04012         \textcolor{keywordtype}{size\_t} m\_current = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04013}04013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04014}04014         \textcolor{keywordtype}{void} populate(GeneratorWrapper<T>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04015}04015             m\_generators.emplace\_back(std::move(generator));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04016}04016         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04017}04017         \textcolor{keywordtype}{void} populate(T\&\& val) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04018}04018             m\_generators.emplace\_back(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}(std::forward<T>(val)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04019}04019         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04020}04020         \textcolor{keyword}{template}<\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04021}04021         \textcolor{keywordtype}{void} populate(U\&\& val) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04022}04022             populate(T(std::forward<U>(val)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04023}04023         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04024}04024         \textcolor{keyword}{template}<\textcolor{keyword}{typename} U, \textcolor{keyword}{typename}... Gs>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04025}04025         \textcolor{keywordtype}{void} populate(U\&\& valueOrGenerator, Gs \&\&... moreGenerators) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04026}04026             populate(std::forward<U>(valueOrGenerator));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04027}04027             populate(std::forward<Gs>(moreGenerators)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04028}04028         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04029}04029 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04030}04030     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04031}04031         \textcolor{keyword}{template} <\textcolor{keyword}{typename}... Gs>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04032}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_a2bcb50c42a8729cbac079b3b61699a61}{04032}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_a2bcb50c42a8729cbac079b3b61699a61}{Generators}}(Gs \&\&... moreGenerators) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04033}04033             m\_generators.reserve(\textcolor{keyword}{sizeof}...(Gs));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04034}04034             populate(std::forward<Gs>(moreGenerators)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04035}04035         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04036}04036 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04037}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_ad86b343eac34f6771358507dd8ea98c4}{04037}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_ad86b343eac34f6771358507dd8ea98c4}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04038}04038             \textcolor{keywordflow}{return} m\_generators[m\_current].get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04039}04039         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04040}04040 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04041}\mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_ad127fd2a07347b527f79ab3b78bd40fb}{04041}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_generators_ad127fd2a07347b527f79ab3b78bd40fb}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04042}04042             \textcolor{keywordflow}{if} (m\_current >= m\_generators.size()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04043}04043                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04044}04044             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04045}04045             \textcolor{keyword}{const} \textcolor{keywordtype}{bool} current\_status = m\_generators[m\_current].next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04046}04046             \textcolor{keywordflow}{if} (!current\_status) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04047}04047                 ++m\_current;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04048}04048             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04049}04049             \textcolor{keywordflow}{return} m\_current < m\_generators.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04050}04050         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04051}04051     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04052}04052 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04053}04053     \textcolor{keyword}{template}<\textcolor{keyword}{typename}... Ts>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04054}04054     GeneratorWrapper<std::tuple<Ts...>> \mbox{\hyperlink{namespace_catch_1_1_generators_ae980a8b181bc56242a73161a05b312ee}{table}}( std::initializer\_list<std::tuple<\textcolor{keyword}{typename} std::decay<Ts>::type...>> tuples ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04055}04055         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}<std::tuple<Ts...>>( tuples );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04056}04056     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04057}04057 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04058}04058     \textcolor{comment}{// Tag type to signal that a generator sequence should convert arguments to a specific type}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04059}04059     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04060}04060     \textcolor{keyword}{struct }as \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04061}04061 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04062}04062     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename}... Gs>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04063}04063     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( GeneratorWrapper<T>\&\& generator, Gs \&\&... moreGenerators ) -\/> Generators<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04064}04064         \textcolor{keywordflow}{return} Generators<T>(std::move(generator), std::forward<Gs>(moreGenerators)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04065}04065     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04066}04066     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04067}04067     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( GeneratorWrapper<T>\&\& generator ) -\/> Generators<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04068}04068         \textcolor{keywordflow}{return} Generators<T>(std::move(generator));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04069}04069     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04070}04070     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename}... Gs>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04071}04071     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( T\&\& val, Gs \&\&... moreGenerators ) -\/> Generators<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04072}04072         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}( std::forward<T>( val ) ), std::forward<Gs>( moreGenerators )... );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04073}04073     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04074}04074     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} U, \textcolor{keyword}{typename}... Gs>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04075}04075     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( as<T>, U\&\& val, Gs \&\&... moreGenerators ) -\/> Generators<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04076}04076         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_aac8c5682b95d3467b013de492f21e7e2}{makeGenerators}}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}( T( std::forward<U>( val ) ) ), std::forward<Gs>( moreGenerators )... );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04077}04077     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04078}04078 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04079}04079     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_ac1fe3550c5f97370fc6729e04d7571b8}{acquireGeneratorTracker}}( StringRef generatorName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo ) -\/> IGeneratorTracker\&;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04080}04080 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04081}04081     \textcolor{keyword}{template}<\textcolor{keyword}{typename} L>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04082}04082     \textcolor{comment}{// Note: The type after -\/> is weird, because VS2015 cannot parse}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04083}04083     \textcolor{comment}{//       the expression used in the typedef inside, when it is in}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04084}04084     \textcolor{comment}{//       return type. Yeah.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04085}04085     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b0ab1f589b1d1e0e92afcd12cf4ab12}{generate}}( StringRef generatorName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo, L \textcolor{keyword}{const}\& generatorExpression ) -\/> \textcolor{keyword}{decltype}(std::declval<decltype(generatorExpression())>().get()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04086}04086         \textcolor{keyword}{using }UnderlyingType = \textcolor{keyword}{typename} \textcolor{keyword}{decltype}(generatorExpression())::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04087}04087 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04088}04088         IGeneratorTracker\& tracker = \mbox{\hyperlink{namespace_catch_1_1_generators_ac1fe3550c5f97370fc6729e04d7571b8}{acquireGeneratorTracker}}( generatorName, lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04089}04089         \textcolor{keywordflow}{if} (!tracker.hasGenerator()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04090}04090             tracker.setGenerator(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<Generators<UnderlyingType>>(generatorExpression()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04091}04091         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04092}04092 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04093}04093         \textcolor{keyword}{auto} \textcolor{keyword}{const}\& generator = \textcolor{keyword}{static\_cast<}IGenerator<UnderlyingType> const\&\textcolor{keyword}{>}( *tracker.getGenerator() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04094}04094         \textcolor{keywordflow}{return} generator.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04095}04095     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04096}04096 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04097}04097 \} \textcolor{comment}{// namespace Generators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04098}04098 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04099}04099 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04100}\mbox{\hyperlink{catch2_2catch_8hpp_a4941c6427cfa36ee7c52d734e460f9df}{04100}} \textcolor{preprocessor}{\#define GENERATE( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04101}04101 \textcolor{preprocessor}{    Catch::Generators::generate( INTERNAL\_CATCH\_STRINGIZE(INTERNAL\_CATCH\_UNIQUE\_NAME(generator)), \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04102}04102 \textcolor{preprocessor}{                                 CATCH\_INTERNAL\_LINEINFO, \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04103}04103 \textcolor{preprocessor}{                                 [ ]\{ using namespace Catch::Generators; return makeGenerators( \_\_VA\_ARGS\_\_ ); \} ) }\textcolor{comment}{//NOLINT(google-\/build-\/using-\/namespace)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04104}\mbox{\hyperlink{catch2_2catch_8hpp_a44e2fff00253a218f0a392ad6abac624}{04104}} \textcolor{preprocessor}{\#define GENERATE\_COPY( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04105}04105 \textcolor{preprocessor}{    Catch::Generators::generate( INTERNAL\_CATCH\_STRINGIZE(INTERNAL\_CATCH\_UNIQUE\_NAME(generator)), \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04106}04106 \textcolor{preprocessor}{                                 CATCH\_INTERNAL\_LINEINFO, \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04107}04107 \textcolor{preprocessor}{                                 [=]\{ using namespace Catch::Generators; return makeGenerators( \_\_VA\_ARGS\_\_ ); \} ) }\textcolor{comment}{//NOLINT(google-\/build-\/using-\/namespace)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04108}\mbox{\hyperlink{catch2_2catch_8hpp_aebcb76dcf5cbbbd3dca153a21d6f78fe}{04108}} \textcolor{preprocessor}{\#define GENERATE\_REF( ... ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04109}04109 \textcolor{preprocessor}{    Catch::Generators::generate( INTERNAL\_CATCH\_STRINGIZE(INTERNAL\_CATCH\_UNIQUE\_NAME(generator)), \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04110}04110 \textcolor{preprocessor}{                                 CATCH\_INTERNAL\_LINEINFO, \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04111}04111 \textcolor{preprocessor}{                                 [\&]\{ using namespace Catch::Generators; return makeGenerators( \_\_VA\_ARGS\_\_ ); \} ) }\textcolor{comment}{//NOLINT(google-\/build-\/using-\/namespace)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04112}04112 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04113}04113 \textcolor{comment}{// end catch\_generators.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04114}04114 \textcolor{comment}{// start catch\_generators\_generic.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04115}04115 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04116}04116 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04117}04117 \textcolor{keyword}{namespace }Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04118}04118 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04119}04119     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04120}04120     \textcolor{keyword}{class }TakeGenerator : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04121}04121         GeneratorWrapper<T> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04122}04122         \textcolor{keywordtype}{size\_t} m\_returned = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04123}04123         \textcolor{keywordtype}{size\_t} m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04124}04124     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04125}\mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_aacef789c01a86246249c88a184268c65}{04125}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_aacef789c01a86246249c88a184268c65}{TakeGenerator}}(\textcolor{keywordtype}{size\_t} target, \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper}{GeneratorWrapper<T>}}\&\& generator):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04126}04126             m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04127}04127             m\_target(target)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04128}04128         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04129}04129             assert(target != 0 \&\& \textcolor{stringliteral}{"{}Empty generators are not allowed"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04130}04130         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04131}\mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_a7240fb96c311b7d7fde32d1fb5bb67c6}{04131}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_a7240fb96c311b7d7fde32d1fb5bb67c6}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04132}04132             \textcolor{keywordflow}{return} m\_generator.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04133}04133         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04134}\mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_ae343f3e28fe04e0a20d6fdf69bfb4c78}{04134}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_take_generator_ae343f3e28fe04e0a20d6fdf69bfb4c78}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04135}04135             ++m\_returned;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04136}04136             \textcolor{keywordflow}{if} (m\_returned >= m\_target) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04137}04137                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04138}04138             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04139}04139 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04140}04140             \textcolor{keyword}{const} \textcolor{keyword}{auto} success = m\_generator.next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04141}04141             \textcolor{comment}{// If the underlying generator does not contain enough values}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04142}04142             \textcolor{comment}{// then we cut short as well}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04143}04143             \textcolor{keywordflow}{if} (!success) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04144}04144                 m\_returned = m\_target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04145}04145             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04146}04146             \textcolor{keywordflow}{return} success;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04147}04147         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04148}04148     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04149}04149 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04150}04150     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04151}04151     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_adedfdb318219078ce9107690745d2f2f}{take}}(\textcolor{keywordtype}{size\_t} target, GeneratorWrapper<T>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04152}04152         \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<TakeGenerator<T>>(target, std::move(generator)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04153}04153     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04154}04154 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04155}04155     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} Predicate>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04156}04156     \textcolor{keyword}{class }FilterGenerator : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04157}04157         GeneratorWrapper<T> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04158}04158         \mbox{\hyperlink{namespace_catch_1_1_matchers_a70a7c65c44f6ea7f739402c0b6f28657}{Predicate}} m\_predicate;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04159}04159     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04160}04160         \textcolor{keyword}{template} <\textcolor{keyword}{typename} P = Predicate>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04161}\mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_aa16886a5e41cbd3b6ffa3dd52388a3a1}{04161}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_aa16886a5e41cbd3b6ffa3dd52388a3a1}{FilterGenerator}}(P\&\& pred, \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper}{GeneratorWrapper<T>}}\&\& generator):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04162}04162             m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04163}04163             m\_predicate(\mbox{\hyperlink{namespacestd}{std}}::forward<P>(pred))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04164}04164         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04165}04165             \textcolor{keywordflow}{if} (!m\_predicate(m\_generator.get())) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04166}04166                 \textcolor{comment}{// It might happen that there are no values that pass the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04167}04167                 \textcolor{comment}{// filter. In that case we throw an exception.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04168}04168                 \textcolor{keyword}{auto} has\_initial\_value = nextImpl();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04169}04169                 \textcolor{keywordflow}{if} (!has\_initial\_value) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04170}04170                     \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{Catch::throw\_exception}}(\mbox{\hyperlink{class_catch_1_1_generator_exception}{GeneratorException}}(\textcolor{stringliteral}{"{}No valid value found in filtered generator"{}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04171}04171                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04172}04172             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04173}04173         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04174}04174 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04175}\mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_a903396f7cf5f1a04379b7c917351e6da}{04175}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_a903396f7cf5f1a04379b7c917351e6da}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04176}04176             \textcolor{keywordflow}{return} m\_generator.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04177}04177         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04178}04178 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04179}\mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_a02ce0839dcaa7545c55d0fe70cc50e84}{04179}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_filter_generator_a02ce0839dcaa7545c55d0fe70cc50e84}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04180}04180             \textcolor{keywordflow}{return} nextImpl();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04181}04181         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04182}04182 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04183}04183     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04184}04184         \textcolor{keywordtype}{bool} nextImpl() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04185}04185             \textcolor{keywordtype}{bool} success = m\_generator.next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04186}04186             \textcolor{keywordflow}{if} (!success) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04187}04187                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04188}04188             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04189}04189             \textcolor{keywordflow}{while} (!m\_predicate(m\_generator.get()) \&\& (success = m\_generator.next()) == \textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04190}04190             \textcolor{keywordflow}{return} success;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04191}04191         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04192}04192     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04193}04193 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04194}04194     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} Predicate>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04195}04195     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_a4df89be8072a9685ee89b6776a54bb93}{filter}}(\mbox{\hyperlink{namespace_catch_1_1_matchers_a70a7c65c44f6ea7f739402c0b6f28657}{Predicate}}\&\& pred, GeneratorWrapper<T>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04196}04196         \textcolor{keywordflow}{return} GeneratorWrapper<T>(std::unique\_ptr<IGenerator<T>>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<FilterGenerator<T, Predicate>>(std::forward<Predicate>(pred), std::move(generator))));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04197}04197     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04198}04198 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04199}04199     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04200}04200     \textcolor{keyword}{class }RepeatGenerator : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04201}04201         \textcolor{keyword}{static\_assert}(!\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04202}04202             \textcolor{stringliteral}{"{}RepeatGenerator currently does not support bools"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04203}04203             \textcolor{stringliteral}{"{}because of std::vector<bool> specialization"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04204}04204         GeneratorWrapper<T> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04205}04205         \textcolor{keyword}{mutable} std::vector<T> m\_returned;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04206}04206         \textcolor{keywordtype}{size\_t} m\_target\_repeats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04207}04207         \textcolor{keywordtype}{size\_t} m\_current\_repeat = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04208}04208         \textcolor{keywordtype}{size\_t} m\_repeat\_index = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04209}04209     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04210}\mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a3aee12c4f9c2c04823ca3c75a20f234f}{04210}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a3aee12c4f9c2c04823ca3c75a20f234f}{RepeatGenerator}}(\textcolor{keywordtype}{size\_t} repeats, \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper}{GeneratorWrapper<T>}}\&\& generator):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04211}04211             m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04212}04212             m\_target\_repeats(repeats)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04213}04213         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04214}04214             assert(m\_target\_repeats > 0 \&\& \textcolor{stringliteral}{"{}Repeat generator must repeat at least once"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04215}04215         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04216}04216 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04217}\mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a1b5a4018df276b05dc48e5fa0bcd3d28}{04217}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a1b5a4018df276b05dc48e5fa0bcd3d28}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04218}04218             \textcolor{keywordflow}{if} (m\_current\_repeat == 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04219}04219                 m\_returned.push\_back(m\_generator.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04220}04220                 \textcolor{keywordflow}{return} m\_returned.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04221}04221             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04222}04222             \textcolor{keywordflow}{return} m\_returned[m\_repeat\_index];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04223}04223         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04224}04224 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04225}\mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a24d5c2b1c09d6d220d4bd4c83f222dcb}{04225}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_repeat_generator_a24d5c2b1c09d6d220d4bd4c83f222dcb}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04226}04226             \textcolor{comment}{// There are 2 basic cases:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04227}04227             \textcolor{comment}{// 1) We are still reading the generator}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04228}04228             \textcolor{comment}{// 2) We are reading our own cache}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04229}04229 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04230}04230             \textcolor{comment}{// In the first case, we need to poke the underlying generator.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04231}04231             \textcolor{comment}{// If it happily moves, we are left in that state, otherwise it is time to start reading from our cache}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04232}04232             \textcolor{keywordflow}{if} (m\_current\_repeat == 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04233}04233                 \textcolor{keyword}{const} \textcolor{keyword}{auto} success = m\_generator.next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04234}04234                 \textcolor{keywordflow}{if} (!success) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04235}04235                     ++m\_current\_repeat;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04236}04236                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04237}04237                 \textcolor{keywordflow}{return} m\_current\_repeat < m\_target\_repeats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04238}04238             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04239}04239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04240}04240             \textcolor{comment}{// In the second case, we need to move indices forward and check that we haven't run up against the end}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04241}04241             ++m\_repeat\_index;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04242}04242             \textcolor{keywordflow}{if} (m\_repeat\_index == m\_returned.size()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04243}04243                 m\_repeat\_index = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04244}04244                 ++m\_current\_repeat;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04245}04245             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04246}04246             \textcolor{keywordflow}{return} m\_current\_repeat < m\_target\_repeats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04247}04247         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04248}04248     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04249}04249 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04250}04250     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04251}04251     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_a510cc0d72a7bab8f967827e695b981ba}{repeat}}(\textcolor{keywordtype}{size\_t} repeats, GeneratorWrapper<T>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04252}04252         \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<RepeatGenerator<T>>(repeats, std::move(generator)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04253}04253     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04254}04254 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04255}04255     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} U, \textcolor{keyword}{typename} Func>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04256}04256     \textcolor{keyword}{class }MapGenerator : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04257}04257         \textcolor{comment}{// TBD: provide static assert for mapping function, for friendly error message}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04258}04258         GeneratorWrapper<U> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04259}04259         Func m\_function;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04260}04260         \textcolor{comment}{// To avoid returning dangling reference, we have to save the values}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04261}04261         T m\_cache;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04262}04262     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04263}04263         \textcolor{keyword}{template} <\textcolor{keyword}{typename} F2 = Func>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04264}\mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_a525c7eaf53ad220ee7add534aff2522c}{04264}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_a525c7eaf53ad220ee7add534aff2522c}{MapGenerator}}(F2\&\& function, \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper}{GeneratorWrapper<U>}}\&\& generator) :}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04265}04265             m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04266}04266             m\_function(\mbox{\hyperlink{namespacestd}{std}}::forward<F2>(function)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04267}04267             m\_cache(m\_function(m\_generator.\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}()))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04268}04268         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04269}04269 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04270}\mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_abd7ffdef7f7c8575331146c4a95141ad}{04270}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_abd7ffdef7f7c8575331146c4a95141ad}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04271}04271             \textcolor{keywordflow}{return} m\_cache;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04272}04272         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04273}\mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_aa07e2f12d38ae060c30cc30d9dc236c5}{04273}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_map_generator_aa07e2f12d38ae060c30cc30d9dc236c5}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04274}04274             \textcolor{keyword}{const} \textcolor{keyword}{auto} success = m\_generator.next();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04275}04275             \textcolor{keywordflow}{if} (success) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04276}04276                 m\_cache = m\_function(m\_generator.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04277}04277             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04278}04278             \textcolor{keywordflow}{return} success;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04279}04279         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04280}04280     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04281}04281 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04282}04282     \textcolor{keyword}{template} <\textcolor{keyword}{typename} Func, \textcolor{keyword}{typename} U, \textcolor{keyword}{typename} T = FunctionReturnType<Func, U>>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04283}04283     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_af33fd06c51ac9173c3bee2ddee2559a6}{map}}(Func\&\& function, GeneratorWrapper<U>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04284}04284         \textcolor{keywordflow}{return} GeneratorWrapper<T>(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04285}04285             \mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04286}04286         );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04287}04287     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04288}04288 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04289}04289     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} U, \textcolor{keyword}{typename} Func>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04290}04290     GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_af33fd06c51ac9173c3bee2ddee2559a6}{map}}(Func\&\& function, GeneratorWrapper<U>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04291}04291         \textcolor{keywordflow}{return} GeneratorWrapper<T>(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04292}04292             \mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04293}04293         );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04294}04294     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04295}04295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04296}04296     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04297}04297     \textcolor{keyword}{class }ChunkGenerator final : \textcolor{keyword}{public} IGenerator<std::vector<T>> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04298}04298         std::vector<T> m\_chunk;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04299}04299         \textcolor{keywordtype}{size\_t} m\_chunk\_size;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04300}04300         GeneratorWrapper<T> m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04301}04301         \textcolor{keywordtype}{bool} m\_used\_up = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04302}04302     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04303}\mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_a50c334d00cde3166d71e9b90ebc2d2e3}{04303}}         \mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_a50c334d00cde3166d71e9b90ebc2d2e3}{ChunkGenerator}}(\textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_wrapper}{GeneratorWrapper<T>}} generator) :}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04304}04304             m\_chunk\_size(\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}), m\_generator(\mbox{\hyperlink{namespacestd}{std}}::move(generator))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04305}04305         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04306}04306             m\_chunk.reserve(m\_chunk\_size);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04307}04307             \textcolor{keywordflow}{if} (m\_chunk\_size != 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04308}04308                 m\_chunk.push\_back(m\_generator.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04309}04309                 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{size\_t} i = 1; i < m\_chunk\_size; ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04310}04310                     \textcolor{keywordflow}{if} (!m\_generator.next()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04311}04311                         \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{Catch::throw\_exception}}(\mbox{\hyperlink{class_catch_1_1_generator_exception}{GeneratorException}}(\textcolor{stringliteral}{"{}Not enough values to initialize the first chunk"{}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04312}04312                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04313}04313                     m\_chunk.push\_back(m\_generator.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04314}04314                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04315}04315             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04316}04316         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04317}\mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_afab9d06c84aa469b3af60eb3e8f10597}{04317}}         std::vector<T> \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_afab9d06c84aa469b3af60eb3e8f10597}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04318}04318             \textcolor{keywordflow}{return} m\_chunk;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04319}04319         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04320}\mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_a545e89f80eb1e3c953491541ea083f86}{04320}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_chunk_generator_a545e89f80eb1e3c953491541ea083f86}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04321}04321             m\_chunk.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04322}04322             \textcolor{keywordflow}{for} (\textcolor{keywordtype}{size\_t} idx = 0; idx < m\_chunk\_size; ++idx) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04323}04323                 \textcolor{keywordflow}{if} (!m\_generator.next()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04324}04324                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04325}04325                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04326}04326                 m\_chunk.push\_back(m\_generator.get());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04327}04327             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04328}04328             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04329}04329         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04330}04330     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04331}04331 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04332}04332     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04333}04333     GeneratorWrapper<std::vector<T>> \mbox{\hyperlink{namespace_catch_1_1_generators_acb4654b4e840e438e3bc204ac4d8e157}{chunk}}(\textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, GeneratorWrapper<T>\&\& generator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04334}04334         \textcolor{keywordflow}{return} GeneratorWrapper<std::vector<T>>(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04335}04335             pf::make\_unique<ChunkGenerator<T>>(\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, std::move(generator))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04336}04336         );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04337}04337     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04338}04338 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04339}04339 \} \textcolor{comment}{// namespace Generators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04340}04340 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04341}04341 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04342}04342 \textcolor{comment}{// end catch\_generators\_generic.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04343}04343 \textcolor{comment}{// start catch\_generators\_specific.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04344}04344 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04345}04345 \textcolor{comment}{// start catch\_context.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04346}04346 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04347}04347 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04348}04348 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04349}04349 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04350}04350 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04351}04351     \textcolor{keyword}{struct }IResultCapture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04352}04352     \textcolor{keyword}{struct }IRunner;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04353}04353     \textcolor{keyword}{struct }IConfig;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04354}04354     \textcolor{keyword}{struct }IMutableContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04355}04355 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04356}04356     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} = std::shared\_ptr<IConfig const>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04357}04357 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04358}04358     \textcolor{keyword}{struct }IContext}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04359}04359     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04360}\mbox{\hyperlink{struct_catch_1_1_i_context_aeb17355c1be6c2ced5407cad7202628d}{04360}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_context_aeb17355c1be6c2ced5407cad7202628d}{\string~IContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04361}04361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04362}\mbox{\hyperlink{struct_catch_1_1_i_context_a950f10a5f6d3c9385f9493ba6298b174}{04362}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_result_capture}{IResultCapture}}* \mbox{\hyperlink{struct_catch_1_1_i_context_a950f10a5f6d3c9385f9493ba6298b174}{getResultCapture}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04363}\mbox{\hyperlink{struct_catch_1_1_i_context_ace6ece997b27c76d70563272f9e93f2f}{04363}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_runner}{IRunner}}* \mbox{\hyperlink{struct_catch_1_1_i_context_ace6ece997b27c76d70563272f9e93f2f}{getRunner}}() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04364}\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{04364}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04365}04365     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04366}04366 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04367}04367     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_mutable_context}{IMutableContext}} : \mbox{\hyperlink{struct_catch_1_1_i_context}{IContext}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04368}04368     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04369}\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_a93f32b2ab6d0fb83637059240be799ab}{04369}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_a93f32b2ab6d0fb83637059240be799ab}{\string~IMutableContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04370}\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_a4a80afd0525b7def21bee8d9b48f2d39}{04370}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_a4a80afd0525b7def21bee8d9b48f2d39}{setResultCapture}}( \mbox{\hyperlink{struct_catch_1_1_i_result_capture}{IResultCapture}}* resultCapture ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04371}\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_af2e53b1dea4527a2587cff266a730f6e}{04371}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_af2e53b1dea4527a2587cff266a730f6e}{setRunner}}( \mbox{\hyperlink{struct_catch_1_1_i_runner}{IRunner}}* runner ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04372}\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_aa81ba080fce084e9482f20338bc88531}{04372}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_aa81ba080fce084e9482f20338bc88531}{setConfig}}( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04373}04373 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04374}04374     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04375}04375         \textcolor{keyword}{static} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context}{IMutableContext}} *currentContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04376}04376         \textcolor{keyword}{friend} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context}{IMutableContext}}\& \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04377}\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_ac07cdb7d744cc8f09672d924324b55fd}{04377}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_ac07cdb7d744cc8f09672d924324b55fd}{cleanUpContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04378}04378         \textcolor{keyword}{static} \textcolor{keywordtype}{void} createContext();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04379}04379     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04380}04380 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04381}04381     \textcolor{keyword}{inline} \mbox{\hyperlink{struct_catch_1_1_i_mutable_context}{IMutableContext}}\& \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04382}04382     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04383}04383         \textcolor{keywordflow}{if}( !IMutableContext::currentContext )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04384}04384             IMutableContext::createContext();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04385}04385         \textcolor{comment}{// NOLINTNEXTLINE(clang-\/analyzer-\/core.uninitialized.UndefReturn)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04386}04386         \textcolor{keywordflow}{return} *IMutableContext::currentContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04387}04387     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04388}04388 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04389}04389     \textcolor{keyword}{inline} IContext\& \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04390}04390     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04391}04391         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04392}04392     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04393}04393 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04394}04394     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_ae50508f10ffc4ed873a31a4db4caea16}{cleanUpContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04395}04395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04396}04396     \textcolor{keyword}{class }SimplePcg32;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04397}04397     SimplePcg32\& \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04398}04398 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04399}04399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04400}04400 \textcolor{comment}{// end catch\_context.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04401}04401 \textcolor{comment}{// start catch\_interfaces\_config.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04402}04402 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04403}04403 \textcolor{comment}{// start catch\_option.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04404}04404 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04405}04405 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04406}04406 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04407}04407     \textcolor{comment}{// An optional type}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04408}04408     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04409}04409     \textcolor{keyword}{class }Option \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04410}04410     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04411}\mbox{\hyperlink{class_catch_1_1_option_a8efb01b593d798decc80cbbdf311f2a3}{04411}}         \mbox{\hyperlink{class_catch_1_1_option_a8efb01b593d798decc80cbbdf311f2a3}{Option}}() : nullableValue( nullptr ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04412}\mbox{\hyperlink{class_catch_1_1_option_a5aeb9c22d48a6882bdf5fb4730b06c86}{04412}}         \mbox{\hyperlink{class_catch_1_1_option_a5aeb9c22d48a6882bdf5fb4730b06c86}{Option}}( T \textcolor{keyword}{const}\& \_value )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04413}04413         : nullableValue( new( storage ) T( \_value ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04414}04414         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04415}\mbox{\hyperlink{class_catch_1_1_option_af02f2e4559f06384baec0def8c68c5fd}{04415}}         \mbox{\hyperlink{class_catch_1_1_option_af02f2e4559f06384baec0def8c68c5fd}{Option}}( \mbox{\hyperlink{class_catch_1_1_option}{Option}} \textcolor{keyword}{const}\& \_other )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04416}04416         : nullableValue( \_other ? new( storage ) T( *\_other ) : nullptr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04417}04417         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04418}04418 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04419}\mbox{\hyperlink{class_catch_1_1_option_a37fe90bb47bb909f150a5ad6be25581a}{04419}}         \mbox{\hyperlink{class_catch_1_1_option_a37fe90bb47bb909f150a5ad6be25581a}{\string~Option}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04420}04420             reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04421}04421         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04422}04422 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04423}\mbox{\hyperlink{class_catch_1_1_option_a960fd629f3048995038d58fcf9c018b0}{04423}}         \mbox{\hyperlink{class_catch_1_1_option}{Option}}\& operator= ( \mbox{\hyperlink{class_catch_1_1_option}{Option}} \textcolor{keyword}{const}\& \_other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04424}04424             \textcolor{keywordflow}{if}( \&\_other != \textcolor{keyword}{this} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04425}04425                 reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04426}04426                 \textcolor{keywordflow}{if}( \_other )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04427}04427                     nullableValue = \textcolor{keyword}{new}( storage ) T( *\_other );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04428}04428             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04429}04429             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04430}04430         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04431}\mbox{\hyperlink{class_catch_1_1_option_a32af4018dd8aaf071944f79fc1af520a}{04431}}         \mbox{\hyperlink{class_catch_1_1_option}{Option}}\& operator = ( T \textcolor{keyword}{const}\& \_value ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04432}04432             reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04433}04433             nullableValue = \textcolor{keyword}{new}( storage ) T( \_value );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04434}04434             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04435}04435         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04436}04436 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04437}\mbox{\hyperlink{class_catch_1_1_option_a37b4e0e5d4d56296adacd267a616f4e0}{04437}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_option_a37b4e0e5d4d56296adacd267a616f4e0}{reset}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04438}04438             \textcolor{keywordflow}{if}( nullableValue )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04439}04439                 nullableValue-\/>\string~T();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04440}04440             nullableValue = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04441}04441         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04442}04442 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04443}\mbox{\hyperlink{class_catch_1_1_option_ac250ca96c9af3bf5f94f253f4c0ec336}{04443}}         T\& \mbox{\hyperlink{class_catch_1_1_option_ac250ca96c9af3bf5f94f253f4c0ec336}{operator*}}() \{ \textcolor{keywordflow}{return} *nullableValue; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04444}\mbox{\hyperlink{class_catch_1_1_option_a873a00ed8844b137287f25c811cfd330}{04444}}         T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_option_a873a00ed8844b137287f25c811cfd330}{operator*}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} *nullableValue; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04445}\mbox{\hyperlink{class_catch_1_1_option_a04da75b6b0946cc38b4bbd51c8d407e0}{04445}}         T* \mbox{\hyperlink{class_catch_1_1_option_a04da75b6b0946cc38b4bbd51c8d407e0}{operator-\/>}}() \{ \textcolor{keywordflow}{return} nullableValue; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04446}\mbox{\hyperlink{class_catch_1_1_option_acb3ec06778a8761e5f0014543d8f898e}{04446}}         \textcolor{keyword}{const} T* \mbox{\hyperlink{class_catch_1_1_option_acb3ec06778a8761e5f0014543d8f898e}{operator-\/>}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} nullableValue; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04447}04447 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04448}\mbox{\hyperlink{class_catch_1_1_option_a8d9ae2e30b0eb76fe134a6fbc8423124}{04448}}         T \mbox{\hyperlink{class_catch_1_1_option_a8d9ae2e30b0eb76fe134a6fbc8423124}{valueOr}}( T \textcolor{keyword}{const}\& defaultValue )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04449}04449             \textcolor{keywordflow}{return} nullableValue ? *nullableValue : defaultValue;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04450}04450         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04451}04451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04452}\mbox{\hyperlink{class_catch_1_1_option_a97c95829afbe92f2bcc5fd75b32c0825}{04452}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_option_a97c95829afbe92f2bcc5fd75b32c0825}{some}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} nullableValue != \textcolor{keyword}{nullptr}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04453}\mbox{\hyperlink{class_catch_1_1_option_a821753afdc3fac947a13a01fbe0d248e}{04453}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_option_a821753afdc3fac947a13a01fbe0d248e}{none}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} nullableValue == \textcolor{keyword}{nullptr}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04454}04454 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04455}\mbox{\hyperlink{class_catch_1_1_option_a96dccb86bdf45ee0c08e122b6133bef3}{04455}}         \textcolor{keywordtype}{bool} operator !()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} nullableValue == \textcolor{keyword}{nullptr}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04456}\mbox{\hyperlink{class_catch_1_1_option_aba0def0bd9cd45d4e00fe47a604b0270}{04456}}         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04457}04457             \textcolor{keywordflow}{return} some();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04458}04458         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04459}04459 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04460}04460     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04461}04461         T *nullableValue;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04462}04462         \textcolor{keyword}{alignas}(\textcolor{keyword}{alignof}(T)) \textcolor{keywordtype}{char} storage[\textcolor{keyword}{sizeof}(T)];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04463}04463     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04464}04464 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04465}04465 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04466}04466 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04467}04467 \textcolor{comment}{// end catch\_option.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04468}04468 \textcolor{preprocessor}{\#include <chrono>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04469}04469 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04470}04470 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04471}04471 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04472}04472 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04473}04473 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04474}04474 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04475}04475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04476}\mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{04476}}     \textcolor{keyword}{enum class} \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{Verbosity}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04477}04477         \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111}{Quiet}} = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04478}04478         \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Normal}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04479}04479         \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35}{High}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04480}04480     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04481}04481 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04482}\mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3}{04482}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_warn_about}{WarnAbout}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3}{What}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04483}04483         Nothing = 0x00,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04484}04484         NoAssertions = 0x01,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04485}04485         NoTests = 0x02}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04486}04486     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04487}04487 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04488}\mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{04488}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_show_durations}{ShowDurations}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{OrNot}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04489}04489         DefaultForReporter,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04490}04490         Always,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04491}04491         Never}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04492}04492     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04493}\mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{04493}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_run_tests}{RunTests}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{InWhatOrder}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04494}04494         InDeclarationOrder,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04495}04495         InLexicographicalOrder,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04496}04496         InRandomOrder}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04497}04497     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04498}\mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{04498}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_use_colour}{UseColour}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{YesOrNo}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04499}04499         Auto,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04500}04500         Yes,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04501}04501         No}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04502}04502     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04503}\mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399ba}{04503}}     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_wait_for_keypress}{WaitForKeypress}} \{ \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399ba}{When}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04504}04504         Never,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04505}04505         BeforeStart = 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04506}04506         BeforeExit = 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04507}04507         BeforeStartAndExit = BeforeStart | BeforeExit}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04508}04508     \}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04509}04509 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04510}04510     \textcolor{keyword}{class }TestSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04511}04511 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04512}04512     \textcolor{keyword}{struct }\mbox{\hyperlink{struct_catch_1_1_i_config}{IConfig}} : \mbox{\hyperlink{class_catch_1_1_non_copyable}{NonCopyable}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04513}04513 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04514}\mbox{\hyperlink{struct_catch_1_1_i_config_adadf7c57478e4b0c83bea5b38d2dbc87}{04514}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_config_adadf7c57478e4b0c83bea5b38d2dbc87}{\string~IConfig}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04515}04515 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04516}\mbox{\hyperlink{struct_catch_1_1_i_config_aadb95f849359de1e6eb915aab063e542}{04516}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_aadb95f849359de1e6eb915aab063e542}{allowThrows}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04517}\mbox{\hyperlink{struct_catch_1_1_i_config_a4e4714e479596394d5e129e8763f7853}{04517}}         \textcolor{keyword}{virtual} std::ostream\& \mbox{\hyperlink{struct_catch_1_1_i_config_a4e4714e479596394d5e129e8763f7853}{stream}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04518}\mbox{\hyperlink{struct_catch_1_1_i_config_aa2315800a05c19db71518b1edc39d43b}{04518}}         \textcolor{keyword}{virtual} std::string \mbox{\hyperlink{struct_catch_1_1_i_config_aa2315800a05c19db71518b1edc39d43b}{name}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04519}\mbox{\hyperlink{struct_catch_1_1_i_config_a2f1b0391019b9ce69921527a684eab23}{04519}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_a2f1b0391019b9ce69921527a684eab23}{includeSuccessfulResults}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04520}\mbox{\hyperlink{struct_catch_1_1_i_config_a5b886c5aad9001e90f63a7cf0726af63}{04520}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_a5b886c5aad9001e90f63a7cf0726af63}{shouldDebugBreak}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04521}\mbox{\hyperlink{struct_catch_1_1_i_config_a75d970c495a28e46b8e9b04a1d32149f}{04521}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_a75d970c495a28e46b8e9b04a1d32149f}{warnAboutMissingAssertions}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04522}\mbox{\hyperlink{struct_catch_1_1_i_config_a30590623e3918825f2896c2262bf6fe3}{04522}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_a30590623e3918825f2896c2262bf6fe3}{warnAboutNoTests}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04523}\mbox{\hyperlink{struct_catch_1_1_i_config_a363f3388a439d02217f37198eff96744}{04523}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_i_config_a363f3388a439d02217f37198eff96744}{abortAfter}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04524}\mbox{\hyperlink{struct_catch_1_1_i_config_aa288bf92ccd0aafd85409d8aefdf738c}{04524}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_aa288bf92ccd0aafd85409d8aefdf738c}{showInvisibles}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04525}\mbox{\hyperlink{struct_catch_1_1_i_config_abaa97d281484278291f0d3db6d404aeb}{04525}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{ShowDurations::OrNot}} \mbox{\hyperlink{struct_catch_1_1_i_config_abaa97d281484278291f0d3db6d404aeb}{showDurations}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04526}\mbox{\hyperlink{struct_catch_1_1_i_config_a160c6f6e19ed6ae946f7a9e737099189}{04526}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{double} \mbox{\hyperlink{struct_catch_1_1_i_config_a160c6f6e19ed6ae946f7a9e737099189}{minDuration}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04527}\mbox{\hyperlink{struct_catch_1_1_i_config_a6c021a1bf5cae58cb6c4b754af6cd4b5}{04527}}         \textcolor{keyword}{virtual} TestSpec \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_config_a6c021a1bf5cae58cb6c4b754af6cd4b5}{testSpec}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04528}\mbox{\hyperlink{struct_catch_1_1_i_config_a49a475bbeb3180c06799d6d958914649}{04528}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_a49a475bbeb3180c06799d6d958914649}{hasTestFilters}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04529}\mbox{\hyperlink{struct_catch_1_1_i_config_a439d37638d37248d8a7f3f39ad5dc6f2}{04529}}         \textcolor{keyword}{virtual} std::vector<std::string> \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_config_a439d37638d37248d8a7f3f39ad5dc6f2}{getTestsOrTags}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04530}\mbox{\hyperlink{struct_catch_1_1_i_config_a0fc59c9aba1d4018538d5526daa5eb78}{04530}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{RunTests::InWhatOrder}} \mbox{\hyperlink{struct_catch_1_1_i_config_a0fc59c9aba1d4018538d5526daa5eb78}{runOrder}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04531}\mbox{\hyperlink{struct_catch_1_1_i_config_ae049eb45979d841073fa65d1094c7f14}{04531}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_i_config_ae049eb45979d841073fa65d1094c7f14}{rngSeed}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04532}\mbox{\hyperlink{struct_catch_1_1_i_config_a87ec19a6b486eb5b5015cf7738fee026}{04532}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} \mbox{\hyperlink{struct_catch_1_1_i_config_a87ec19a6b486eb5b5015cf7738fee026}{useColour}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04533}\mbox{\hyperlink{struct_catch_1_1_i_config_aeb282b2b74d01c0d95ef1a4dbd2d12df}{04533}}         \textcolor{keyword}{virtual} std::vector<std::string> \textcolor{keyword}{const}\& \mbox{\hyperlink{struct_catch_1_1_i_config_aeb282b2b74d01c0d95ef1a4dbd2d12df}{getSectionsToRun}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04534}\mbox{\hyperlink{struct_catch_1_1_i_config_a55aff5924bdbb3f558775821b1eb4b3d}{04534}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{Verbosity}} \mbox{\hyperlink{struct_catch_1_1_i_config_a55aff5924bdbb3f558775821b1eb4b3d}{verbosity}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04535}04535 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04536}\mbox{\hyperlink{struct_catch_1_1_i_config_aa9aa1eafdbe510e27bf319233969ee2c}{04536}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_config_aa9aa1eafdbe510e27bf319233969ee2c}{benchmarkNoAnalysis}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04537}\mbox{\hyperlink{struct_catch_1_1_i_config_a583734a61796b495b80779a6540eb6cc}{04537}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_i_config_a583734a61796b495b80779a6540eb6cc}{benchmarkSamples}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04538}\mbox{\hyperlink{struct_catch_1_1_i_config_ae1ec73d460a2b58c7c9b022a430a34dd}{04538}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{double} \mbox{\hyperlink{struct_catch_1_1_i_config_ae1ec73d460a2b58c7c9b022a430a34dd}{benchmarkConfidenceInterval}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04539}\mbox{\hyperlink{struct_catch_1_1_i_config_a3b8e5581be01f4773593f8b85eb7db98}{04539}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_i_config_a3b8e5581be01f4773593f8b85eb7db98}{benchmarkResamples}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04540}\mbox{\hyperlink{struct_catch_1_1_i_config_a516879e39f2e46f69bb4ef1f1fe7023c}{04540}}         \textcolor{keyword}{virtual} std::chrono::milliseconds \mbox{\hyperlink{struct_catch_1_1_i_config_a516879e39f2e46f69bb4ef1f1fe7023c}{benchmarkWarmupTime}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04541}04541     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04542}04542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04543}04543     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} = std::shared\_ptr<IConfig const>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04544}04544 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04545}04545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04546}04546 \textcolor{comment}{// end catch\_interfaces\_config.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04547}04547 \textcolor{comment}{// start catch\_random\_number\_generator.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04548}04548 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04549}04549 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04550}04550 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04551}04551 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04552}04552 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04553}04553     \textcolor{comment}{// This is a simple implementation of C++11 Uniform Random Number}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04554}04554     \textcolor{comment}{// Generator. It does not provide all operators, because Catch2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04555}04555     \textcolor{comment}{// does not use it, but it should behave as expected inside stdlib's}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04556}04556     \textcolor{comment}{// distributions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04557}04557     \textcolor{comment}{// The implementation is based on the PCG family (http://pcg-\/random.org)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04558}04558     \textcolor{keyword}{class }SimplePcg32 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04559}04559         \textcolor{keyword}{using }state\_type = std::uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04560}04560     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04561}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{04561}}         \textcolor{keyword}{using }\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} = std::uint32\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04562}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a388575137fa70bb32a367a5ad59f2a46}{04562}}         \textcolor{keyword}{static} \textcolor{keyword}{constexpr} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{min}})() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04563}04563             \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04564}04564         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04565}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a282cfed1bcba2ae23f242913489195af}{04565}}         \textcolor{keyword}{static} \textcolor{keyword}{constexpr} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{max}})() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04566}04566             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}}\textcolor{keyword}{>}(-\/1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04567}04567         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04568}04568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04569}04569         \textcolor{comment}{// Provide some default initial state for the default constructor}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04570}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a045c99a96f9b0faf384e22f871576282}{04570}}         \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a045c99a96f9b0faf384e22f871576282}{SimplePcg32}}():\mbox{\hyperlink{class_catch_1_1_simple_pcg32}{SimplePcg32}}(0xed743cc4U) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04571}04571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04572}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a901fc48d250c3d92b1ec067bcc6155c1}{04572}}         \textcolor{keyword}{explicit} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a901fc48d250c3d92b1ec067bcc6155c1}{SimplePcg32}}(\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} seed\_);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04573}04573 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04574}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a215dac93c384973353a2b4f87f68c8bc}{04574}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a215dac93c384973353a2b4f87f68c8bc}{seed}}(\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} seed\_);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04575}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a877e7a9c14d378af729ad19a0e959178}{04575}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a877e7a9c14d378af729ad19a0e959178}{discard}}(uint64\_t skip);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04576}04576 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04577}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_acda21743a5ac46fdff9a0b4a6d45a91f}{04577}}         \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a220ca38f6d16804c6e99937a673ec3ff}{result\_type}} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_acda21743a5ac46fdff9a0b4a6d45a91f}{operator()}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04578}04578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04579}04579     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04580}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a3f1e143181b91f902ce034e2878f87eb}{04580}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a3f1e143181b91f902ce034e2878f87eb}{operator==}}(\mbox{\hyperlink{class_catch_1_1_simple_pcg32}{SimplePcg32}} \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_simple_pcg32}{SimplePcg32}} \textcolor{keyword}{const}\& rhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04581}\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a4940863fe85f6c5a2fa9b3910bfb7406}{04581}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a4940863fe85f6c5a2fa9b3910bfb7406}{operator!=}}(\mbox{\hyperlink{class_catch_1_1_simple_pcg32}{SimplePcg32}} \textcolor{keyword}{const}\& lhs, \mbox{\hyperlink{class_catch_1_1_simple_pcg32}{SimplePcg32}} \textcolor{keyword}{const}\& rhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04582}04582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04583}04583         \textcolor{comment}{// In theory we also need operator<< and operator>>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04584}04584         \textcolor{comment}{// In practice we do not use them, so we will skip them for now}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04585}04585 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04586}04586         std::uint64\_t m\_state;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04587}04587         \textcolor{comment}{// This part of the state determines which "{}stream"{} of the numbers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04588}04588         \textcolor{comment}{// is chosen -\/-\/ we take it as a constant for Catch2, so we only}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04589}04589         \textcolor{comment}{// need to deal with seeding the main state.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04590}04590         \textcolor{comment}{// Picked by reading 8 bytes from `/dev/random` :-\/)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04591}04591         \textcolor{keyword}{static} \textcolor{keyword}{const} std::uint64\_t s\_inc = (0x13ed0cc53f939476ULL << 1ULL) | 1ULL;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04592}04592     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04593}04593 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04594}04594 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04595}04595 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04596}04596 \textcolor{comment}{// end catch\_random\_number\_generator.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04597}04597 \textcolor{preprocessor}{\#include <random>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04598}04598 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04599}04599 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04600}04600 \textcolor{keyword}{namespace }Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04601}04601 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04602}04602 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Float>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04603}04603 \textcolor{keyword}{class }RandomFloatingGenerator final : \textcolor{keyword}{public} IGenerator<Float> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04604}04604     \mbox{\hyperlink{class_catch_1_1_simple_pcg32}{Catch::SimplePcg32}}\& m\_rng;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04605}04605     std::uniform\_real\_distribution<Float> m\_dist;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04606}04606     Float m\_current\_number;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04607}04607 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04608}04608 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04609}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_abce275ce88f7c3465addd7a98b6c408d}{04609}}     \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_abce275ce88f7c3465addd7a98b6c408d}{RandomFloatingGenerator}}(Float \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, Float b):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04610}04610         m\_rng(\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04611}04611         m\_dist(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04612}04612         \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(next());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04613}04613     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04614}04614 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04615}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_a307eff56c58d4c6a223f35ac4d4ba710}{04615}}     Float \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_a307eff56c58d4c6a223f35ac4d4ba710}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04616}04616         \textcolor{keywordflow}{return} m\_current\_number;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04617}04617     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04618}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_a6a65e5f16abd884f58c31581b2a0d6db}{04618}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_floating_generator_a6a65e5f16abd884f58c31581b2a0d6db}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04619}04619         m\_current\_number = m\_dist(m\_rng);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04620}04620         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04621}04621     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04622}04622 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04623}04623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04624}04624 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Integer>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04625}04625 \textcolor{keyword}{class }RandomIntegerGenerator final : \textcolor{keyword}{public} IGenerator<Integer> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04626}04626     \mbox{\hyperlink{class_catch_1_1_simple_pcg32}{Catch::SimplePcg32}}\& m\_rng;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04627}04627     std::uniform\_int\_distribution<Integer> m\_dist;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04628}04628     Integer m\_current\_number;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04629}04629 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04630}04630 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04631}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_a886d16c899ad70781b83a0e8f9d2cf96}{04631}}     \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_a886d16c899ad70781b83a0e8f9d2cf96}{RandomIntegerGenerator}}(Integer \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, Integer b):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04632}04632         m\_rng(\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04633}04633         m\_dist(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04634}04634         \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(next());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04635}04635     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04636}04636 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04637}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_af160cf856809beca4503491481a4865e}{04637}}     Integer \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_af160cf856809beca4503491481a4865e}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04638}04638         \textcolor{keywordflow}{return} m\_current\_number;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04639}04639     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04640}\mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_aaa3db70fbdfa3e8dcb61fb5592eba81f}{04640}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_random_integer_generator_aaa3db70fbdfa3e8dcb61fb5592eba81f}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04641}04641         m\_current\_number = m\_dist(m\_rng);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04642}04642         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04643}04643     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04644}04644 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04645}04645 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04646}04646 \textcolor{comment}{// TODO: Ideally this would be also constrained against the various char types,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04647}04647 \textcolor{comment}{//       but I don't expect users to run into that in practice.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04648}04648 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04649}04649 \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<std::is\_integral<T>::value}} \&\& !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04650}04650 GeneratorWrapper<T>>::type}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04651}04651 \mbox{\hyperlink{namespace_catch_1_1_generators_a4dd41578e2ccba6d255d7f850ef211bf}{random}}(T \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, T b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04652}04652     \textcolor{keywordflow}{return} GeneratorWrapper<T>(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04653}04653         \mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<RandomIntegerGenerator<T>>(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04654}04654     );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04655}04655 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04656}04656 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04657}04657 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04658}04658 \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<std::is\_floating\_point<T>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04659}04659 GeneratorWrapper<T>>::type}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04660}04660 \mbox{\hyperlink{namespace_catch_1_1_generators_a4dd41578e2ccba6d255d7f850ef211bf}{random}}(T \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, T b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04661}04661     \textcolor{keywordflow}{return} GeneratorWrapper<T>(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04662}04662         \mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<RandomFloatingGenerator<T>>(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04663}04663     );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04664}04664 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04665}04665 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04666}04666 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04667}04667 \textcolor{keyword}{class }RangeGenerator final : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04668}04668     T m\_current;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04669}04669     T m\_end;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04670}04670     T m\_step;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04671}04671     \textcolor{keywordtype}{bool} m\_positive;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04672}04672 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04673}04673 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04674}\mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a6a9b3cc009471c085c985642e0ab102e}{04674}}     \mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a6a9b3cc009471c085c985642e0ab102e}{RangeGenerator}}(T \textcolor{keyword}{const}\& start, T \textcolor{keyword}{const}\& end, T \textcolor{keyword}{const}\& step):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04675}04675         m\_current(start),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04676}04676         m\_end(end),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04677}04677         m\_step(step),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04678}04678         m\_positive(m\_step > T(0))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04679}04679     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04680}04680         assert(m\_current != m\_end \&\& \textcolor{stringliteral}{"{}Range start and end cannot be equal"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04681}04681         assert(m\_step != T(0) \&\& \textcolor{stringliteral}{"{}Step size cannot be zero"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04682}04682         assert(((m\_positive \&\& m\_current <= m\_end) || (!m\_positive \&\& m\_current >= m\_end)) \&\& \textcolor{stringliteral}{"{}Step moves away from end"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04683}04683     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04684}04684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04685}\mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_ac999eb143945ff311b97d2c767df90d3}{04685}}     \mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_ac999eb143945ff311b97d2c767df90d3}{RangeGenerator}}(T \textcolor{keyword}{const}\& start, T \textcolor{keyword}{const}\& end):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04686}04686         \mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator}{RangeGenerator}}(start, end, (start < end) ? T(1) : T(-\/1))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04687}04687     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04688}04688 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04689}\mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a5484de93ae75cf01cff02172c6875848}{04689}}     T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a5484de93ae75cf01cff02172c6875848}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04690}04690         \textcolor{keywordflow}{return} m\_current;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04691}04691     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04692}04692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04693}\mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a4e6b2038832f09724d5a4355b4691259}{04693}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_range_generator_a4e6b2038832f09724d5a4355b4691259}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04694}04694         m\_current += m\_step;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04695}04695         \textcolor{keywordflow}{return} (m\_positive) ? (m\_current < m\_end) : (m\_current > m\_end);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04696}04696     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04697}04697 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04698}04698 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04699}04699 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04700}04700 GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}}(T \textcolor{keyword}{const}\& start, T \textcolor{keyword}{const}\& end, T \textcolor{keyword}{const}\& step) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04701}04701     \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_arithmetic<T>::value}} \&\& !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}}, \textcolor{stringliteral}{"{}Type must be numeric"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04702}04702     \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<RangeGenerator<T>>(start, end, step));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04703}04703 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04704}04704 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04705}04705 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04706}04706 GeneratorWrapper<T> \mbox{\hyperlink{namespace_catch_1_1_generators_a758d34927bfde268b60ea6b7dc4be6bd}{range}}(T \textcolor{keyword}{const}\& start, T \textcolor{keyword}{const}\& end) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04707}04707     \textcolor{keyword}{static\_assert}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_integral<T>::value}} \&\& !\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}}, \textcolor{stringliteral}{"{}Type must be an integer"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04708}04708     \textcolor{keywordflow}{return} GeneratorWrapper<T>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<RangeGenerator<T>>(start, end));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04709}04709 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04710}04710 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04711}04711 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04712}04712 \textcolor{keyword}{class }IteratorGenerator final : \textcolor{keyword}{public} IGenerator<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04713}04713     \textcolor{keyword}{static\_assert}(!\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<T, bool>::value}},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04714}04714         \textcolor{stringliteral}{"{}IteratorGenerator currently does not support bools"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04715}04715         \textcolor{stringliteral}{"{}because of std::vector<bool> specialization"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04716}04716 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04717}04717     std::vector<T> m\_elems;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04718}04718     \textcolor{keywordtype}{size\_t} m\_current = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04719}04719 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04720}04720     \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIterator, \textcolor{keyword}{typename} InputSentinel>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04721}\mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_a1f795b1bbd515274673115c0a9fc2e54}{04721}}     \mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_a1f795b1bbd515274673115c0a9fc2e54}{IteratorGenerator}}(InputIterator first, InputSentinel last):m\_elems(first, last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04722}04722         \textcolor{keywordflow}{if} (m\_elems.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04723}04723             \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{Catch::throw\_exception}}(\mbox{\hyperlink{class_catch_1_1_generator_exception}{GeneratorException}}(\textcolor{stringliteral}{"{}IteratorGenerator received no valid values"{}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04724}04724         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04725}04725     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04726}04726 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04727}\mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_a21783f931147e4ba2300070c5c417db5}{04727}}     T \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_a21783f931147e4ba2300070c5c417db5}{get}}()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04728}04728         \textcolor{keywordflow}{return} m\_elems[m\_current];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04729}04729     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04730}04730 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04731}\mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_acafb4fa1eebe5e1db571621a35a3f137}{04731}}     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_generators_1_1_iterator_generator_acafb4fa1eebe5e1db571621a35a3f137}{next}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04732}04732         ++m\_current;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04733}04733         \textcolor{keywordflow}{return} m\_current != m\_elems.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04734}04734     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04735}04735 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04736}04736 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04737}04737 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIterator,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04738}04738           \textcolor{keyword}{typename} InputSentinel,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04739}04739           \textcolor{keyword}{typename} ResultType = \textcolor{keyword}{typename} std::iterator\_traits<InputIterator>::value\_type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04740}04740 GeneratorWrapper<ResultType> \mbox{\hyperlink{namespace_catch_1_1_generators_a68e6a1dcf08dbd4c4aa3244e59dfc0f4}{from\_range}}(InputIterator from, InputSentinel to) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04741}04741     \textcolor{keywordflow}{return} GeneratorWrapper<ResultType>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<IteratorGenerator<ResultType>>(from, to));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04742}04742 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04743}04743 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04744}04744 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04745}04745           \textcolor{keyword}{typename} ResultType = \textcolor{keyword}{typename} Container::value\_type>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04746}04746 GeneratorWrapper<ResultType> \mbox{\hyperlink{namespace_catch_1_1_generators_a68e6a1dcf08dbd4c4aa3244e59dfc0f4}{from\_range}}(Container \textcolor{keyword}{const}\& cnt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04747}04747     \textcolor{keywordflow}{return} GeneratorWrapper<ResultType>(\mbox{\hyperlink{namespace_catch_1_1_generators_1_1pf_a015e8fcef2972da878a07023e40d46d8}{pf::make\_unique}}<IteratorGenerator<ResultType>>(cnt.begin(), cnt.end()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04748}04748 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04749}04749 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04750}04750 \} \textcolor{comment}{// namespace Generators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04751}04751 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04752}04752 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04753}04753 \textcolor{comment}{// end catch\_generators\_specific.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04754}04754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04755}04755 \textcolor{comment}{// These files are included here so the single\_include script doesn't put them}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04756}04756 \textcolor{comment}{// in the conditionally compiled sections}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04757}04757 \textcolor{comment}{// start catch\_test\_case\_info.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04758}04758 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04759}04759 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04760}04760 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04761}04761 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04762}04762 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04763}04763 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04764}04764 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04765}04765 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wpadded"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04766}04766 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04767}04767 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04768}04768 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04769}04769 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04770}04770     \textcolor{keyword}{struct }ITestInvoker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04771}04771 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04772}04772     \textcolor{keyword}{struct }TestCaseInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04773}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{04773}}         \textcolor{keyword}{enum} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{SpecialProperties}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04774}04774             None = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04775}04775             IsHidden = 1 << 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04776}04776             ShouldFail = 1 << 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04777}04777             MayFail = 1 << 3,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04778}04778             Throws = 1 << 4,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04779}04779             NonPortable = 1 << 5,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04780}04780             Benchmark = 1 << 6}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04781}04781         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04782}04782 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04783}\mbox{\hyperlink{struct_catch_1_1_test_case_info_ad1a6b08b5a83d1c5eb4596b727b5305f}{04783}}         \mbox{\hyperlink{struct_catch_1_1_test_case_info_ad1a6b08b5a83d1c5eb4596b727b5305f}{TestCaseInfo}}(   std::string \textcolor{keyword}{const}\& \_name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04784}04784                         std::string \textcolor{keyword}{const}\& \_className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04785}04785                         std::string \textcolor{keyword}{const}\& \_description,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04786}04786                         std::vector<std::string> \textcolor{keyword}{const}\& \_tags,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04787}04787                         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& \_lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04788}04788 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04789}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a0fe44abaf18ae7c26f98a9fc2b08679c}{04789}}         \textcolor{keyword}{friend} \textcolor{keywordtype}{void} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a0fe44abaf18ae7c26f98a9fc2b08679c}{setTags}}( \mbox{\hyperlink{struct_catch_1_1_test_case_info}{TestCaseInfo}}\& testCaseInfo, std::vector<std::string> tags );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04790}04790 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04791}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a934b1a0952700743e99d62ec1731a2e2}{04791}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a934b1a0952700743e99d62ec1731a2e2}{isHidden}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04792}\mbox{\hyperlink{struct_catch_1_1_test_case_info_afc70d4379a2070cc22b693ffe3932c1a}{04792}}         \textcolor{keywordtype}{bool} \textcolor{keywordflow}{throws}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04793}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a5f37291295e3a6de2dd85324c941edaf}{04793}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a5f37291295e3a6de2dd85324c941edaf}{okToFail}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04794}\mbox{\hyperlink{struct_catch_1_1_test_case_info_abe33d81233230cdae8afa714688e905b}{04794}}         \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_abe33d81233230cdae8afa714688e905b}{expectedToFail}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04795}04795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04796}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a17506de67fb18e27511c17f8a81119d8}{04796}}         std::string \mbox{\hyperlink{struct_catch_1_1_test_case_info_a17506de67fb18e27511c17f8a81119d8}{tagsAsString}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04797}04797 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04798}04798         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04799}04799         std::string className;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04800}04800         std::string description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04801}04801         std::vector<std::string> tags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04802}04802         std::vector<std::string> lcaseTags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04803}04803         \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04804}04804         \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{SpecialProperties}} properties;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04805}04805     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04806}04806 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04807}04807     \textcolor{keyword}{class }\mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} : \textcolor{keyword}{public} \mbox{\hyperlink{struct_catch_1_1_test_case_info}{TestCaseInfo}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04808}04808     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04809}04809 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04810}\mbox{\hyperlink{class_catch_1_1_test_case_aae5709fc1cb68e19ab0ac27e1ffd6a76}{04810}}         \mbox{\hyperlink{class_catch_1_1_test_case_aae5709fc1cb68e19ab0ac27e1ffd6a76}{TestCase}}( \mbox{\hyperlink{struct_catch_1_1_i_test_invoker}{ITestInvoker}}* testCase, \mbox{\hyperlink{struct_catch_1_1_test_case_info}{TestCaseInfo}}\&\& info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04811}04811 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04812}\mbox{\hyperlink{class_catch_1_1_test_case_a0812e8a216d09b087d5874687009f0d6}{04812}}         \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \mbox{\hyperlink{class_catch_1_1_test_case_a0812e8a216d09b087d5874687009f0d6}{withName}}( std::string \textcolor{keyword}{const}\& \_newName ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04813}04813 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04814}\mbox{\hyperlink{class_catch_1_1_test_case_a26f346c8446dded0562fe3818ae71651}{04814}}         \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_test_case_a26f346c8446dded0562fe3818ae71651}{invoke}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04815}04815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04816}\mbox{\hyperlink{class_catch_1_1_test_case_a804d0a6a5dc92b219e724f1390c25c7f}{04816}}         \mbox{\hyperlink{struct_catch_1_1_test_case_info}{TestCaseInfo}} \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_test_case_a804d0a6a5dc92b219e724f1390c25c7f}{getTestCaseInfo}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04817}04817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04818}\mbox{\hyperlink{class_catch_1_1_test_case_a5456d03a90f75292835c158f3a3374a1}{04818}}         \textcolor{keywordtype}{bool} operator == ( \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04819}\mbox{\hyperlink{class_catch_1_1_test_case_a030e4b9282e9b32e08c8bd5e5cd6fa98}{04819}}         \textcolor{keywordtype}{bool} operator < ( \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04820}04820 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04821}04821     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04822}04822         std::shared\_ptr<ITestInvoker> \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04823}04823     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04824}04824 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04825}04825     \mbox{\hyperlink{class_catch_1_1_test_case}{TestCase}} \mbox{\hyperlink{namespace_catch_a5e63df38d06a43d4cee17454e724b5c0}{makeTestCase}}(  \mbox{\hyperlink{struct_catch_1_1_i_test_invoker}{ITestInvoker}}* testCase,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04826}04826                             std::string \textcolor{keyword}{const}\& className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04827}04827                             \mbox{\hyperlink{struct_catch_1_1_name_and_tags}{NameAndTags}} \textcolor{keyword}{const}\& nameAndTags,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04828}04828                             \mbox{\hyperlink{struct_catch_1_1_source_line_info}{SourceLineInfo}} \textcolor{keyword}{const}\& lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04829}04829 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04830}04830 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04831}04831 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04832}04832 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04833}04833 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04834}04834 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04835}04835 \textcolor{comment}{// end catch\_test\_case\_info.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04836}04836 \textcolor{comment}{// start catch\_interfaces\_runner.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04837}04837 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04838}04838 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04839}04839 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04840}04840     \textcolor{keyword}{struct }IRunner \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04841}\mbox{\hyperlink{struct_catch_1_1_i_runner_a5f539a88a7772d68de8a2e4028774209}{04841}}         \textcolor{keyword}{virtual} \mbox{\hyperlink{struct_catch_1_1_i_runner_a5f539a88a7772d68de8a2e4028774209}{\string~IRunner}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04842}\mbox{\hyperlink{struct_catch_1_1_i_runner_a03713202dd2e041e30b8030088ab0116}{04842}}         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_i_runner_a03713202dd2e041e30b8030088ab0116}{aborting}}() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04843}04843     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04844}04844 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04845}04845 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04846}04846 \textcolor{comment}{// end catch\_interfaces\_runner.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04847}04847 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04848}04848 \textcolor{preprocessor}{\#ifdef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04849}04849 \textcolor{comment}{// start catch\_objc.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04850}04850 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04851}04851 \textcolor{preprocessor}{\#import <objc/runtime.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04852}04852 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04853}04853 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04854}04854 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04855}04855 \textcolor{comment}{// NB. Any general catch headers included here must be included}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04856}04856 \textcolor{comment}{// in catch.hpp first to make sure they are included by the single}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04857}04857 \textcolor{comment}{// header for non obj-\/usage}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04858}04858 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04860}04860 \textcolor{comment}{// This protocol is really only here for (self) documenting purposes, since}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04861}04861 \textcolor{comment}{// all its methods are optional.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04862}04862 \textcolor{keyword}{@protocol }OcFixture}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04863}04863 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04864}04864 \textcolor{keyword}{@optional}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04865}04865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04866}04866 -\/(void) setUp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04867}04867 -\/(void) tearDown;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04868}04868 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04869}04869 \textcolor{keyword}{@end}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04870}04870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04871}04871 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04872}04872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04873}04873     \textcolor{keyword}{class }OcMethod : \textcolor{keyword}{public} ITestInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04874}04874 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04875}04875     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04876}04876         OcMethod( Class cls, \textcolor{keywordtype}{SEL} sel ) : m\_cls( cls ), m\_sel( sel ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04877}04877 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04878}04878         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04879}04879             \textcolor{keywordtype}{id} obj = [[m\_cls alloc] init];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04880}04880 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04881}04881             performOptionalSelector( obj, \textcolor{keyword}{@selector}(setUp)  );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04882}04882             performOptionalSelector( obj, m\_sel );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04883}04883             performOptionalSelector( obj, \textcolor{keyword}{@selector}(tearDown)  );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04884}04884 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04885}04885             arcSafeRelease( obj );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04886}04886         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04887}04887     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04888}04888         \textcolor{keyword}{virtual} \string~OcMethod() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04889}04889 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04890}04890         Class m\_cls;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04891}04891         \textcolor{keywordtype}{SEL} m\_sel;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04892}04892     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04893}04893 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04894}04894     \textcolor{keyword}{namespace }Detail\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04895}04895 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04896}04896         \textcolor{keyword}{inline} std::string getAnnotation(   Class cls,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04897}04897                                             std::string \textcolor{keyword}{const}\& annotationName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04898}04898                                             std::string \textcolor{keyword}{const}\& testCaseName ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04899}04899             NSString* selStr = [[NSString alloc] initWithFormat:@"{}Catch\_\%s\_\%s"{}, annotationName.c\_str(), testCaseName.c\_str()];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04900}04900             \textcolor{keywordtype}{SEL} sel = NSSelectorFromString( selStr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04901}04901             arcSafeRelease( selStr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04902}04902             \textcolor{keywordtype}{id} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = performOptionalSelector( cls, sel );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04903}04903             \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04904}04904                 \textcolor{keywordflow}{return} [(NSString*)value UTF8String];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04905}04905             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04906}04906         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04907}04907     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04908}04908 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04909}04909     \textcolor{keyword}{inline} std::size\_t registerTestMethods() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04910}04910         std::size\_t noTestMethods = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04911}04911         \textcolor{keywordtype}{int} noClasses = objc\_getClassList( \textcolor{keyword}{nullptr}, 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04912}04912 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04913}04913         Class* classes = (CATCH\_UNSAFE\_UNRETAINED Class *)malloc( \textcolor{keyword}{sizeof}(Class) * noClasses);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04914}04914         objc\_getClassList( classes, noClasses );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04915}04915 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04916}04916         \textcolor{keywordflow}{for}( \textcolor{keywordtype}{int} c = 0; c < noClasses; c++ ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04917}04917             Class cls = classes[c];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04918}04918             \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04919}04919                 u\_int count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04920}04920                 Method* methods = class\_copyMethodList( cls, \&count );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04921}04921                 \textcolor{keywordflow}{for}( u\_int m = 0; m < count ; m++ ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04922}04922                     \textcolor{keywordtype}{SEL} selector = method\_getName(methods[m]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04923}04923                     std::string methodName = sel\_getName(selector);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04924}04924                     \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( methodName, \textcolor{stringliteral}{"{}Catch\_TestCase\_"{}} ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04925}04925                         std::string testCaseName = methodName.substr( 15 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04926}04926                         std::string name = Detail::getAnnotation( cls, \textcolor{stringliteral}{"{}Name"{}}, testCaseName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04927}04927                         std::string desc = Detail::getAnnotation( cls, \textcolor{stringliteral}{"{}Description"{}}, testCaseName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04928}04928                         \textcolor{keyword}{const} \textcolor{keywordtype}{char}* className = class\_getName( cls );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04929}04929 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04930}04930                         \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a11b85c6744d88c9f83fe16ad4a8dd451}{registerTest}}( \mbox{\hyperlink{namespace_catch_a5e63df38d06a43d4cee17454e724b5c0}{makeTestCase}}( \textcolor{keyword}{new} OcMethod( cls, selector ), className, NameAndTags( name.c\_str(), desc.c\_str() ), SourceLineInfo(\textcolor{stringliteral}{"{}"{}},0) ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04931}04931                         noTestMethods++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04932}04932                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04933}04933                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04934}04934                 free(methods);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04935}04935             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04936}04936         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04937}04937         \textcolor{keywordflow}{return} noTestMethods;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04938}04938     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04939}04939 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04940}04940 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04941}04941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04942}04942     \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04943}04943         \textcolor{keyword}{namespace }Impl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04944}04944         \textcolor{keyword}{namespace }NSStringMatchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04945}04945 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04946}04946             \textcolor{keyword}{struct }StringHolder : MatcherBase<NSString*>\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04947}04947                 StringHolder( NSString* substr ) : m\_substr( [substr \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}] )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04948}04948                 StringHolder( StringHolder \textcolor{keyword}{const}\& other ) : m\_substr( [other.m\_substr \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}] )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04949}04949                 StringHolder() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04950}04950                     arcSafeRelease( m\_substr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04951}04951                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04952}04952 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04953}04953                 \textcolor{keywordtype}{bool} match( NSString* str )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04954}04954                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04955}04955                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04956}04956 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04957}04957                 NSString* CATCH\_ARC\_STRONG m\_substr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04958}04958             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04959}04959 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04960}04960             \textcolor{keyword}{struct }\mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}} : StringHolder \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04961}04961                 \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}}( NSString* substr ) : StringHolder( substr )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04962}04962 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04963}04963                 \textcolor{keywordtype}{bool} match( NSString* str )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04964}04964                     \textcolor{keywordflow}{return}  (str != nil || m\_substr == nil ) \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04965}04965                             [str isEqualToString:m\_substr];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04966}04966                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04967}04967 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04968}04968                 std::string describe()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04969}04969                     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}equals string: "{}} + \mbox{\hyperlink{namespace_catch}{Catch}}::Detail::stringify( m\_substr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04970}04970                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04971}04971             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04972}04972 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04973}04973             \textcolor{keyword}{struct }\mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}} : StringHolder \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04974}04974                 \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}}( NSString* substr ) : StringHolder( substr )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04975}04975 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04976}04976                 \textcolor{keywordtype}{bool} match( NSString* str )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04977}04977                     \textcolor{keywordflow}{return}  (str != nil || m\_substr == nil ) \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04978}04978                             [str rangeOfString:m\_substr].location != NSNotFound;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04979}04979                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04980}04980 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04981}04981                 std::string describe()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04982}04982                     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}contains string: "{}} + \mbox{\hyperlink{namespace_catch}{Catch}}::Detail::stringify( m\_substr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04983}04983                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04984}04984             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04985}04985 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04986}04986             \textcolor{keyword}{struct }\mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{StartsWith}} : StringHolder \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04987}04987                 \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{StartsWith}}( NSString* substr ) : StringHolder( substr )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04988}04988 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04989}04989                 \textcolor{keywordtype}{bool} match( NSString* str )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04990}04990                     \textcolor{keywordflow}{return}  (str != nil || m\_substr == nil ) \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04991}04991                             [str rangeOfString:m\_substr].location == 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04992}04992                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04993}04993 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04994}04994                 std::string describe()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04995}04995                     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}starts with: "{}} + \mbox{\hyperlink{namespace_catch}{Catch}}::Detail::stringify( m\_substr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04996}04996                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04997}04997             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04998}04998             \textcolor{keyword}{struct }\mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{EndsWith}} : StringHolder \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l04999}04999                 \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{EndsWith}}( NSString* substr ) : StringHolder( substr )\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05000}05000 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05001}05001                 \textcolor{keywordtype}{bool} match( NSString* str )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05002}05002                     \textcolor{keywordflow}{return}  (str != nil || m\_substr == nil ) \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05003}05003                             [str rangeOfString:m\_substr].location == [str length] -\/ [m\_substr \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}}];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05004}05004                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05005}05005 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05006}05006                 std::string describe()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05007}05007                     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}ends with: "{}} + \mbox{\hyperlink{namespace_catch}{Catch}}::Detail::stringify( m\_substr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05008}05008                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05009}05009             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05010}05010 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05011}05011         \} \textcolor{comment}{// namespace NSStringMatchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05012}05012         \} \textcolor{comment}{// namespace Impl}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05013}05013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05014}05014         \textcolor{keyword}{inline} \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Impl::NSStringMatchers::Equals}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05015}05015             \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}}( NSString* substr )\{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Impl::NSStringMatchers::Equals}}( substr ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05016}05016 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05017}05017         \textcolor{keyword}{inline} \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Impl::NSStringMatchers::Contains}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05018}05018             \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}}( NSString* substr )\{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Impl::NSStringMatchers::Contains}}( substr ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05019}05019 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05020}05020         \textcolor{keyword}{inline} \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{Impl::NSStringMatchers::StartsWith}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05021}05021             \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{StartsWith}}( NSString* substr )\{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{Impl::NSStringMatchers::StartsWith}}( substr ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05022}05022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05023}05023         \textcolor{keyword}{inline} \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{Impl::NSStringMatchers::EndsWith}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05024}05024             \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{EndsWith}}( NSString* substr )\{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{Impl::NSStringMatchers::EndsWith}}( substr ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05025}05025 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05026}05026     \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05027}05027 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05028}05028     \textcolor{keyword}{using namespace }Matchers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05029}05029 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05030}05030 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05031}05031 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05032}05032 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05033}05033 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05035}05035 \textcolor{preprocessor}{\#define OC\_MAKE\_UNIQUE\_NAME( root, uniqueSuffix ) root\#\#uniqueSuffix}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05036}05036 \textcolor{preprocessor}{\#define OC\_TEST\_CASE2( name, desc, uniqueSuffix ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05037}05037 \textcolor{preprocessor}{+(NSString*) OC\_MAKE\_UNIQUE\_NAME( Catch\_Name\_test\_, uniqueSuffix ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05038}05038 \textcolor{preprocessor}{\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05039}05039 \textcolor{preprocessor}{return @ name; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05040}05040 \textcolor{preprocessor}{\} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05041}05041 \textcolor{preprocessor}{+(NSString*) OC\_MAKE\_UNIQUE\_NAME( Catch\_Description\_test\_, uniqueSuffix ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05042}05042 \textcolor{preprocessor}{\{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05043}05043 \textcolor{preprocessor}{return @ desc; \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05044}05044 \textcolor{preprocessor}{\} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05045}05045 \textcolor{preprocessor}{-\/(void) OC\_MAKE\_UNIQUE\_NAME( Catch\_TestCase\_test\_, uniqueSuffix )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05046}05046 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05047}05047 \textcolor{preprocessor}{\#define OC\_TEST\_CASE( name, desc ) OC\_TEST\_CASE2( name, desc, \_\_LINE\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05048}05048 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05049}05049 \textcolor{comment}{// end catch\_objc.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05050}05050 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05051}05051 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05052}05052 \textcolor{comment}{// Benchmarking needs the externally-\/facing parts of reporters to work}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05053}05053 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_EXTERNAL\_INTERFACES) || defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05054}05054 \textcolor{comment}{// start catch\_external\_interfaces.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05055}05055 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05056}05056 \textcolor{comment}{// start catch\_reporter\_bases.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05057}05057 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05058}05058 \textcolor{comment}{// start catch\_interfaces\_reporter.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05059}05059 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05060}05060 \textcolor{comment}{// start catch\_config.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05061}05061 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05062}05062 \textcolor{comment}{// start catch\_test\_spec\_parser.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05063}05063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05064}05064 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05065}05065 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05066}05066 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wpadded"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05067}05067 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05068}05068 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05069}05069 \textcolor{comment}{// start catch\_test\_spec.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05070}05070 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05071}05071 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05072}05072 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05073}05073 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wpadded"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05074}05074 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05075}05075 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05076}05076 \textcolor{comment}{// start catch\_wildcard\_pattern.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05077}05077 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05078}05078 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05079}05079 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05080}05080     \textcolor{keyword}{class }WildcardPattern \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05081}05081         \textcolor{keyword}{enum} WildcardPosition \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05082}05082             NoWildcard = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05083}05083             WildcardAtStart = 1,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05084}05084             WildcardAtEnd = 2,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05085}05085             WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05086}05086         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05087}05087 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05088}05088     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05089}05089 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05090}05090         WildcardPattern( std::string \textcolor{keyword}{const}\& pattern, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05091}05091         \textcolor{keyword}{virtual} \string~WildcardPattern() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05092}05092         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} matches( std::string \textcolor{keyword}{const}\& str ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05093}05093 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05094}05094     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05095}05095         std::string normaliseString( std::string \textcolor{keyword}{const}\& str ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05096}05096         \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} m\_caseSensitivity;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05097}05097         WildcardPosition m\_wildcard = NoWildcard;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05098}05098         std::string m\_pattern;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05099}05099     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05100}05100 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05101}05101 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05102}05102 \textcolor{comment}{// end catch\_wildcard\_pattern.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05103}05103 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05104}05104 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05105}05105 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05106}05106 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05107}05107 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05108}05108 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05109}05109     \textcolor{keyword}{struct }IConfig;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05110}05110 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05111}05111     \textcolor{keyword}{class }TestSpec \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05112}05112         \textcolor{keyword}{class }Pattern \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05113}05113         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05114}05114             \textcolor{keyword}{explicit} Pattern( std::string \textcolor{keyword}{const}\& name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05115}05115             \textcolor{keyword}{virtual} \string~Pattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05116}05116             \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05117}05117             std::string \textcolor{keyword}{const}\& name() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05118}05118         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05119}05119             std::string \textcolor{keyword}{const} m\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05120}05120         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05121}05121         \textcolor{keyword}{using }PatternPtr = std::shared\_ptr<Pattern>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05122}05122 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05123}05123         \textcolor{keyword}{class }NamePattern : \textcolor{keyword}{public} Pattern \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05124}05124         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05125}05125             \textcolor{keyword}{explicit} NamePattern( std::string \textcolor{keyword}{const}\& name, std::string \textcolor{keyword}{const}\& filterString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05126}05126             \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05127}05127         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05128}05128             WildcardPattern m\_wildcardPattern;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05129}05129         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05130}05130 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05131}05131         \textcolor{keyword}{class }TagPattern : \textcolor{keyword}{public} Pattern \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05132}05132         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05133}05133             \textcolor{keyword}{explicit} TagPattern( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, std::string \textcolor{keyword}{const}\& filterString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05134}05134             \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05135}05135         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05136}05136             std::string m\_tag;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05137}05137         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05138}05138 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05139}05139         \textcolor{keyword}{class }ExcludedPattern : \textcolor{keyword}{public} Pattern \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05140}05140         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05141}05141             \textcolor{keyword}{explicit} ExcludedPattern( PatternPtr \textcolor{keyword}{const}\& underlyingPattern );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05142}05142             \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05143}05143         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05144}05144             PatternPtr m\_underlyingPattern;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05145}05145         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05146}05146 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05147}05147         \textcolor{keyword}{struct }Filter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05148}05148             std::vector<PatternPtr> m\_patterns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05149}05149 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05150}05150             \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05151}05151             std::string name() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05152}05152         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05153}05153 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05154}05154     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05155}05155         \textcolor{keyword}{struct }FilterMatch \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05156}05156             std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05157}05157             std::vector<TestCase const*> tests;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05158}05158         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05159}05159         \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{Matches}} = std::vector<FilterMatch>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05160}05160         \textcolor{keyword}{using }vectorStrings = std::vector<std::string>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05161}05161 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05162}05162         \textcolor{keywordtype}{bool} hasFilters() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05163}05163         \textcolor{keywordtype}{bool} matches( TestCaseInfo \textcolor{keyword}{const}\& testCase ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05164}05164         \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{Matches}} matchesByFilter( std::vector<TestCase> \textcolor{keyword}{const}\& testCases, IConfig \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05165}05165         \textcolor{keyword}{const} vectorStrings \& getInvalidArgs() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05166}05166 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05167}05167     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05168}05168         std::vector<Filter> m\_filters;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05169}05169         std::vector<std::string> m\_invalidArgs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05170}05170         \textcolor{keyword}{friend} \textcolor{keyword}{class }TestSpecParser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05171}05171     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05172}05172 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05173}05173 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05174}05174 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05175}05175 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05176}05176 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05177}05177 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05178}05178 \textcolor{comment}{// end catch\_test\_spec.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05179}05179 \textcolor{comment}{// start catch\_interfaces\_tag\_alias\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05180}05180 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05181}05181 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05182}05182 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05183}05183 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05184}05184 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05185}05185     \textcolor{keyword}{struct }TagAlias;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05186}05186 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05187}05187     \textcolor{keyword}{struct }ITagAliasRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05188}05188         \textcolor{keyword}{virtual} \string~ITagAliasRegistry();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05189}05189         \textcolor{comment}{// Nullptr if not present}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05190}05190         \textcolor{keyword}{virtual} TagAlias \textcolor{keyword}{const}* \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{find}}( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05191}05191         \textcolor{keyword}{virtual} std::string expandAliases( std::string \textcolor{keyword}{const}\& unexpandedTestSpec ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05192}05192 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05193}05193         \textcolor{keyword}{static} ITagAliasRegistry \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05194}05194     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05195}05195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05196}05196 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05197}05197 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05198}05198 \textcolor{comment}{// end catch\_interfaces\_tag\_alias\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05199}05199 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05200}05200 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05201}05201     \textcolor{keyword}{class }TestSpecParser \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05202}05202         \textcolor{keyword}{enum} Mode\{ None, Name, QuotedName, Tag, EscapedName \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05203}05203         Mode m\_mode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05204}05204         Mode lastMode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05205}05205         \textcolor{keywordtype}{bool} m\_exclusion = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05206}05206         std::size\_t m\_pos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05207}05207         std::size\_t m\_realPatternPos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05208}05208         std::string m\_arg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05209}05209         std::string m\_substring;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05210}05210         std::string m\_patternName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05211}05211         std::vector<std::size\_t> m\_escapeChars;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05212}05212         TestSpec::Filter m\_currentFilter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05213}05213         TestSpec m\_testSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05214}05214         ITagAliasRegistry \textcolor{keyword}{const}* m\_tagAliases = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05215}05215 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05216}05216     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05217}05217         TestSpecParser( ITagAliasRegistry \textcolor{keyword}{const}\& tagAliases );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05218}05218 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05219}05219         TestSpecParser\& parse( std::string \textcolor{keyword}{const}\& arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05220}05220         TestSpec testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05221}05221 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05222}05222     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05223}05223         \textcolor{keywordtype}{bool} visitChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05224}05224         \textcolor{keywordtype}{void} startNewMode( Mode mode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05225}05225         \textcolor{keywordtype}{bool} processNoneChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05226}05226         \textcolor{keywordtype}{void} processNameChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05227}05227         \textcolor{keywordtype}{bool} processOtherChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05228}05228         \textcolor{keywordtype}{void} endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05229}05229         \textcolor{keywordtype}{void} escape();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05230}05230         \textcolor{keywordtype}{bool} isControlChar( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05231}05231         \textcolor{keywordtype}{void} saveLastMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05232}05232         \textcolor{keywordtype}{void} revertBackToLastMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05233}05233         \textcolor{keywordtype}{void} addFilter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05234}05234         \textcolor{keywordtype}{bool} separate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05235}05235 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05236}05236         \textcolor{comment}{// Handles common preprocessing of the pattern for name/tag patterns}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05237}05237         std::string preprocessPattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05238}05238         \textcolor{comment}{// Adds the current pattern as a test name}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05239}05239         \textcolor{keywordtype}{void} addNamePattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05240}05240         \textcolor{comment}{// Adds the current pattern as a tag}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05241}05241         \textcolor{keywordtype}{void} addTagPattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05242}05242 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05243}05243         \textcolor{keyword}{inline} \textcolor{keywordtype}{void} addCharToPattern(\textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05244}05244             m\_substring += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05245}05245             m\_patternName += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05246}05246             m\_realPatternPos++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05247}05247         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05248}05248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05249}05249     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05250}05250     TestSpec parseTestSpec( std::string \textcolor{keyword}{const}\& arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05251}05251 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05252}05252 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05253}05253 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05254}05254 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05255}05255 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05256}05256 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05257}05257 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05258}05258 \textcolor{comment}{// end catch\_test\_spec\_parser.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05259}05259 \textcolor{comment}{// Libstdc++ doesn't like incomplete classes for unique\_ptr}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05260}05260 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05261}05261 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05262}05262 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05263}05263 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05264}05264 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05265}05265 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05266}05266 \textcolor{preprocessor}{\#define CATCH\_CONFIG\_CONSOLE\_WIDTH 80}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05267}05267 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05268}05268 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05269}05269 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05270}05270 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05271}05271     \textcolor{keyword}{struct }IStream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05272}05272 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05273}05273     \textcolor{keyword}{struct }ConfigData \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05274}05274         \textcolor{keywordtype}{bool} listTests = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05275}05275         \textcolor{keywordtype}{bool} listTags = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05276}05276         \textcolor{keywordtype}{bool} listReporters = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05277}05277         \textcolor{keywordtype}{bool} listTestNamesOnly = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05278}05278 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05279}05279         \textcolor{keywordtype}{bool} showSuccessfulTests = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05280}05280         \textcolor{keywordtype}{bool} shouldDebugBreak = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05281}05281         \textcolor{keywordtype}{bool} noThrow = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05282}05282         \textcolor{keywordtype}{bool} showHelp = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05283}05283         \textcolor{keywordtype}{bool} showInvisibles = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05284}05284         \textcolor{keywordtype}{bool} filenamesAsTags = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05285}05285         \textcolor{keywordtype}{bool} libIdentify = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05286}05286 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05287}05287         \textcolor{keywordtype}{int} abortAfter = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05288}05288         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{rngSeed}} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05289}05289 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05290}05290         \textcolor{keywordtype}{bool} benchmarkNoAnalysis = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05291}05291         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} benchmarkSamples = 100;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05292}05292         \textcolor{keywordtype}{double} benchmarkConfidenceInterval = 0.95;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05293}05293         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} benchmarkResamples = 100000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05294}05294         std::chrono::milliseconds::rep benchmarkWarmupTime = 100;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05295}05295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05296}05296         \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{Verbosity}} verbosity = \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Verbosity::Normal}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05297}05297         \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3}{WarnAbout::What}} warnings = \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3a19bca4df5e1b0f209a3292f3aa44b81e}{WarnAbout::Nothing}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05298}05298         \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{ShowDurations::OrNot}} showDurations = \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1a499ae4cb7799d1abb626152b73e448cc}{ShowDurations::DefaultForReporter}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05299}05299         \textcolor{keywordtype}{double} minDuration = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05300}05300         \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{RunTests::InWhatOrder}} runOrder = \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5da2d560e5cdf23ef60d728a816e9b01c61}{RunTests::InDeclarationOrder}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05301}05301         \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} useColour = \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05302}05302         \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399ba}{WaitForKeypress::When}} waitForKeypress = \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399baade2e4a722e5c78bb0d1d3871c4a491ee}{WaitForKeypress::Never}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05303}05303 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05304}05304         std::string outputFilename;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05305}05305         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05306}05306         std::string processName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05307}05307 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_DEFAULT\_REPORTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05308}05308 \textcolor{preprocessor}{\#define CATCH\_CONFIG\_DEFAULT\_REPORTER "{}console"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05309}05309 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05310}05310         std::string reporterName = CATCH\_CONFIG\_DEFAULT\_REPORTER;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05311}05311 \textcolor{preprocessor}{\#undef CATCH\_CONFIG\_DEFAULT\_REPORTER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05312}05312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05313}05313         std::vector<std::string> testsOrTags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05314}05314         std::vector<std::string> sectionsToRun;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05315}05315     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05316}05316 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05317}05317     \textcolor{keyword}{class }Config : \textcolor{keyword}{public} IConfig \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05318}05318     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05319}05319 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05320}05320         Config() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05321}05321         Config( ConfigData \textcolor{keyword}{const}\& data );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05322}05322         \textcolor{keyword}{virtual} \string~Config() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05323}05323 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05324}05324         std::string \textcolor{keyword}{const}\& getFilename() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05325}05325 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05326}05326         \textcolor{keywordtype}{bool} listTests() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05327}05327         \textcolor{keywordtype}{bool} listTestNamesOnly() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05328}05328         \textcolor{keywordtype}{bool} listTags() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05329}05329         \textcolor{keywordtype}{bool} listReporters() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05330}05330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05331}05331         std::string getProcessName() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05332}05332         std::string \textcolor{keyword}{const}\& getReporterName() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05333}05333 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05334}05334         std::vector<std::string> \textcolor{keyword}{const}\& getTestsOrTags() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05335}05335         std::vector<std::string> \textcolor{keyword}{const}\& getSectionsToRun() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05336}05336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05337}05337         TestSpec \textcolor{keyword}{const}\& testSpec() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05338}05338         \textcolor{keywordtype}{bool} hasTestFilters() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05339}05339 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05340}05340         \textcolor{keywordtype}{bool} showHelp() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05341}05341 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05342}05342         \textcolor{comment}{// IConfig interface}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05343}05343         \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a193bb3999494c46457f3059184c6b251}{allowThrows}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05344}05344         std::ostream\& stream() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05345}05345         std::string name() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05346}05346         \textcolor{keywordtype}{bool} includeSuccessfulResults() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05347}05347         \textcolor{keywordtype}{bool} warnAboutMissingAssertions() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05348}05348         \textcolor{keywordtype}{bool} warnAboutNoTests() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05349}05349         \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{ShowDurations::OrNot}} showDurations() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05350}05350         \textcolor{keywordtype}{double} minDuration() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05351}05351         \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{RunTests::InWhatOrder}} runOrder() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05352}05352         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{rngSeed}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05353}05353         \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} useColour() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05354}05354         \textcolor{keywordtype}{bool} shouldDebugBreak() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05355}05355         \textcolor{keywordtype}{int} abortAfter() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05356}05356         \textcolor{keywordtype}{bool} showInvisibles() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05357}05357         \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{Verbosity}} verbosity() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05358}05358         \textcolor{keywordtype}{bool} benchmarkNoAnalysis() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05359}05359         \textcolor{keywordtype}{int} benchmarkSamples() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05360}05360         \textcolor{keywordtype}{double} benchmarkConfidenceInterval() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05361}05361         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} benchmarkResamples() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05362}05362         std::chrono::milliseconds benchmarkWarmupTime() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05363}05363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05364}05364     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05365}05365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05366}05366         IStream \textcolor{keyword}{const}* openStream();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05367}05367         ConfigData m\_data;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05368}05368 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05369}05369         std::unique\_ptr<IStream const> m\_stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05370}05370         TestSpec m\_testSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05371}05371         \textcolor{keywordtype}{bool} m\_hasTestFilters = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05372}05372     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05373}05373 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05374}05374 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05375}05375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05376}05376 \textcolor{comment}{// end catch\_config.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05377}05377 \textcolor{comment}{// start catch\_assertionresult.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05378}05378 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05379}05379 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05380}05380 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05381}05381 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05382}05382 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05383}05383     \textcolor{keyword}{struct }AssertionResultData}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05384}05384     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05385}05385         AssertionResultData() = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05386}05386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05387}05387         AssertionResultData( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} \_resultType, LazyExpression \textcolor{keyword}{const}\& \_lazyExpression );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05388}05388 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05389}05389         std::string message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05390}05390         \textcolor{keyword}{mutable} std::string reconstructedExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05391}05391         LazyExpression lazyExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05392}05392         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05393}05393 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05394}05394         std::string reconstructExpression() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05395}05395     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05396}05396 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05397}05397     \textcolor{keyword}{class }AssertionResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05398}05398     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05399}05399         AssertionResult() = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05400}05400         AssertionResult( AssertionInfo \textcolor{keyword}{const}\& info, AssertionResultData \textcolor{keyword}{const}\& data );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05401}05401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05402}05402         \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{isOk}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05403}05403         \textcolor{keywordtype}{bool} succeeded() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05404}05404         \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} getResultType() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05405}05405         \textcolor{keywordtype}{bool} hasExpression() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05406}05406         \textcolor{keywordtype}{bool} hasMessage() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05407}05407         std::string getExpression() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05408}05408         std::string getExpressionInMacro() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05409}05409         \textcolor{keywordtype}{bool} hasExpandedExpression() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05410}05410         std::string getExpandedExpression() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05411}05411         std::string getMessage() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05412}05412         SourceLineInfo getSourceInfo() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05413}05413         StringRef getTestMacroName() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05414}05414 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05415}05415     \textcolor{comment}{//protected:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05416}05416         AssertionInfo m\_info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05417}05417         AssertionResultData m\_resultData;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05418}05418     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05419}05419 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05420}05420 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05421}05421 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05422}05422 \textcolor{comment}{// end catch\_assertionresult.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05423}05423 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05424}05424 \textcolor{comment}{// start catch\_estimate.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05425}05425 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05426}05426  \textcolor{comment}{// Statistics estimates}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05427}05427 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05428}05428 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05429}05429 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05430}05430     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05431}05431         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05432}05432         \textcolor{keyword}{struct }Estimate \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05433}05433             Duration point;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05434}05434             Duration lower\_bound;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05435}05435             Duration upper\_bound;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05436}05436             \textcolor{keywordtype}{double} confidence\_interval;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05437}05437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05438}05438             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05439}05439             \textcolor{keyword}{operator} Estimate<Duration2>()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05440}05440                 \textcolor{keywordflow}{return} \{ point, lower\_bound, upper\_bound, confidence\_interval \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05441}05441             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05442}05442         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05443}05443     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05444}05444 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05445}05445 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05446}05446 \textcolor{comment}{// end catch\_estimate.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05447}05447 \textcolor{comment}{// start catch\_outlier\_classification.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05448}05448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05449}05449 \textcolor{comment}{// Outlier information}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05450}05450 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05451}05451 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05452}05452     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05453}05453         \textcolor{keyword}{struct }OutlierClassification \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05454}05454             \textcolor{keywordtype}{int} samples\_seen = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05455}05455             \textcolor{keywordtype}{int} low\_severe = 0;     \textcolor{comment}{// more than 3 times IQR below Q1}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05456}05456             \textcolor{keywordtype}{int} low\_mild = 0;       \textcolor{comment}{// 1.5 to 3 times IQR below Q1}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05457}05457             \textcolor{keywordtype}{int} high\_mild = 0;      \textcolor{comment}{// 1.5 to 3 times IQR above Q3}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05458}05458             \textcolor{keywordtype}{int} high\_severe = 0;    \textcolor{comment}{// more than 3 times IQR above Q3}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05459}05459 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05460}05460             \textcolor{keywordtype}{int} total()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05461}05461                 \textcolor{keywordflow}{return} low\_severe + low\_mild + high\_mild + high\_severe;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05462}05462             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05463}05463         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05464}05464     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05465}05465 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05466}05466 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05467}05467 \textcolor{comment}{// end catch\_outlier\_classification.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05468}05468 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05469}05469 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05470}05470 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05471}05471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05472}05472 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05473}05473 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05474}05474 \textcolor{preprocessor}{\#include <map>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05475}05475 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05476}05476 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05477}05477 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05478}05478 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05479}05479 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05480}05480 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05481}05481     \textcolor{keyword}{struct }ReporterConfig \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05482}05482         \textcolor{keyword}{explicit} ReporterConfig( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_fullConfig );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05483}05483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05484}05484         ReporterConfig( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_fullConfig, std::ostream\& \_stream );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05485}05485 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05486}05486         std::ostream\& stream() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05487}05487         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} fullConfig() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05488}05488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05489}05489     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05490}05490         std::ostream* m\_stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05491}05491         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} m\_fullConfig;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05492}05492     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05493}05493 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05494}05494     \textcolor{keyword}{struct }ReporterPreferences \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05495}05495         \textcolor{keywordtype}{bool} shouldRedirectStdOut = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05496}05496         \textcolor{keywordtype}{bool} shouldReportAllAssertions = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05497}05497     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05498}05498 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05499}05499     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05500}05500     \textcolor{keyword}{struct }LazyStat : Option<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05501}05501         LazyStat\& operator=( T \textcolor{keyword}{const}\& \_value ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05502}05502             \mbox{\hyperlink{class_catch_1_1_option_a960fd629f3048995038d58fcf9c018b0}{Option<T>::operator=}}( \_value );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05503}05503             used = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05504}05504             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05505}05505         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05506}05506         \textcolor{keywordtype}{void} reset() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05507}05507             \mbox{\hyperlink{class_catch_1_1_option_a37b4e0e5d4d56296adacd267a616f4e0}{Option<T>::reset}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05508}05508             used = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05509}05509         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05510}05510         \textcolor{keywordtype}{bool} used = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05511}05511     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05512}05512 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05513}05513     \textcolor{keyword}{struct }TestRunInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05514}05514         TestRunInfo( std::string \textcolor{keyword}{const}\& \_name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05515}05515         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05516}05516     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05517}05517     \textcolor{keyword}{struct }GroupInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05518}05518         GroupInfo(  std::string \textcolor{keyword}{const}\& \_name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05519}05519                     std::size\_t \_groupIndex,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05520}05520                     std::size\_t \_groupsCount );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05521}05521 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05522}05522         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05523}05523         std::size\_t groupIndex;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05524}05524         std::size\_t groupsCounts;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05525}05525     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05526}05526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05527}05527     \textcolor{keyword}{struct }AssertionStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05528}05528         AssertionStats( AssertionResult \textcolor{keyword}{const}\& \_assertionResult,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05529}05529                         std::vector<MessageInfo> \textcolor{keyword}{const}\& \_infoMessages,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05530}05530                         Totals \textcolor{keyword}{const}\& \_totals );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05531}05531 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05532}05532         AssertionStats( AssertionStats \textcolor{keyword}{const}\& )              = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05533}05533         AssertionStats( AssertionStats \&\& )                  = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05534}05534         AssertionStats\& operator = ( AssertionStats \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05535}05535         AssertionStats\& operator = ( AssertionStats \&\& )     = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05536}05536         \textcolor{keyword}{virtual} \string~AssertionStats();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05537}05537 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05538}05538         AssertionResult assertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05539}05539         std::vector<MessageInfo> infoMessages;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05540}05540         Totals totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05541}05541     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05542}05542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05543}05543     \textcolor{keyword}{struct }SectionStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05544}05544         SectionStats(   SectionInfo \textcolor{keyword}{const}\& \_sectionInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05545}05545                         Counts \textcolor{keyword}{const}\& \_assertions,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05546}05546                         \textcolor{keywordtype}{double} \_durationInSeconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05547}05547                         \textcolor{keywordtype}{bool} \_missingAssertions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05548}05548         SectionStats( SectionStats \textcolor{keyword}{const}\& )              = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05549}05549         SectionStats( SectionStats \&\& )                  = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05550}05550         SectionStats\& operator = ( SectionStats \textcolor{keyword}{const}\& ) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05551}05551         SectionStats\& operator = ( SectionStats \&\& )     = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05552}05552         \textcolor{keyword}{virtual} \string~SectionStats();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05553}05553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05554}05554         SectionInfo sectionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05555}05555         Counts assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05556}05556         \textcolor{keywordtype}{double} durationInSeconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05557}05557         \textcolor{keywordtype}{bool} missingAssertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05558}05558     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05559}05559 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05560}05560     \textcolor{keyword}{struct }TestCaseStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05561}05561         TestCaseStats(  TestCaseInfo \textcolor{keyword}{const}\& \_testInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05562}05562                         Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05563}05563                         std::string \textcolor{keyword}{const}\& \_stdOut,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05564}05564                         std::string \textcolor{keyword}{const}\& \_stdErr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05565}05565                         \textcolor{keywordtype}{bool} \_aborting );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05566}05566 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05567}05567         TestCaseStats( TestCaseStats \textcolor{keyword}{const}\& )              = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05568}05568         TestCaseStats( TestCaseStats \&\& )                  = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05569}05569         TestCaseStats\& operator = ( TestCaseStats \textcolor{keyword}{const}\& ) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05570}05570         TestCaseStats\& operator = ( TestCaseStats \&\& )     = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05571}05571         \textcolor{keyword}{virtual} \string~TestCaseStats();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05572}05572 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05573}05573         TestCaseInfo testInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05574}05574         Totals totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05575}05575         std::string stdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05576}05576         std::string stdErr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05577}05577         \textcolor{keywordtype}{bool} aborting;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05578}05578     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05579}05579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05580}05580     \textcolor{keyword}{struct }TestGroupStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05581}05581         TestGroupStats( GroupInfo \textcolor{keyword}{const}\& \_groupInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05582}05582                         Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05583}05583                         \textcolor{keywordtype}{bool} \_aborting );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05584}05584         TestGroupStats( GroupInfo \textcolor{keyword}{const}\& \_groupInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05585}05585 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05586}05586         TestGroupStats( TestGroupStats \textcolor{keyword}{const}\& )              = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05587}05587         TestGroupStats( TestGroupStats \&\& )                  = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05588}05588         TestGroupStats\& operator = ( TestGroupStats \textcolor{keyword}{const}\& ) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05589}05589         TestGroupStats\& operator = ( TestGroupStats \&\& )     = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05590}05590         \textcolor{keyword}{virtual} \string~TestGroupStats();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05591}05591 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05592}05592         GroupInfo groupInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05593}05593         Totals totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05594}05594         \textcolor{keywordtype}{bool} aborting;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05595}05595     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05596}05596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05597}05597     \textcolor{keyword}{struct }TestRunStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05598}05598         TestRunStats(   TestRunInfo \textcolor{keyword}{const}\& \_runInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05599}05599                         Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05600}05600                         \textcolor{keywordtype}{bool} \_aborting );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05601}05601 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05602}05602         TestRunStats( TestRunStats \textcolor{keyword}{const}\& )              = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05603}05603         TestRunStats( TestRunStats \&\& )                  = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05604}05604         TestRunStats\& operator = ( TestRunStats \textcolor{keyword}{const}\& ) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05605}05605         TestRunStats\& operator = ( TestRunStats \&\& )     = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05606}05606         \textcolor{keyword}{virtual} \string~TestRunStats();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05607}05607 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05608}05608         TestRunInfo runInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05609}05609         Totals totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05610}05610         \textcolor{keywordtype}{bool} aborting;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05611}05611     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05612}05612 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05613}05613 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05614}05614     \textcolor{keyword}{struct }BenchmarkInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05615}05615         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05616}05616         \textcolor{keywordtype}{double} estimatedDuration;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05617}05617         \textcolor{keywordtype}{int} iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05618}05618         \textcolor{keywordtype}{int} samples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05619}05619         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} resamples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05620}05620         \textcolor{keywordtype}{double} clockResolution;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05621}05621         \textcolor{keywordtype}{double} clockCost;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05622}05622     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05623}05623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05624}05624     \textcolor{keyword}{template} <\textcolor{keyword}{class} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05625}05625     \textcolor{keyword}{struct }BenchmarkStats \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05626}05626         BenchmarkInfo info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05627}05627 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05628}05628         std::vector<Duration> samples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05629}05629         Benchmark::Estimate<Duration> mean;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05630}05630         Benchmark::Estimate<Duration> standardDeviation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05631}05631         Benchmark::OutlierClassification outliers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05632}05632         \textcolor{keywordtype}{double} outlierVariance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05633}05633 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05634}05634         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05635}05635         \textcolor{keyword}{operator} BenchmarkStats<Duration2>()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05636}05636             std::vector<Duration2> samples2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05637}05637             samples2.reserve(samples.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05638}05638             \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(samples.begin(), samples.end(), std::back\_inserter(samples2), [](Duration d) \{ return Duration2(d); \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05639}05639             \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05640}05640                 info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05641}05641                 std::move(samples2),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05642}05642                 mean,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05643}05643                 standardDeviation,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05644}05644                 outliers,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05645}05645                 outlierVariance,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05646}05646             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05647}05647         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05648}05648     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05649}05649 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05650}05650 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05651}05651     \textcolor{keyword}{struct }IStreamingReporter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05652}05652         \textcolor{keyword}{virtual} \string~IStreamingReporter() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05653}05653 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05654}05654         \textcolor{comment}{// Implementing class must also provide the following static methods:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05655}05655         \textcolor{comment}{// static std::string getDescription();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05656}05656         \textcolor{comment}{// static std::set<Verbosity> getSupportedVerbosities()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05657}05657 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05658}05658         \textcolor{keyword}{virtual} ReporterPreferences getPreferences() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05659}05659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05660}05660         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} noMatchingTestCases( std::string \textcolor{keyword}{const}\& spec ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05661}05661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05662}05662         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} reportInvalidArguments(std::string \textcolor{keyword}{const}\&) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05663}05663 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05664}05664         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testRunStarting( TestRunInfo \textcolor{keyword}{const}\& testRunInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05665}05665         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testGroupStarting( GroupInfo \textcolor{keyword}{const}\& groupInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05666}05666 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05667}05667         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05668}05668         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} sectionStarting( SectionInfo \textcolor{keyword}{const}\& sectionInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05669}05669 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05670}05670 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05671}05671         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkPreparing( std::string \textcolor{keyword}{const}\& ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05672}05672         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05673}05673         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05674}05674         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} benchmarkFailed( std::string \textcolor{keyword}{const}\& ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05675}05675 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05676}05676 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05677}05677         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} assertionStarting( AssertionInfo \textcolor{keyword}{const}\& assertionInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05678}05678 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05679}05679         \textcolor{comment}{// The return value indicates if the messages buffer should be cleared:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05680}05680         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} assertionEnded( AssertionStats \textcolor{keyword}{const}\& assertionStats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05681}05681 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05682}05682         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} sectionEnded( SectionStats \textcolor{keyword}{const}\& sectionStats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05683}05683         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testCaseEnded( TestCaseStats \textcolor{keyword}{const}\& testCaseStats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05684}05684         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testGroupEnded( TestGroupStats \textcolor{keyword}{const}\& testGroupStats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05685}05685         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testRunEnded( TestRunStats \textcolor{keyword}{const}\& testRunStats ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05686}05686 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05687}05687         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} skipTest( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05688}05688 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05689}05689         \textcolor{comment}{// Default empty implementation provided}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05690}05690         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} fatalErrorEncountered( StringRef name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05691}05691 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05692}05692         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isMulti() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05693}05693     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05694}05694     \textcolor{keyword}{using }IStreamingReporterPtr = std::unique\_ptr<IStreamingReporter>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05695}05695 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05696}05696     \textcolor{keyword}{struct }IReporterFactory \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05697}05697         \textcolor{keyword}{virtual} \string~IReporterFactory();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05698}05698         \textcolor{keyword}{virtual} IStreamingReporterPtr create( ReporterConfig \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05699}05699         \textcolor{keyword}{virtual} std::string getDescription() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05700}05700     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05701}05701     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} = std::shared\_ptr<IReporterFactory>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05702}05702 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05703}05703     \textcolor{keyword}{struct }IReporterRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05704}05704         \textcolor{keyword}{using }FactoryMap = std::map<std::string, IReporterFactoryPtr>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05705}05705         \textcolor{keyword}{using }Listeners = std::vector<IReporterFactoryPtr>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05706}05706 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05707}05707         \textcolor{keyword}{virtual} \string~IReporterRegistry();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05708}05708         \textcolor{keyword}{virtual} IStreamingReporterPtr create( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05709}05709         \textcolor{keyword}{virtual} FactoryMap \textcolor{keyword}{const}\& getFactories() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05710}05710         \textcolor{keyword}{virtual} Listeners \textcolor{keyword}{const}\& getListeners() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05711}05711     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05712}05712 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05713}05713 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05714}05714 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05715}05715 \textcolor{comment}{// end catch\_interfaces\_reporter.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05716}05716 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05717}05717 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05718}05718 \textcolor{preprocessor}{\#include <cfloat>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05719}05719 \textcolor{preprocessor}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05720}05720 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05721}05721 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05722}05722 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05723}05723 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05724}05724 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05725}05725     \textcolor{keywordtype}{void} prepareExpandedExpression(AssertionResult\& result);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05726}05726 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05727}05727     \textcolor{comment}{// Returns double formatted as \%.3f (format expected on output)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05728}05728     std::string getFormattedDuration( \textcolor{keywordtype}{double} duration );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05729}05729 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05731}05731     \textcolor{keywordtype}{bool} shouldShowDuration( IConfig \textcolor{keyword}{const}\& config, \textcolor{keywordtype}{double} duration );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05732}05732 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05733}05733     std::string serializeFilters( std::vector<std::string> \textcolor{keyword}{const}\& container );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05734}05734 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05735}05735     \textcolor{keyword}{template}<\textcolor{keyword}{typename} DerivedT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05736}05736     \textcolor{keyword}{struct }StreamingReporterBase : IStreamingReporter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05737}05737 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05738}05738         StreamingReporterBase( ReporterConfig \textcolor{keyword}{const}\& \_config )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05739}05739         :   m\_config( \_config.fullConfig() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05740}05740             stream( \_config.stream() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05741}05741         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05742}05742             m\_reporterPrefs.shouldRedirectStdOut = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05743}05743             \textcolor{keywordflow}{if}( !DerivedT::getSupportedVerbosities().count( m\_config-\/>verbosity() ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05744}05744                 \mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{CATCH\_ERROR}}( \textcolor{stringliteral}{"{}Verbosity level not supported by this reporter"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05745}05745         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05746}05746 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05747}05747         ReporterPreferences getPreferences()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05748}05748             \textcolor{keywordflow}{return} m\_reporterPrefs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05749}05749         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05750}05750 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05751}05751         \textcolor{keyword}{static} std::set<Verbosity> getSupportedVerbosities() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05752}05752             \textcolor{keywordflow}{return} \{ \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Verbosity::Normal}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05753}05753         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05754}05754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05755}05755         \string~StreamingReporterBase() \textcolor{keyword}{override} = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05756}05756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05757}05757         \textcolor{keywordtype}{void} noMatchingTestCases(std::string \textcolor{keyword}{const}\&)\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05758}05758 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05759}05759         \textcolor{keywordtype}{void} reportInvalidArguments(std::string \textcolor{keyword}{const}\&)\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05760}05760 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05761}05761         \textcolor{keywordtype}{void} testRunStarting(TestRunInfo \textcolor{keyword}{const}\& \_testRunInfo)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05762}05762             currentTestRunInfo = \_testRunInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05763}05763         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05764}05764 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05765}05765         \textcolor{keywordtype}{void} testGroupStarting(GroupInfo \textcolor{keyword}{const}\& \_groupInfo)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05766}05766             currentGroupInfo = \_groupInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05767}05767         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05768}05768 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05769}05769         \textcolor{keywordtype}{void} testCaseStarting(TestCaseInfo \textcolor{keyword}{const}\& \_testInfo)\textcolor{keyword}{ override  }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05770}05770             currentTestCaseInfo = \_testInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05771}05771         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05772}05772         \textcolor{keywordtype}{void} sectionStarting(SectionInfo \textcolor{keyword}{const}\& \_sectionInfo)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05773}05773             m\_sectionStack.push\_back(\_sectionInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05774}05774         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05775}05775 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05776}05776         \textcolor{keywordtype}{void} sectionEnded(SectionStats \textcolor{keyword}{const}\& \textcolor{comment}{/* \_sectionStats */})\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05777}05777             m\_sectionStack.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05778}05778         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05779}05779         \textcolor{keywordtype}{void} testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& \textcolor{comment}{/* \_testCaseStats */})\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05780}05780             currentTestCaseInfo.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05781}05781         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05782}05782         \textcolor{keywordtype}{void} testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& \textcolor{comment}{/* \_testGroupStats */})\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05783}05783             currentGroupInfo.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05784}05784         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05785}05785         \textcolor{keywordtype}{void} testRunEnded(TestRunStats \textcolor{keyword}{const}\& \textcolor{comment}{/* \_testRunStats */})\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05786}05786             currentTestCaseInfo.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05787}05787             currentGroupInfo.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05788}05788             currentTestRunInfo.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05789}05789         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05790}05790 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05791}05791         \textcolor{keywordtype}{void} skipTest(TestCaseInfo \textcolor{keyword}{const}\&)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05792}05792             \textcolor{comment}{// Don't do anything with this by default.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05793}05793             \textcolor{comment}{// It can optionally be overridden in the derived class.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05794}05794         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05795}05795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05796}05796         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05797}05797         std::ostream\& stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05798}05798 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05799}05799         LazyStat<TestRunInfo> currentTestRunInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05800}05800         LazyStat<GroupInfo> currentGroupInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05801}05801         LazyStat<TestCaseInfo> currentTestCaseInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05802}05802 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05803}05803         std::vector<SectionInfo> m\_sectionStack;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05804}05804         ReporterPreferences m\_reporterPrefs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05805}05805     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05806}05806 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05807}05807     \textcolor{keyword}{template}<\textcolor{keyword}{typename} DerivedT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05808}05808     \textcolor{keyword}{struct }CumulativeReporterBase : IStreamingReporter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05809}05809         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} ChildNodeT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05810}05810         \textcolor{keyword}{struct }Node \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05811}05811             \textcolor{keyword}{explicit} Node( T \textcolor{keyword}{const}\& \_value ) : \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}( \_value ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05812}05812             \textcolor{keyword}{virtual} \string~Node() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05813}05813 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05814}05814             \textcolor{keyword}{using }ChildNodes = std::vector<std::shared\_ptr<ChildNodeT>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05815}05815             T \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05816}05816             ChildNodes children;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05817}05817         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05818}05818         \textcolor{keyword}{struct }SectionNode \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05819}05819             \textcolor{keyword}{explicit} SectionNode(SectionStats \textcolor{keyword}{const}\& \_stats) : stats(\_stats) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05820}05820             \textcolor{keyword}{virtual} \string~SectionNode() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05821}05821 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05822}05822             \textcolor{keywordtype}{bool} operator == (SectionNode \textcolor{keyword}{const}\& other)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05823}05823                 \textcolor{keywordflow}{return} stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05824}05824             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05825}05825             \textcolor{keywordtype}{bool} operator == (std::shared\_ptr<SectionNode> \textcolor{keyword}{const}\& other)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05826}05826                 \textcolor{keywordflow}{return} operator==(*other);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05827}05827             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05828}05828 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05829}05829             SectionStats stats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05830}05830             \textcolor{keyword}{using }ChildSections = std::vector<std::shared\_ptr<SectionNode>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05831}05831             \textcolor{keyword}{using }Assertions = std::vector<AssertionStats>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05832}05832             ChildSections childSections;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05833}05833             Assertions assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05834}05834             std::string stdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05835}05835             std::string stdErr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05836}05836         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05837}05837 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05838}05838         \textcolor{keyword}{struct }BySectionInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05839}05839             BySectionInfo( SectionInfo \textcolor{keyword}{const}\& other ) : m\_other( other ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05840}05840             BySectionInfo( BySectionInfo \textcolor{keyword}{const}\& other ) : m\_other( other.m\_other ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05841}05841             \textcolor{keywordtype}{bool} operator() (std::shared\_ptr<SectionNode> \textcolor{keyword}{const}\& node)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05842}05842                 \textcolor{keywordflow}{return} ((node-\/>stats.sectionInfo.name == m\_other.name) \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05843}05843                         (node-\/>stats.sectionInfo.lineInfo == m\_other.lineInfo));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05844}05844             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05845}05845             \textcolor{keywordtype}{void} operator=(BySectionInfo \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05846}05846 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05847}05847         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05848}05848             SectionInfo \textcolor{keyword}{const}\& m\_other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05849}05849         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05850}05850 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05851}05851         \textcolor{keyword}{using }TestCaseNode = Node<TestCaseStats, SectionNode>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05852}05852         \textcolor{keyword}{using }TestGroupNode = Node<TestGroupStats, TestCaseNode>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05853}05853         \textcolor{keyword}{using }TestRunNode = Node<TestRunStats, TestGroupNode>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05854}05854 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05855}05855         CumulativeReporterBase( ReporterConfig \textcolor{keyword}{const}\& \_config )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05856}05856         :   m\_config( \_config.fullConfig() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05857}05857             stream( \_config.stream() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05858}05858         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05859}05859             m\_reporterPrefs.shouldRedirectStdOut = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05860}05860             \textcolor{keywordflow}{if}( !DerivedT::getSupportedVerbosities().count( m\_config-\/>verbosity() ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05861}05861                 \mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{CATCH\_ERROR}}( \textcolor{stringliteral}{"{}Verbosity level not supported by this reporter"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05862}05862         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05863}05863         \string~CumulativeReporterBase() \textcolor{keyword}{override} = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05864}05864 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05865}05865         ReporterPreferences getPreferences()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05866}05866             \textcolor{keywordflow}{return} m\_reporterPrefs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05867}05867         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05868}05868 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05869}05869         \textcolor{keyword}{static} std::set<Verbosity> getSupportedVerbosities() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05870}05870             \textcolor{keywordflow}{return} \{ \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Verbosity::Normal}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05871}05871         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05872}05872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05873}05873         \textcolor{keywordtype}{void} testRunStarting( TestRunInfo \textcolor{keyword}{const}\& )\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05874}05874         \textcolor{keywordtype}{void} testGroupStarting( GroupInfo \textcolor{keyword}{const}\& )\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05875}05875 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05876}05876         \textcolor{keywordtype}{void} testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& )\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05877}05877 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05878}05878         \textcolor{keywordtype}{void} sectionStarting( SectionInfo \textcolor{keyword}{const}\& sectionInfo )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05879}05879             SectionStats incompleteStats( sectionInfo, Counts(), 0, \textcolor{keyword}{false} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05880}05880             std::shared\_ptr<SectionNode> node;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05881}05881             \textcolor{keywordflow}{if}( m\_sectionStack.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05882}05882                 \textcolor{keywordflow}{if}( !m\_rootSection )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05883}05883                     m\_rootSection = std::make\_shared<SectionNode>( incompleteStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05884}05884                 node = m\_rootSection;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05885}05885             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05886}05886             \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05887}05887                 SectionNode\& parentNode = *m\_sectionStack.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05888}05888                 \textcolor{keyword}{auto} it =}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05889}05889                     \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{std::find\_if}}(   parentNode.childSections.begin(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05890}05890                                     parentNode.childSections.end(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05891}05891                                     BySectionInfo( sectionInfo ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05892}05892                 \textcolor{keywordflow}{if}( it == parentNode.childSections.end() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05893}05893                     node = std::make\_shared<SectionNode>( incompleteStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05894}05894                     parentNode.childSections.push\_back( node );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05895}05895                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05896}05896                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05897}05897                     node = *it;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05898}05898             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05899}05899             m\_sectionStack.push\_back( node );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05900}05900             m\_deepestSection = std::move(node);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05901}05901         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05902}05902 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05903}05903         \textcolor{keywordtype}{void} assertionStarting(AssertionInfo \textcolor{keyword}{const}\&)\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05904}05904 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05905}05905         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\& assertionStats)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05906}05906             assert(!m\_sectionStack.empty());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05907}05907             \textcolor{comment}{// AssertionResult holds a pointer to a temporary DecomposedExpression,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05908}05908             \textcolor{comment}{// which getExpandedExpression() calls to build the expression string.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05909}05909             \textcolor{comment}{// Our section stack copy of the assertionResult will likely outlive the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05910}05910             \textcolor{comment}{// temporary, so it must be expanded or discarded now to avoid calling}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05911}05911             \textcolor{comment}{// a destroyed object later.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05912}05912             prepareExpandedExpression(\textcolor{keyword}{const\_cast<}AssertionResult\&\textcolor{keyword}{>}( assertionStats.assertionResult ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05913}05913             SectionNode\& sectionNode = *m\_sectionStack.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05914}05914             sectionNode.assertions.push\_back(assertionStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05915}05915             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05916}05916         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05917}05917         \textcolor{keywordtype}{void} sectionEnded(SectionStats \textcolor{keyword}{const}\& sectionStats)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05918}05918             assert(!m\_sectionStack.empty());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05919}05919             SectionNode\& node = *m\_sectionStack.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05920}05920             node.stats = sectionStats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05921}05921             m\_sectionStack.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05922}05922         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05923}05923         \textcolor{keywordtype}{void} testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& testCaseStats)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05924}05924             \textcolor{keyword}{auto} node = std::make\_shared<TestCaseNode>(testCaseStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05925}05925             assert(m\_sectionStack.size() == 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05926}05926             node-\/>children.push\_back(m\_rootSection);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05927}05927             m\_testCases.push\_back(node);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05928}05928             m\_rootSection.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05929}05929 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05930}05930             assert(m\_deepestSection);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05931}05931             m\_deepestSection-\/>stdOut = testCaseStats.stdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05932}05932             m\_deepestSection-\/>stdErr = testCaseStats.stdErr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05933}05933         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05934}05934         \textcolor{keywordtype}{void} testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& testGroupStats)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05935}05935             \textcolor{keyword}{auto} node = std::make\_shared<TestGroupNode>(testGroupStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05936}05936             node-\/>children.swap(m\_testCases);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05937}05937             m\_testGroups.push\_back(node);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05938}05938         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05939}05939         \textcolor{keywordtype}{void} testRunEnded(TestRunStats \textcolor{keyword}{const}\& testRunStats)\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05940}05940             \textcolor{keyword}{auto} node = std::make\_shared<TestRunNode>(testRunStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05941}05941             node-\/>children.swap(m\_testGroups);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05942}05942             m\_testRuns.push\_back(node);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05943}05943             testRunEndedCumulative();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05944}05944         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05945}05945         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} testRunEndedCumulative() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05946}05946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05947}05947         \textcolor{keywordtype}{void} skipTest(TestCaseInfo \textcolor{keyword}{const}\&)\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05948}05948 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05949}05949         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05950}05950         std::ostream\& stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05951}05951         std::vector<AssertionStats> m\_assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05952}05952         std::vector<std::vector<std::shared\_ptr<SectionNode>>> m\_sections;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05953}05953         std::vector<std::shared\_ptr<TestCaseNode>> m\_testCases;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05954}05954         std::vector<std::shared\_ptr<TestGroupNode>> m\_testGroups;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05955}05955 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05956}05956         std::vector<std::shared\_ptr<TestRunNode>> m\_testRuns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05957}05957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05958}05958         std::shared\_ptr<SectionNode> m\_rootSection;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05959}05959         std::shared\_ptr<SectionNode> m\_deepestSection;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05960}05960         std::vector<std::shared\_ptr<SectionNode>> m\_sectionStack;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05961}05961         ReporterPreferences m\_reporterPrefs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05962}05962     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05963}05963 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05964}05964     \textcolor{keyword}{template}<\textcolor{keywordtype}{char} C>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05965}05965     \textcolor{keywordtype}{char} \textcolor{keyword}{const}* getLineOfChars() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05966}05966         \textcolor{keyword}{static} \textcolor{keywordtype}{char} line[CATCH\_CONFIG\_CONSOLE\_WIDTH] = \{0\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05967}05967         \textcolor{keywordflow}{if}( !*line ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05968}05968             std::memset( line, C, CATCH\_CONFIG\_CONSOLE\_WIDTH-\/1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05969}05969             line[CATCH\_CONFIG\_CONSOLE\_WIDTH-\/1] = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05970}05970         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05971}05971         \textcolor{keywordflow}{return} line;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05972}05972     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05973}05973 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05974}05974     \textcolor{keyword}{struct }TestEventListenerBase : StreamingReporterBase<TestEventListenerBase> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05975}05975         TestEventListenerBase( ReporterConfig \textcolor{keyword}{const}\& \_config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05976}05976 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05977}05977         \textcolor{keyword}{static} std::set<Verbosity> getSupportedVerbosities();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05978}05978 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05979}05979         \textcolor{keywordtype}{void} assertionStarting(AssertionInfo \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05980}05980         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05981}05981     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05982}05982 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05983}05983 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05984}05984 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05985}05985 \textcolor{comment}{// end catch\_reporter\_bases.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05986}05986 \textcolor{comment}{// start catch\_console\_colour.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05987}05987 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05988}05988 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05989}05989 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05990}05990     \textcolor{keyword}{struct }Colour \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05991}05991         \textcolor{keyword}{enum} Code \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05992}05992             None = 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05993}05993 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05994}05994             White,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05995}05995             Red,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05996}05996             Green,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05997}05997             Blue,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05998}05998             Cyan,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l05999}05999             Yellow,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06000}06000             Grey,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06001}06001 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06002}06002             Bright = 0x10,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06003}06003 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06004}06004             BrightRed = Bright | Red,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06005}06005             BrightGreen = Bright | Green,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06006}06006             LightGrey = Bright | Grey,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06007}06007             BrightWhite = Bright | White,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06008}06008             BrightYellow = Bright | Yellow,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06009}06009 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06010}06010             \textcolor{comment}{// By intention}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06011}06011             FileName = LightGrey,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06012}06012             Warning = BrightYellow,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06013}06013             ResultError = BrightRed,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06014}06014             ResultSuccess = BrightGreen,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06015}06015             ResultExpectedFailure = Warning,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06016}06016 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06017}06017             Error = BrightRed,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06018}06018             Success = Green,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06019}06019 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06020}06020             OriginalExpression = Cyan,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06021}06021             ReconstructedExpression = BrightYellow,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06022}06022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06023}06023             SecondaryText = LightGrey,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06024}06024             Headers = White}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06025}06025         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06026}06026 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06027}06027         \textcolor{comment}{// Use constructed object for RAII guard}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06028}06028         Colour( Code \_colourCode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06029}06029         Colour( Colour\&\& other ) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06030}06030         Colour\& operator=( Colour\&\& other ) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06031}06031         \string~Colour();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06032}06032 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06033}06033         \textcolor{comment}{// Use static method for one-\/shot changes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06034}06034         \textcolor{keyword}{static} \textcolor{keywordtype}{void} use( Code \_colourCode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06035}06035 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06036}06036     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06037}06037         \textcolor{keywordtype}{bool} m\_moved = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06038}06038     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06039}06039 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06040}06040     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, Colour \textcolor{keyword}{const}\& );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06041}06041 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06042}06042 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06043}06043 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06044}06044 \textcolor{comment}{// end catch\_console\_colour.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06045}06045 \textcolor{comment}{// start catch\_reporter\_registrars.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06046}06046 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06047}06047 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06048}06048 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06049}06049 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06050}06050     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06051}06051     \textcolor{keyword}{class }ReporterRegistrar \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06052}06052 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06053}06053         \textcolor{keyword}{class }ReporterFactory : \textcolor{keyword}{public} IReporterFactory \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06054}06054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06055}06055             IStreamingReporterPtr create( ReporterConfig \textcolor{keyword}{const}\& config )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06056}06056                 \textcolor{keywordflow}{return} std::unique\_ptr<T>( \textcolor{keyword}{new} T( config ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06057}06057             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06058}06058 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06059}06059             std::string getDescription()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06060}06060                 \textcolor{keywordflow}{return} T::getDescription();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06061}06061             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06062}06062         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06063}06063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06064}06064     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06065}06065 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06066}06066         \textcolor{keyword}{explicit} ReporterRegistrar( std::string \textcolor{keyword}{const}\& name ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06067}06067             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a1c0ac202ac31ee9f88e8ff5cbac4b243}{registerReporter}}( name, std::make\_shared<ReporterFactory>() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06068}06068         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06069}06069     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06070}06070 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06071}06071     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06072}06072     \textcolor{keyword}{class }ListenerRegistrar \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06073}06073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06074}06074         \textcolor{keyword}{class }ListenerFactory : \textcolor{keyword}{public} IReporterFactory \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06075}06075 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06076}06076             IStreamingReporterPtr create( ReporterConfig \textcolor{keyword}{const}\& config )\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06077}06077                 \textcolor{keywordflow}{return} std::unique\_ptr<T>( \textcolor{keyword}{new} T( config ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06078}06078             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06079}06079             std::string getDescription()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06080}06080                 \textcolor{keywordflow}{return} std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06081}06081             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06082}06082         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06083}06083 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06084}06084     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06085}06085 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06086}06086         ListenerRegistrar() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06087}06087             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abd892a133f85581fd00ee75bb379ca56}{registerListener}}( std::make\_shared<ListenerFactory>() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06088}06088         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06089}06089     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06090}06090 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06091}06091 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06092}06092 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06093}06093 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06094}06094 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_REPORTER( name, reporterType ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06095}06095 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06096}06096 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06097}06097 \textcolor{preprocessor}{    namespace\{ Catch::ReporterRegistrar<reporterType> catch\_internal\_RegistrarFor\#\#reporterType( name ); \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06098}06098 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06099}06099 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06100}06100 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_LISTENER( listenerType ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06101}06101 \textcolor{preprocessor}{    CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06102}06102 \textcolor{preprocessor}{    CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06103}06103 \textcolor{preprocessor}{    namespace\{ Catch::ListenerRegistrar<listenerType> catch\_internal\_RegistrarFor\#\#listenerType; \} \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06104}06104 \textcolor{preprocessor}{    CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06105}06105 \textcolor{preprocessor}{\#else }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06106}06106 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06107}06107 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_REPORTER(name, reporterType)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06108}06108 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_LISTENER(listenerType)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06109}06109 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06110}06110 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06111}06111 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06112}06112 \textcolor{comment}{// end catch\_reporter\_registrars.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06113}06113 \textcolor{comment}{// Allow users to base their work off existing reporters}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06114}06114 \textcolor{comment}{// start catch\_reporter\_compact.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06115}06115 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06116}06116 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06117}06117 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06118}06118     \textcolor{keyword}{struct }CompactReporter : StreamingReporterBase<CompactReporter> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06119}06119 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06120}06120         \textcolor{keyword}{using }StreamingReporterBase::StreamingReporterBase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06121}06121 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06122}06122         \string~CompactReporter() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06123}06123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06124}06124         \textcolor{keyword}{static} std::string getDescription();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06125}06125 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06126}06126         \textcolor{keywordtype}{void} noMatchingTestCases(std::string \textcolor{keyword}{const}\& spec) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06127}06127 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06128}06128         \textcolor{keywordtype}{void} assertionStarting(AssertionInfo \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06129}06129 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06130}06130         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\& \_assertionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06131}06131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06132}06132         \textcolor{keywordtype}{void} sectionEnded(SectionStats \textcolor{keyword}{const}\& \_sectionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06133}06133 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06134}06134         \textcolor{keywordtype}{void} testRunEnded(TestRunStats \textcolor{keyword}{const}\& \_testRunStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06135}06135 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06136}06136     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06137}06137 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06138}06138 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06139}06139 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06140}06140 \textcolor{comment}{// end catch\_reporter\_compact.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06141}06141 \textcolor{comment}{// start catch\_reporter\_console.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06142}06142 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06143}06143 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06144}06144 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06145}06145 \textcolor{preprocessor}{\#pragma warning(disable:4061) }\textcolor{comment}{// Not all labels are EXPLICITLY handled in switch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06146}06146                               \textcolor{comment}{// Note that 4062 (not all labels are handled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06147}06147                               \textcolor{comment}{// and default is missing) is enabled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06148}06148 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06149}06149 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06150}06150 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06151}06151     \textcolor{comment}{// Fwd decls}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06152}06152     \textcolor{keyword}{struct }SummaryColumn;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06153}06153     \textcolor{keyword}{class }TablePrinter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06154}06154 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06155}06155     \textcolor{keyword}{struct }ConsoleReporter : StreamingReporterBase<ConsoleReporter> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06156}06156         std::unique\_ptr<TablePrinter> m\_tablePrinter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06157}06157 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06158}06158         ConsoleReporter(ReporterConfig \textcolor{keyword}{const}\& config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06159}06159         \string~ConsoleReporter() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06160}06160         \textcolor{keyword}{static} std::string getDescription();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06161}06161 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06162}06162         \textcolor{keywordtype}{void} noMatchingTestCases(std::string \textcolor{keyword}{const}\& spec) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06163}06163 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06164}06164         \textcolor{keywordtype}{void} reportInvalidArguments(std::string \textcolor{keyword}{const}\&arg) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06165}06165 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06166}06166         \textcolor{keywordtype}{void} assertionStarting(AssertionInfo \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06167}06167 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06168}06168         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\& \_assertionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06169}06169 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06170}06170         \textcolor{keywordtype}{void} sectionStarting(SectionInfo \textcolor{keyword}{const}\& \_sectionInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06171}06171         \textcolor{keywordtype}{void} sectionEnded(SectionStats \textcolor{keyword}{const}\& \_sectionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06172}06172 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06173}06173 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06174}06174         \textcolor{keywordtype}{void} benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06175}06175         \textcolor{keywordtype}{void} benchmarkStarting(BenchmarkInfo \textcolor{keyword}{const}\& info) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06176}06176         \textcolor{keywordtype}{void} benchmarkEnded(BenchmarkStats<> \textcolor{keyword}{const}\& stats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06177}06177         \textcolor{keywordtype}{void} benchmarkFailed(std::string \textcolor{keyword}{const}\& error) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06178}06178 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06179}06179 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06180}06180         \textcolor{keywordtype}{void} testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& \_testCaseStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06181}06181         \textcolor{keywordtype}{void} testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& \_testGroupStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06182}06182         \textcolor{keywordtype}{void} testRunEnded(TestRunStats \textcolor{keyword}{const}\& \_testRunStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06183}06183         \textcolor{keywordtype}{void} testRunStarting(TestRunInfo \textcolor{keyword}{const}\& \_testRunInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06184}06184     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06185}06185 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06186}06186         \textcolor{keywordtype}{void} lazyPrint();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06187}06187 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06188}06188         \textcolor{keywordtype}{void} lazyPrintWithoutClosingBenchmarkTable();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06189}06189         \textcolor{keywordtype}{void} lazyPrintRunInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06190}06190         \textcolor{keywordtype}{void} lazyPrintGroupInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06191}06191         \textcolor{keywordtype}{void} printTestCaseAndSectionHeader();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06192}06192 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06193}06193         \textcolor{keywordtype}{void} printClosedHeader(std::string \textcolor{keyword}{const}\& \_name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06194}06194         \textcolor{keywordtype}{void} printOpenHeader(std::string \textcolor{keyword}{const}\& \_name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06195}06195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06196}06196         \textcolor{comment}{// if string has a : in first line will set indent to follow it on}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06197}06197         \textcolor{comment}{// subsequent lines}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06198}06198         \textcolor{keywordtype}{void} printHeaderString(std::string \textcolor{keyword}{const}\& \_string, std::size\_t indent = 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06199}06199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06200}06200         \textcolor{keywordtype}{void} printTotals(Totals \textcolor{keyword}{const}\& totals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06201}06201         \textcolor{keywordtype}{void} printSummaryRow(std::string \textcolor{keyword}{const}\& label, std::vector<SummaryColumn> \textcolor{keyword}{const}\& cols, std::size\_t row);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06202}06202 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06203}06203         \textcolor{keywordtype}{void} printTotalsDivider(Totals \textcolor{keyword}{const}\& totals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06204}06204         \textcolor{keywordtype}{void} printSummaryDivider();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06205}06205         \textcolor{keywordtype}{void} printTestFilters();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06206}06206 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06207}06207     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06208}06208         \textcolor{keywordtype}{bool} m\_headerPrinted = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06209}06209     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06210}06210 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06211}06211 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06212}06212 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06213}06213 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06214}06214 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06215}06215 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06216}06216 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06217}06217 \textcolor{comment}{// end catch\_reporter\_console.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06218}06218 \textcolor{comment}{// start catch\_reporter\_junit.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06219}06219 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06220}06220 \textcolor{comment}{// start catch\_xmlwriter.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06221}06221 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06222}06222 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06223}06223 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06224}06224 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06225}06225     \textcolor{keyword}{enum class} XmlFormatting \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06226}06226         None = 0x00,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06227}06227         Indent = 0x01,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06228}06228         Newline = 0x02,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06229}06229     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06230}06230 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06231}06231     XmlFormatting \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator | }}(XmlFormatting lhs, XmlFormatting rhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06232}06232     XmlFormatting \mbox{\hyperlink{namespacekblib_abb6b875ecf3a38a03dcd0b15aca7a0ea}{operator \& }}(XmlFormatting lhs, XmlFormatting rhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06233}06233 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06234}06234     \textcolor{keyword}{class }XmlEncode \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06235}06235     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06236}06236         \textcolor{keyword}{enum} ForWhat \{ ForTextNodes, ForAttributes \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06237}06237 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06238}06238         XmlEncode( std::string \textcolor{keyword}{const}\& str, ForWhat forWhat = ForTextNodes );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06239}06239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06240}06240         \textcolor{keywordtype}{void} encodeTo( std::ostream\& os ) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06241}06241 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06242}06242         \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, XmlEncode \textcolor{keyword}{const}\& xmlEncode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06243}06243 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06244}06244     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06245}06245         std::string m\_str;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06246}06246         ForWhat m\_forWhat;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06247}06247     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06248}06248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06249}06249     \textcolor{keyword}{class }XmlWriter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06250}06250     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06251}06251 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06252}06252         \textcolor{keyword}{class }ScopedElement \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06253}06253         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06254}06254             ScopedElement( XmlWriter* writer, XmlFormatting fmt );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06255}06255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06256}06256             ScopedElement( ScopedElement\&\& other ) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06257}06257             ScopedElement\& operator=( ScopedElement\&\& other ) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06258}06258 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06259}06259             \string~ScopedElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06260}06260 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06261}06261             ScopedElement\& writeText( std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06262}06262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06263}06263             \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06264}06264             ScopedElement\& writeAttribute( std::string \textcolor{keyword}{const}\& name, T \textcolor{keyword}{const}\& attribute ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06265}06265                 m\_writer-\/>writeAttribute( name, attribute );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06266}06266                 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06267}06267             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06268}06268 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06269}06269         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06270}06270             \textcolor{keyword}{mutable} XmlWriter* m\_writer = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06271}06271             XmlFormatting m\_fmt;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06272}06272         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06273}06273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06274}06274         XmlWriter( std::ostream\& os = \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06275}06275         \string~XmlWriter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06276}06276 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06277}06277         XmlWriter( XmlWriter \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06278}06278         XmlWriter\& operator=( XmlWriter \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06279}06279 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06280}06280         XmlWriter\& startElement( std::string \textcolor{keyword}{const}\& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06281}06281 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06282}06282         ScopedElement scopedElement( std::string \textcolor{keyword}{const}\& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06283}06283 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06284}06284         XmlWriter\& endElement(XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06285}06285 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06286}06286         XmlWriter\& writeAttribute( std::string \textcolor{keyword}{const}\& name, std::string \textcolor{keyword}{const}\& attribute );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06287}06287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06288}06288         XmlWriter\& writeAttribute( std::string \textcolor{keyword}{const}\& name, \textcolor{keywordtype}{bool} attribute );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06289}06289 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06290}06290         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06291}06291         XmlWriter\& writeAttribute( std::string \textcolor{keyword}{const}\& name, T \textcolor{keyword}{const}\& attribute ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06292}06292             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06293}06293             rss << attribute;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06294}06294             \textcolor{keywordflow}{return} writeAttribute( name, rss.str() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06295}06295         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06296}06296 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06297}06297         XmlWriter\& writeText( std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06298}06298 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06299}06299         XmlWriter\& writeComment(std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06300}06300 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06301}06301         \textcolor{keywordtype}{void} writeStylesheetRef( std::string \textcolor{keyword}{const}\& url );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06302}06302 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06303}06303         XmlWriter\& writeBlankLine();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06304}06304 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06305}06305         \textcolor{keywordtype}{void} ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06306}06306 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06307}06307     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06308}06308 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06309}06309         \textcolor{keywordtype}{void} applyFormatting(XmlFormatting fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06310}06310 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06311}06311         \textcolor{keywordtype}{void} writeDeclaration();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06312}06312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06313}06313         \textcolor{keywordtype}{void} newlineIfNecessary();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06314}06314 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06315}06315         \textcolor{keywordtype}{bool} m\_tagIsOpen = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06316}06316         \textcolor{keywordtype}{bool} m\_needsNewline = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06317}06317         std::vector<std::string> m\_tags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06318}06318         std::string m\_indent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06319}06319         std::ostream\& m\_os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06320}06320     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06321}06321 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06322}06322 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06323}06323 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06324}06324 \textcolor{comment}{// end catch\_xmlwriter.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06325}06325 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06326}06326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06327}06327     \textcolor{keyword}{class }JunitReporter : \textcolor{keyword}{public} CumulativeReporterBase<JunitReporter> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06328}06328     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06329}06329         JunitReporter(ReporterConfig \textcolor{keyword}{const}\& \_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06330}06330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06331}06331         \string~JunitReporter() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06332}06332 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06333}06333         \textcolor{keyword}{static} std::string getDescription();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06334}06334 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06335}06335         \textcolor{keywordtype}{void} noMatchingTestCases(std::string \textcolor{keyword}{const}\& \textcolor{comment}{/*spec*/}) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06336}06336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06337}06337         \textcolor{keywordtype}{void} testRunStarting(TestRunInfo \textcolor{keyword}{const}\& runInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06338}06338 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06339}06339         \textcolor{keywordtype}{void} testGroupStarting(GroupInfo \textcolor{keyword}{const}\& groupInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06340}06340 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06341}06341         \textcolor{keywordtype}{void} testCaseStarting(TestCaseInfo \textcolor{keyword}{const}\& testCaseInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06342}06342         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\& assertionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06343}06343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06344}06344         \textcolor{keywordtype}{void} testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& testCaseStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06345}06345 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06346}06346         \textcolor{keywordtype}{void} testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& testGroupStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06347}06347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06348}06348         \textcolor{keywordtype}{void} testRunEndedCumulative() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06349}06349 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06350}06350         \textcolor{keywordtype}{void} writeGroup(TestGroupNode \textcolor{keyword}{const}\& groupNode, \textcolor{keywordtype}{double} suiteTime);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06351}06351 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06352}06352         \textcolor{keywordtype}{void} writeTestCase(TestCaseNode \textcolor{keyword}{const}\& testCaseNode);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06353}06353 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06354}06354         \textcolor{keywordtype}{void} writeSection( std::string \textcolor{keyword}{const}\& className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06355}06355                            std::string \textcolor{keyword}{const}\& rootName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06356}06356                            SectionNode \textcolor{keyword}{const}\& sectionNode,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06357}06357                            \textcolor{keywordtype}{bool} testOkToFail );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06358}06358 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06359}06359         \textcolor{keywordtype}{void} writeAssertions(SectionNode \textcolor{keyword}{const}\& sectionNode);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06360}06360         \textcolor{keywordtype}{void} writeAssertion(AssertionStats \textcolor{keyword}{const}\& stats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06361}06361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06362}06362         XmlWriter xml;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06363}06363         Timer suiteTimer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06364}06364         std::string stdOutForSuite;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06365}06365         std::string stdErrForSuite;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06366}06366         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} unexpectedExceptions = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06367}06367         \textcolor{keywordtype}{bool} m\_okToFail = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06368}06368     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06369}06369 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06370}06370 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06371}06371 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06372}06372 \textcolor{comment}{// end catch\_reporter\_junit.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06373}06373 \textcolor{comment}{// start catch\_reporter\_xml.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06374}06374 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06375}06375 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06376}06376     \textcolor{keyword}{class }XmlReporter : \textcolor{keyword}{public} StreamingReporterBase<XmlReporter> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06377}06377     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06378}06378         XmlReporter(ReporterConfig \textcolor{keyword}{const}\& \_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06379}06379 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06380}06380         \string~XmlReporter() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06381}06381 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06382}06382         \textcolor{keyword}{static} std::string getDescription();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06383}06383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06384}06384         \textcolor{keyword}{virtual} std::string getStylesheetRef() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06385}06385 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06386}06386         \textcolor{keywordtype}{void} writeSourceInfo(SourceLineInfo \textcolor{keyword}{const}\& sourceInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06387}06387 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06388}06388     \textcolor{keyword}{public}: \textcolor{comment}{// StreamingReporterBase}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06389}06389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06390}06390         \textcolor{keywordtype}{void} noMatchingTestCases(std::string \textcolor{keyword}{const}\& s) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06391}06391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06392}06392         \textcolor{keywordtype}{void} testRunStarting(TestRunInfo \textcolor{keyword}{const}\& testInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06393}06393 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06394}06394         \textcolor{keywordtype}{void} testGroupStarting(GroupInfo \textcolor{keyword}{const}\& groupInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06395}06395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06396}06396         \textcolor{keywordtype}{void} testCaseStarting(TestCaseInfo \textcolor{keyword}{const}\& testInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06397}06397 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06398}06398         \textcolor{keywordtype}{void} sectionStarting(SectionInfo \textcolor{keyword}{const}\& sectionInfo) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06399}06399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06400}06400         \textcolor{keywordtype}{void} assertionStarting(AssertionInfo \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06401}06401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06402}06402         \textcolor{keywordtype}{bool} assertionEnded(AssertionStats \textcolor{keyword}{const}\& assertionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06403}06403 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06404}06404         \textcolor{keywordtype}{void} sectionEnded(SectionStats \textcolor{keyword}{const}\& sectionStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06405}06405 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06406}06406         \textcolor{keywordtype}{void} testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& testCaseStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06407}06407 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06408}06408         \textcolor{keywordtype}{void} testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& testGroupStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06409}06409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06410}06410         \textcolor{keywordtype}{void} testRunEnded(TestRunStats \textcolor{keyword}{const}\& testRunStats) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06411}06411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06412}06412 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06413}06413         \textcolor{keywordtype}{void} benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06414}06414         \textcolor{keywordtype}{void} benchmarkStarting(BenchmarkInfo \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06415}06415         \textcolor{keywordtype}{void} benchmarkEnded(BenchmarkStats<> \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06416}06416         \textcolor{keywordtype}{void} benchmarkFailed(std::string \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06417}06417 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06418}06418 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06419}06419     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06420}06420         Timer m\_testCaseTimer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06421}06421         XmlWriter m\_xml;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06422}06422         \textcolor{keywordtype}{int} m\_sectionDepth = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06423}06423     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06424}06424 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06425}06425 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06426}06426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06427}06427 \textcolor{comment}{// end catch\_reporter\_xml.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06428}06428 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06429}06429 \textcolor{comment}{// end catch\_external\_interfaces.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06430}06430 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06431}06431 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06432}06432 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06433}06433 \textcolor{comment}{// start catch\_benchmarking\_all.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06434}06434 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06435}06435 \textcolor{comment}{// A proxy header that includes all of the benchmarking headers to allow}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06436}06436 \textcolor{comment}{// concise include of the benchmarking features. You should prefer the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06437}06437 \textcolor{comment}{// individual includes in standard use.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06438}06438 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06439}06439 \textcolor{comment}{// start catch\_benchmark.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06440}06440 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06441}06441  \textcolor{comment}{// Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06442}06442 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06443}06443 \textcolor{comment}{// start catch\_chronometer.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06444}06444 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06445}06445 \textcolor{comment}{// User-\/facing chronometer}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06446}06446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06447}06447 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06448}06448 \textcolor{comment}{// start catch\_clock.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06449}06449 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06450}06450 \textcolor{comment}{// Clocks}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06451}06451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06452}06452 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06453}06453 \textcolor{preprocessor}{\#include <chrono>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06454}06454 \textcolor{preprocessor}{\#include <ratio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06455}06455 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06456}06456 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06457}06457     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06458}06458         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06459}06459         \textcolor{keyword}{using }ClockDuration = \textcolor{keyword}{typename} Clock::duration;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06460}06460         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06461}06461         \textcolor{keyword}{using }FloatDuration = std::chrono::duration<double, typename Clock::period>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06462}06462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06463}06463         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06464}06464         \textcolor{keyword}{using }TimePoint = \textcolor{keyword}{typename} Clock::time\_point;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06465}06465 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06466}06466         \textcolor{keyword}{using }default\_clock = std::chrono::steady\_clock;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06467}06467 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06468}06468         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06469}06469         \textcolor{keyword}{struct }now \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06470}06470             TimePoint<Clock> operator()()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06471}06471                 \textcolor{keywordflow}{return} Clock::now();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06472}06472             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06473}06473         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06474}06474 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06475}06475         \textcolor{keyword}{using }fp\_seconds = std::chrono::duration<double, std::ratio<1>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06476}06476     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06477}06477 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06478}06478 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06479}06479 \textcolor{comment}{// end catch\_clock.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06480}06480 \textcolor{comment}{// start catch\_optimizer.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06481}06481 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06482}06482  \textcolor{comment}{// Hinting the optimizer}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06483}06483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06484}06484 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06485}06485 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06486}06486 \textcolor{preprocessor}{\#   include <atomic>} \textcolor{comment}{// atomic\_thread\_fence}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06487}06487 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06488}06488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06489}06489 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06490}06490     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06491}06491 \textcolor{preprocessor}{\#if defined(\_\_GNUC\_\_) || defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06492}06492         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06493}06493         \textcolor{keyword}{inline} \textcolor{keywordtype}{void} keep\_memory(T* p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06494}06494             \textcolor{keyword}{asm} \textcolor{keyword}{volatile}(\textcolor{stringliteral}{"{}"{}} : : \textcolor{stringliteral}{"{}g"{}}(p) : \textcolor{stringliteral}{"{}memory"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06495}06495         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06496}06496         \textcolor{keyword}{inline} \textcolor{keywordtype}{void} keep\_memory() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06497}06497             \textcolor{keyword}{asm} \textcolor{keyword}{volatile}(\textcolor{stringliteral}{"{}"{}} : : : \textcolor{stringliteral}{"{}memory"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06498}06498         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06499}06499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06500}06500         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06501}06501             \textcolor{keyword}{inline} \textcolor{keywordtype}{void} optimizer\_barrier() \{ keep\_memory(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06502}06502         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06503}06503 \textcolor{preprocessor}{\#elif defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06504}06504 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06505}06505 \textcolor{preprocessor}{\#pragma optimize("{}"{}}, off)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06506}06506         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06507}06507         \textcolor{keyword}{inline} \textcolor{keywordtype}{void} keep\_memory(T* p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06508}06508             \textcolor{comment}{// thanks @milleniumbug}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06509}06509             *\textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char} volatile*\textcolor{keyword}{>}(p) = *\textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char} \textcolor{keyword}{const }volatile*\textcolor{keyword}{>}(p);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06510}06510         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06511}06511         \textcolor{comment}{// TODO equivalent keep\_memory()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06512}06512 \textcolor{preprocessor}{\#pragma optimize("{}"{}}, on)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06513}06513 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06514}06514         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06515}06515             \textcolor{keyword}{inline} \textcolor{keywordtype}{void} optimizer\_barrier() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06516}06516                 std::atomic\_thread\_fence(std::memory\_order\_seq\_cst);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06517}06517             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06518}06518         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06519}06519 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06520}06520 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06521}06521 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06522}06522         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06523}06523         \textcolor{keyword}{inline} \textcolor{keywordtype}{void} deoptimize\_value(T\&\& x) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06524}06524             keep\_memory(\&x);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06525}06525         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06526}06526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06527}06527         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fn, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06528}06528         \textcolor{keyword}{inline} \textcolor{keyword}{auto} invoke\_deoptimized(Fn\&\& fn, Args\&\&... args) -\/> \textcolor{keyword}{typename} std::enable\_if<!std::is\_same<void, \textcolor{keyword}{decltype}(fn(args...))>\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{::value}}>::type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06529}06529             deoptimize\_value(std::forward<Fn>(fn) (std::forward<Args...>(args...)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06530}06530         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06531}06531 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06532}06532         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fn, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06533}06533         \textcolor{keyword}{inline} \textcolor{keyword}{auto} invoke\_deoptimized(Fn\&\& fn, Args\&\&... args) -\/> \textcolor{keyword}{typename} std::enable\_if<std::is\_same<void, \textcolor{keyword}{decltype}(fn(args...))>\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{::value}}>::type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06534}06534             std::forward<Fn>(fn) (std::forward<Args...>(args...));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06535}06535         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06536}06536     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06537}06537 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06538}06538 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06539}06539 \textcolor{comment}{// end catch\_optimizer.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06540}06540 \textcolor{comment}{// start catch\_complete\_invoke.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06541}06541 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06542}06542 \textcolor{comment}{// Invoke with a special case for void}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06543}06543 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06544}06544 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06545}06545 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06546}06546 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06547}06547 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06548}06548 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06549}06549     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06550}06550         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06551}06551             \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06552}06552             \textcolor{keyword}{struct }CompleteType \{ \textcolor{keyword}{using }type = T; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06553}06553             \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06554}06554             \textcolor{keyword}{struct }CompleteType<void> \{ \textcolor{keyword}{struct }type \{\}; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06555}06555 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06556}06556             \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06557}06557             \textcolor{keyword}{using }CompleteType\_t = \textcolor{keyword}{typename} CompleteType<T>::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06558}06558 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06559}06559             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Result>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06560}06560             \textcolor{keyword}{struct }CompleteInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06561}06561                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06562}06562                 \textcolor{keyword}{static} Result \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}(Fun\&\& fun, Args\&\&... args) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06563}06563                     \textcolor{keywordflow}{return} std::forward<Fun>(fun)(std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06564}06564                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06565}06565             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06566}06566             \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06567}06567             \textcolor{keyword}{struct }CompleteInvoker<void> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06568}06568                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06569}06569                 \textcolor{keyword}{static} CompleteType\_t<void> \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}(Fun\&\& fun, Args\&\&... args) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06570}06570                     std::forward<Fun>(fun)(std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06571}06571                     \textcolor{keywordflow}{return} \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06572}06572                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06573}06573             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06574}06574 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06575}06575             \textcolor{comment}{// invoke and not return void :(}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06576}06576             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06577}06577             CompleteType\_t<\mbox{\hyperlink{namespace_catch_a3051165b0eea6023939f0f8a71ecf03f}{FunctionReturnType}}<Fun, Args...>> complete\_invoke(Fun\&\& fun, Args\&\&... args) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06578}06578                 \textcolor{keywordflow}{return} CompleteInvoker<\mbox{\hyperlink{namespace_catch_a3051165b0eea6023939f0f8a71ecf03f}{FunctionReturnType}}<Fun, Args...>>\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{::invoke}}(std::forward<Fun>(fun), std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06579}06579             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06580}06580 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06581}06581             \textcolor{keyword}{const} std::string benchmarkErrorMsg = \textcolor{stringliteral}{"{}a benchmark failed to run successfully"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06582}06582         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06583}06583 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06584}06584         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06585}06585         Detail::CompleteType\_t<FunctionReturnType<Fun>> user\_code(Fun\&\& fun) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06586}06586             \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06587}06587                 \textcolor{keywordflow}{return} Detail::complete\_invoke(std::forward<Fun>(fun));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06588}06588             \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06589}06589                 \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().benchmarkFailed(\mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06590}06590                 \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(Detail::benchmarkErrorMsg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06591}06591             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06592}06592         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06593}06593     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06594}06594 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06595}06595 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06596}06596 \textcolor{comment}{// end catch\_complete\_invoke.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06597}06597 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06598}06598     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06599}06599         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06600}06600             \textcolor{keyword}{struct }ChronometerConcept \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06601}06601                 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} start() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06602}06602                 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} finish() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06603}06603                 \textcolor{keyword}{virtual} \string~ChronometerConcept() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06604}06604             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06605}06605             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06606}06606             \textcolor{keyword}{struct }ChronometerModel final : \textcolor{keyword}{public} ChronometerConcept \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06607}06607                 \textcolor{keywordtype}{void} start()\textcolor{keyword}{ override }\{ started = Clock::now(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06608}06608                 \textcolor{keywordtype}{void} finish()\textcolor{keyword}{ override }\{ finished = Clock::now(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06609}06609 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06610}06610                 ClockDuration<Clock> elapsed()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} finished -\/ started; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06611}06611 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06612}06612                 TimePoint<Clock> started;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06613}06613                 TimePoint<Clock> finished;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06614}06614             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06615}06615         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06616}06616 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06617}06617         \textcolor{keyword}{struct }Chronometer \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06618}06618         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06619}06619             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06620}06620             \textcolor{keywordtype}{void} measure(Fun\&\& fun) \{ measure(std::forward<Fun>(fun), is\_callable<Fun(\textcolor{keywordtype}{int})>()); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06621}06621 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06622}06622             \textcolor{keywordtype}{int} runs()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} \mbox{\hyperlink{structk}{k}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06623}06623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06624}06624             Chronometer(Detail::ChronometerConcept\& meter, \textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06625}06625                 : impl(\&meter)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06626}06626                 , \mbox{\hyperlink{structk}{k}}(\mbox{\hyperlink{structk}{k}}) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06627}06627 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06628}06628         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06629}06629             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06630}06630             \textcolor{keywordtype}{void} measure(Fun\&\& fun, std::false\_type) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06631}06631                 measure([\&fun](\textcolor{keywordtype}{int}) \{ \textcolor{keywordflow}{return} fun(); \}, std::true\_type());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06632}06632             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06633}06633 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06634}06634             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06635}06635             \textcolor{keywordtype}{void} measure(Fun\&\& fun, std::true\_type) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06636}06636                 Detail::optimizer\_barrier();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06637}06637                 impl-\/>start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06638}06638                 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < \mbox{\hyperlink{structk}{k}}; ++i) invoke\_deoptimized(fun, i);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06639}06639                 impl-\/>finish();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06640}06640                 Detail::optimizer\_barrier();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06641}06641             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06642}06642 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06643}06643             Detail::ChronometerConcept* impl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06644}06644             \textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06645}06645         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06646}06646     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06647}06647 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06648}06648 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06649}06649 \textcolor{comment}{// end catch\_chronometer.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06650}06650 \textcolor{comment}{// start catch\_environment.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06651}06651 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06652}06652 \textcolor{comment}{// Environment information}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06653}06653 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06654}06654 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06655}06655 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06656}06656     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06657}06657         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06658}06658         \textcolor{keyword}{struct }EnvironmentEstimate \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06659}06659             Duration mean;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06660}06660             OutlierClassification outliers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06661}06661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06662}06662             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06663}06663             \textcolor{keyword}{operator} EnvironmentEstimate<Duration2>()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06664}06664                 \textcolor{keywordflow}{return} \{ mean, outliers \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06665}06665             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06666}06666         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06667}06667         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06668}06668         \textcolor{keyword}{struct }Environment \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06669}06669             \textcolor{keyword}{using }clock\_type = Clock;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06670}06670             EnvironmentEstimate<FloatDuration<Clock>> clock\_resolution;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06671}06671             EnvironmentEstimate<FloatDuration<Clock>> clock\_cost;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06672}06672         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06673}06673     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06674}06674 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06675}06675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06676}06676 \textcolor{comment}{// end catch\_environment.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06677}06677 \textcolor{comment}{// start catch\_execution\_plan.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06678}06678 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06679}06679  \textcolor{comment}{// Execution plan}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06680}06680 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06681}06681 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06682}06682 \textcolor{comment}{// start catch\_benchmark\_function.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06683}06683 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06684}06684  \textcolor{comment}{// Dumb std::function implementation for consistent call overhead}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06685}06685 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06686}06686 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06687}06687 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06688}06688 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06689}06689 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06690}06690 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06691}06691 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06692}06692 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06693}06693     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06694}06694         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06695}06695             \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06696}06696             \textcolor{keyword}{using }Decay = \textcolor{keyword}{typename} std::decay<T>::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06697}06697             \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06698}06698             \textcolor{keyword}{struct }is\_related}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06699}06699                 : std::is\_same<Decay<T>, Decay<U>> \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06700}06700 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06708}06708             \textcolor{keyword}{struct }BenchmarkFunction \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06709}06709             \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06710}06710                 \textcolor{keyword}{struct }callable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06711}06711                     \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} call(Chronometer meter) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06712}06712                     \textcolor{keyword}{virtual} callable* clone() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06713}06713                     \textcolor{keyword}{virtual} \string~callable() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06714}06714                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06715}06715                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06716}06716                 \textcolor{keyword}{struct }model : \textcolor{keyword}{public} callable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06717}06717                     model(Fun\&\& fun) : fun(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(fun)) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06718}06718                     model(Fun \textcolor{keyword}{const}\& fun) : fun(fun) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06719}06719 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06720}06720                     model<Fun>* clone()\textcolor{keyword}{ const override }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{new} model<Fun>(*\textcolor{keyword}{this}); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06721}06721 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06722}06722                     \textcolor{keywordtype}{void} call(Chronometer meter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06723}06723                         call(meter, is\_callable<Fun(Chronometer)>());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06724}06724                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06725}06725                     \textcolor{keywordtype}{void} call(Chronometer meter, std::true\_type)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06726}06726                         fun(meter);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06727}06727                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06728}06728                     \textcolor{keywordtype}{void} call(Chronometer meter, std::false\_type)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06729}06729                         meter.measure(fun);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06730}06730                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06731}06731 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06732}06732                     Fun fun;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06733}06733                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06734}06734 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06735}06735                 \textcolor{keyword}{struct }do\_nothing \{ \textcolor{keywordtype}{void} operator()()\textcolor{keyword}{ const }\{\} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06736}06736 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06737}06737                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06738}06738                 BenchmarkFunction(model<T>* c) : f(c) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06739}06739 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06740}06740             \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06741}06741                 BenchmarkFunction()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06742}06742                     : f(new model<do\_nothing>\{ \{\} \}) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06743}06743 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06744}06744                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06745}06745                     \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<!is\_related<Fun, BenchmarkFunction>::value}}, \textcolor{keywordtype}{int}>::type = 0>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06746}06746                     BenchmarkFunction(Fun\&\& fun)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06747}06747                     : f(new model<typename \mbox{\hyperlink{namespacestd}{std}}::decay<Fun>::type>(\mbox{\hyperlink{namespacestd}{std}}::forward<Fun>(fun))) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06748}06748 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06749}06749                 BenchmarkFunction(BenchmarkFunction\&\& that)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06750}06750                     : f(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(that.f)) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06751}06751 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06752}06752                 BenchmarkFunction(BenchmarkFunction \textcolor{keyword}{const}\& that)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06753}06753                     : f(that.f-\/>clone()) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06754}06754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06755}06755                 BenchmarkFunction\& operator=(BenchmarkFunction\&\& that) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06756}06756                     f = std::move(that.f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06757}06757                     \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06758}06758                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06759}06759 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06760}06760                 BenchmarkFunction\& operator=(BenchmarkFunction \textcolor{keyword}{const}\& that) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06761}06761                     f.reset(that.f-\/>clone());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06762}06762                     \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06763}06763                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06764}06764 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06765}06765                 \textcolor{keywordtype}{void} operator()(Chronometer meter)\textcolor{keyword}{ const }\{ f-\/>call(meter); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06766}06766 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06767}06767             \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06768}06768                 std::unique\_ptr<callable> f;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06769}06769             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06770}06770         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06771}06771     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06772}06772 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06773}06773 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06774}06774 \textcolor{comment}{// end catch\_benchmark\_function.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06775}06775 \textcolor{comment}{// start catch\_repeat.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06776}06776 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06777}06777 \textcolor{comment}{// repeat algorithm}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06778}06778 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06779}06779 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06780}06780 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06781}06781 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06782}06782 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06783}06783 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06784}06784     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06785}06785         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06786}06786             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06787}06787             \textcolor{keyword}{struct }repeater \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06788}06788                 \textcolor{keywordtype}{void} operator()(\textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}})\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06789}06789                     \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < \mbox{\hyperlink{structk}{k}}; ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06790}06790                         fun();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06791}06791                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06792}06792                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06793}06793                 Fun fun;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06794}06794             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06795}06795             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06796}06796             repeater<typename std::decay<Fun>::type> \mbox{\hyperlink{namespace_catch_1_1_generators_a510cc0d72a7bab8f967827e695b981ba}{repeat}}(Fun\&\& fun) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06797}06797                 \textcolor{keywordflow}{return} \{ std::forward<Fun>(fun) \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06798}06798             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06799}06799         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06800}06800     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06801}06801 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06802}06802 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06803}06803 \textcolor{comment}{// end catch\_repeat.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06804}06804 \textcolor{comment}{// start catch\_run\_for\_at\_least.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06805}06805 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06806}06806 \textcolor{comment}{// Run a function for a minimum amount of time}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06807}06807 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06808}06808 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06809}06809 \textcolor{comment}{// start catch\_measure.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06810}06810 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06811}06811 \textcolor{comment}{// Measure}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06812}06812 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06813}06813 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06814}06814 \textcolor{comment}{// start catch\_timing.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06815}06815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06816}06816 \textcolor{comment}{// Timing}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06817}06817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06818}06818 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06819}06819 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06820}06820 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06821}06821 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06822}06822 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06823}06823     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06824}06824         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration, \textcolor{keyword}{typename} Result>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06825}06825         \textcolor{keyword}{struct }Timing \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06826}06826             Duration elapsed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06827}06827             Result result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06828}06828             \textcolor{keywordtype}{int} iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06829}06829         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06830}06830         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Func, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06831}06831         \textcolor{keyword}{using }TimingOf = Timing<ClockDuration<Clock>, Detail::CompleteType\_t<\mbox{\hyperlink{namespace_catch_a3051165b0eea6023939f0f8a71ecf03f}{FunctionReturnType}}<Func, Args...>>>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06832}06832     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06833}06833 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06834}06834 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06835}06835 \textcolor{comment}{// end catch\_timing.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06836}06836 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06837}06837 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06838}06838 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06839}06839     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06840}06840         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06841}06841             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Fun, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06842}06842             TimingOf<Clock, Fun, Args...> measure(Fun\&\& fun, Args\&\&... args) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06843}06843                 \textcolor{keyword}{auto} start = Clock::now();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06844}06844                 \textcolor{keyword}{auto}\&\& r = Detail::complete\_invoke(fun, std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06845}06845                 \textcolor{keyword}{auto} end = Clock::now();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06846}06846                 \textcolor{keyword}{auto} delta = end -\/ start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06847}06847                 \textcolor{keywordflow}{return} \{ delta, std::forward<decltype(r)>(r), 1 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06848}06848             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06849}06849         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06850}06850     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06851}06851 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06852}06852 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06853}06853 \textcolor{comment}{// end catch\_measure.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06854}06854 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06855}06855 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06856}06856 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06857}06857 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06858}06858     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06859}06859         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06860}06860             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06861}06861             TimingOf<Clock, Fun, int> measure\_one(Fun\&\& fun, \textcolor{keywordtype}{int} iters, std::false\_type) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06862}06862                 \textcolor{keywordflow}{return} Detail::measure<Clock>(fun, iters);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06863}06863             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06864}06864             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06865}06865             TimingOf<Clock, Fun, Chronometer> measure\_one(Fun\&\& fun, \textcolor{keywordtype}{int} iters, std::true\_type) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06866}06866                 Detail::ChronometerModel<Clock> meter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06867}06867                 \textcolor{keyword}{auto}\&\& result = Detail::complete\_invoke(fun, Chronometer(meter, iters));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06868}06868 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06869}06869                 \textcolor{keywordflow}{return} \{ meter.elapsed(), std::move(result), iters \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06870}06870             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06871}06871 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06872}06872             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06873}06873             \textcolor{keyword}{using }run\_for\_at\_least\_argument\_t = \textcolor{keyword}{typename} std::conditional<is\_callable<Fun(Chronometer)>\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{::value}}, Chronometer, \textcolor{keywordtype}{int}>::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06874}06874 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06875}06875             \textcolor{keyword}{struct }optimized\_away\_error : std::exception \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06876}06876                 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* what() const noexcept\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06877}06877                     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}could not measure benchmark, maybe it was optimized away"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06878}06878                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06879}06879             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06880}06880 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06881}06881             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock, \textcolor{keyword}{typename} Fun>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06882}06882             TimingOf<Clock, Fun, run\_for\_at\_least\_argument\_t<Clock, Fun>> run\_for\_at\_least(ClockDuration<Clock> how\_long, \textcolor{keywordtype}{int} seed, Fun\&\& fun) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06883}06883                 \textcolor{keyword}{auto} iters = seed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06884}06884                 \textcolor{keywordflow}{while} (iters < (1 << 30)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06885}06885                     \textcolor{keyword}{auto}\&\& Timing = measure\_one<Clock>(fun, iters, is\_callable<Fun(Chronometer)>());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06886}06886 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06887}06887                     \textcolor{keywordflow}{if} (Timing.elapsed >= how\_long) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06888}06888                         \textcolor{keywordflow}{return} \{ Timing.elapsed, std::move(Timing.result), iters \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06889}06889                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06890}06890                     iters *= 2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06891}06891                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06892}06892                 \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{Catch::throw\_exception}}(optimized\_away\_error\{\});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06893}06893             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06894}06894         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06895}06895     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06896}06896 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06897}06897 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06898}06898 \textcolor{comment}{// end catch\_run\_for\_at\_least.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06899}06899 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06900}06900 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06901}06901 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06902}06902 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06903}06903     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06904}06904         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06905}06905         \textcolor{keyword}{struct }ExecutionPlan \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06906}06906             \textcolor{keywordtype}{int} iterations\_per\_sample;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06907}06907             Duration estimated\_duration;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06908}06908             Detail::BenchmarkFunction benchmark;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06909}06909             Duration warmup\_time;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06910}06910             \textcolor{keywordtype}{int} warmup\_iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06911}06911 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06912}06912             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06913}06913             \textcolor{keyword}{operator} ExecutionPlan<Duration2>()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06914}06914                 \textcolor{keywordflow}{return} \{ iterations\_per\_sample, estimated\_duration, benchmark, warmup\_time, warmup\_iterations \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06915}06915             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06916}06916 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06917}06917             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06918}06918             std::vector<FloatDuration<Clock>> run(\textcolor{keyword}{const} IConfig \&cfg, Environment<FloatDuration<Clock>> env)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06919}06919                 \textcolor{comment}{// warmup a bit}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06920}06920                 Detail::run\_for\_at\_least<Clock>(std::chrono::duration\_cast<ClockDuration<Clock>>(warmup\_time), warmup\_iterations, \mbox{\hyperlink{namespace_catch_1_1_generators_a510cc0d72a7bab8f967827e695b981ba}{Detail::repeat}}(now<Clock>\{\}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06921}06921 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06922}06922                 std::vector<FloatDuration<Clock>> times;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06923}06923                 times.reserve(cfg.benchmarkSamples());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06924}06924                 \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(times), cfg.benchmarkSamples(), [\textcolor{keyword}{this}, env] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06925}06925                     Detail::ChronometerModel<Clock> model;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06926}06926                     this-\/>benchmark(Chronometer(model, iterations\_per\_sample));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06927}06927                     auto sample\_time = model.elapsed() -\/ env.clock\_cost.mean;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06928}06928                     if (sample\_time < FloatDuration<Clock>::zero()) sample\_time = FloatDuration<Clock>::zero();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06929}06929                     return sample\_time / iterations\_per\_sample;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06930}06930                 \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06931}06931                 \textcolor{keywordflow}{return} times;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06932}06932             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06933}06933         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06934}06934     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06935}06935 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06936}06936 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06937}06937 \textcolor{comment}{// end catch\_execution\_plan.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06938}06938 \textcolor{comment}{// start catch\_estimate\_clock.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06939}06939 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06940}06940  \textcolor{comment}{// Environment measurement}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06941}06941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06942}06942 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06943}06943 \textcolor{comment}{// start catch\_stats.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06944}06944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06945}06945 \textcolor{comment}{// Statistical analysis tools}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06946}06946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06947}06947 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06948}06948 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06949}06949 \textcolor{preprocessor}{\#include <functional>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06950}06950 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06951}06951 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06952}06952 \textcolor{preprocessor}{\#include <numeric>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06953}06953 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06954}06954 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06955}06955 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06956}06956 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06957}06957 \textcolor{preprocessor}{\#include <random>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06958}06958 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06959}06959 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06960}06960     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06961}06961         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06962}06962             \textcolor{keyword}{using }sample = std::vector<double>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06963}06963 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06964}06964             \textcolor{keywordtype}{double} weighted\_average\_quantile(\textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}}, \textcolor{keywordtype}{int} q, std::vector<double>::iterator first, std::vector<double>::iterator last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06965}06965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06966}06966             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Iterator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06967}06967             OutlierClassification classify\_outliers(Iterator first, Iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06968}06968                 std::vector<double> \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(first, last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06969}06969 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06970}06970                 \textcolor{keyword}{auto} q1 = weighted\_average\_quantile(1, 4, \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.begin(), \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06971}06971                 \textcolor{keyword}{auto} q3 = weighted\_average\_quantile(3, 4, \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.begin(), \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06972}06972                 \textcolor{keyword}{auto} iqr = q3 -\/ q1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06973}06973                 \textcolor{keyword}{auto} los = q1 -\/ (iqr * 3.);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06974}06974                 \textcolor{keyword}{auto} lom = q1 -\/ (iqr * 1.5);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06975}06975                 \textcolor{keyword}{auto} him = q3 + (iqr * 1.5);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06976}06976                 \textcolor{keyword}{auto} his = q3 + (iqr * 3.);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06977}06977 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06978}06978                 OutlierClassification o;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06979}06979                 \textcolor{keywordflow}{for} (; first != last; ++first) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06980}06980                     \textcolor{keyword}{auto}\&\& t = *first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06981}06981                     \textcolor{keywordflow}{if} (t < los) ++o.low\_severe;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06982}06982                     \textcolor{keywordflow}{else} if (t < lom) ++o.low\_mild;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06983}06983                     \textcolor{keywordflow}{else} if (t > his) ++o.high\_severe;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06984}06984                     \textcolor{keywordflow}{else} if (t > him) ++o.high\_mild;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06985}06985                     ++o.samples\_seen;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06986}06986                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06987}06987                 \textcolor{keywordflow}{return} o;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06988}06988             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06989}06989 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06990}06990             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Iterator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06991}06991             \textcolor{keywordtype}{double} mean(Iterator first, Iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06992}06992                 \textcolor{keyword}{auto} count = last -\/ first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06993}06993                 \textcolor{keywordtype}{double} \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} = \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{std::accumulate}}(first, last, 0.);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06994}06994                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} / count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06995}06995             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06996}06996 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06997}06997             \textcolor{keyword}{template} <\textcolor{keyword}{typename} URng, \textcolor{keyword}{typename} Iterator, \textcolor{keyword}{typename} Estimator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06998}06998             sample resample(URng\& \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}, \textcolor{keywordtype}{int} resamples, Iterator first, Iterator last, Estimator\& estimator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l06999}06999                 \textcolor{keyword}{auto} n = last -\/ first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07000}07000                 std::uniform\_int\_distribution<\textcolor{keyword}{decltype}(n)> dist(0, n -\/ 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07001}07001 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07002}07002                 sample out;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07003}07003                 out.reserve(resamples);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07004}07004                 \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(out), resamples, [n, first, \&estimator, \&dist, \&\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07005}07005                     std::vector<double> resampled;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07006}07006                     resampled.reserve(n);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07007}07007                     \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(resampled), n, [first, \&dist, \&\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}] \{ \textcolor{keywordflow}{return} first[dist(rng)]; \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07008}07008                     \textcolor{keywordflow}{return} estimator(resampled.begin(), resampled.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07009}07009                 \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07010}07010                 \mbox{\hyperlink{namespacekblib_1_1detail__sort_a3b873e1b1c2c3a4865638d2c904c4c1d}{std::sort}}(out.begin(), out.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07011}07011                 \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07012}07012             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07013}07013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07014}07014             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Estimator, \textcolor{keyword}{typename} Iterator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07015}07015             sample jackknife(Estimator\&\& estimator, Iterator first, Iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07016}07016                 \textcolor{keyword}{auto} n = last -\/ first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07017}07017                 \textcolor{keyword}{auto} second = std::next(first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07018}07018                 sample results;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07019}07019                 results.reserve(n);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07020}07020 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07021}07021                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} it = first; it != last; ++it) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07022}07022                     std::iter\_swap(it, first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07023}07023                     results.push\_back(estimator(second, last));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07024}07024                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07025}07025 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07026}07026                 \textcolor{keywordflow}{return} results;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07027}07027             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07028}07028 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07029}07029             \textcolor{keyword}{inline} \textcolor{keywordtype}{double} normal\_cdf(\textcolor{keywordtype}{double} x) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07030}07030                 \textcolor{keywordflow}{return} std::erfc(-\/x / std::sqrt(2.0)) / 2.0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07031}07031             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07032}07032 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07033}07033             \textcolor{keywordtype}{double} erfc\_inv(\textcolor{keywordtype}{double} x);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07034}07034 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07035}07035             \textcolor{keywordtype}{double} normal\_quantile(\textcolor{keywordtype}{double} p);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07036}07036 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07037}07037             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Iterator, \textcolor{keyword}{typename} Estimator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07038}07038             Estimate<double> bootstrap(\textcolor{keywordtype}{double} confidence\_level, Iterator first, Iterator last, sample \textcolor{keyword}{const}\& resample, Estimator\&\& estimator) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07039}07039                 \textcolor{keyword}{auto} n\_samples = last -\/ first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07040}07040 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07041}07041                 \textcolor{keywordtype}{double} point = estimator(first, last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07042}07042                 \textcolor{comment}{// Degenerate case with a single sample}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07043}07043                 \textcolor{keywordflow}{if} (n\_samples == 1) \textcolor{keywordflow}{return} \{ point, point, point, confidence\_level \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07044}07044 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07045}07045                 sample jack = jackknife(estimator, first, last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07046}07046                 \textcolor{keywordtype}{double} jack\_mean = mean(jack.begin(), jack.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07047}07047                 \textcolor{keywordtype}{double} sum\_squares, sum\_cubes;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07048}07048                 std::tie(sum\_squares, sum\_cubes) = \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{std::accumulate}}(jack.begin(), jack.end(), std::make\_pair(0., 0.), [jack\_mean](std::pair<double, double> sqcb, \textcolor{keywordtype}{double} x) -\/> std::pair<double, double> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07049}07049                     auto d = jack\_mean -\/ x;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07050}07050                     auto d2 = d * d;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07051}07051                     auto d3 = d2 * d;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07052}07052                     return \{ sqcb.first + d2, sqcb.second + d3 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07053}07053                 \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07054}07054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07055}07055                 \textcolor{keywordtype}{double} accel = sum\_cubes / (6 * std::pow(sum\_squares, 1.5));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07056}07056                 \textcolor{keywordtype}{int} n = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(resample.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07057}07057                 \textcolor{keywordtype}{double} prob\_n = std::count\_if(resample.begin(), resample.end(), [point](\textcolor{keywordtype}{double} x) \{ return x < point; \}) / (double)n;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07058}07058                 \textcolor{comment}{// degenerate case with uniform samples}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07059}07059                 \textcolor{keywordflow}{if} (prob\_n == 0) \textcolor{keywordflow}{return} \{ point, point, point, confidence\_level \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07060}07060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07061}07061                 \textcolor{keywordtype}{double} bias = normal\_quantile(prob\_n);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07062}07062                 \textcolor{keywordtype}{double} z1 = normal\_quantile((1. -\/ confidence\_level) / 2.);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07063}07063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07064}07064                 \textcolor{keyword}{auto} cumn = [n](\textcolor{keywordtype}{double} x) -\/> \textcolor{keywordtype}{int} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07065}07065                     \textcolor{keywordflow}{return} std::lround(normal\_cdf(x) * n); \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07066}07066                 \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} = [bias, accel](\textcolor{keywordtype}{double} b) \{ \textcolor{keywordflow}{return} bias + b / (1. -\/ accel * b); \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07067}07067                 \textcolor{keywordtype}{double} b1 = bias + z1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07068}07068                 \textcolor{keywordtype}{double} b2 = bias -\/ z1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07069}07069                 \textcolor{keywordtype}{double} a1 = \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}(b1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07070}07070                 \textcolor{keywordtype}{double} a2 = \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}(b2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07071}07071                 \textcolor{keyword}{auto} lo = (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}})(cumn(a1), 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07072}07072                 \textcolor{keyword}{auto} hi = (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(cumn(a2), n -\/ 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07073}07073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07074}07074                 \textcolor{keywordflow}{return} \{ point, resample[lo], resample[hi], confidence\_level \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07075}07075             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07076}07076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07077}07077             \textcolor{keywordtype}{double} outlier\_variance(Estimate<double> mean, Estimate<double> stddev, \textcolor{keywordtype}{int} n);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07078}07078 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07079}07079             \textcolor{keyword}{struct }bootstrap\_analysis \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07080}07080                 Estimate<double> mean;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07081}07081                 Estimate<double> standard\_deviation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07082}07082                 \textcolor{keywordtype}{double} outlier\_variance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07083}07083             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07084}07084 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07085}07085             bootstrap\_analysis analyse\_samples(\textcolor{keywordtype}{double} confidence\_level, \textcolor{keywordtype}{int} n\_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07086}07086         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07087}07087     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07088}07088 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07089}07089 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07090}07090 \textcolor{comment}{// end catch\_stats.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07091}07091 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07092}07092 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07093}07093 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07094}07094 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07095}07095 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07096}07096 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07097}07097 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07098}07098     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07099}07099         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07100}07100             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07101}07101             std::vector<double> resolution(\textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07102}07102                 std::vector<TimePoint<Clock>> times;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07103}07103                 times.reserve(\mbox{\hyperlink{structk}{k}} + 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07104}07104                 \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(times), \mbox{\hyperlink{structk}{k}} + 1, now<Clock>\{\});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07105}07105 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07106}07106                 std::vector<double> deltas;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07107}07107                 deltas.reserve(\mbox{\hyperlink{structk}{k}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07108}07108                 \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(std::next(times.begin()), times.end(), times.begin(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07109}07109                     std::back\_inserter(deltas),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07110}07110                     [](TimePoint<Clock> \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, TimePoint<Clock> b) \{ return static\_cast<double>((a -\/ b).count()); \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07111}07111 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07112}07112                 \textcolor{keywordflow}{return} deltas;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07113}07113             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07114}07114 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07115}07115             \textcolor{keyword}{const} \textcolor{keyword}{auto} warmup\_iterations = 10000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07116}07116             \textcolor{keyword}{const} \textcolor{keyword}{auto} warmup\_time = std::chrono::milliseconds(100);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07117}07117             \textcolor{keyword}{const} \textcolor{keyword}{auto} minimum\_ticks = 1000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07118}07118             \textcolor{keyword}{const} \textcolor{keyword}{auto} warmup\_seed = 10000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07119}07119             \textcolor{keyword}{const} \textcolor{keyword}{auto} clock\_resolution\_estimation\_time = std::chrono::milliseconds(500);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07120}07120             \textcolor{keyword}{const} \textcolor{keyword}{auto} clock\_cost\_estimation\_time\_limit = std::chrono::seconds(1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07121}07121             \textcolor{keyword}{const} \textcolor{keyword}{auto} clock\_cost\_estimation\_tick\_limit = 100000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07122}07122             \textcolor{keyword}{const} \textcolor{keyword}{auto} clock\_cost\_estimation\_time = std::chrono::milliseconds(10);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07123}07123             \textcolor{keyword}{const} \textcolor{keyword}{auto} clock\_cost\_estimation\_iterations = 10000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07124}07124 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07125}07125             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07126}07126             \textcolor{keywordtype}{int} warmup() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07127}07127                 \textcolor{keywordflow}{return} run\_for\_at\_least<Clock>(std::chrono::duration\_cast<ClockDuration<Clock>>(warmup\_time), warmup\_seed, \&resolution<Clock>)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07128}07128                     .iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07129}07129             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07130}07130             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07131}07131             EnvironmentEstimate<FloatDuration<Clock>> estimate\_clock\_resolution(\textcolor{keywordtype}{int} iterations) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07132}07132                 \textcolor{keyword}{auto} r = run\_for\_at\_least<Clock>(std::chrono::duration\_cast<ClockDuration<Clock>>(clock\_resolution\_estimation\_time), iterations, \&resolution<Clock>)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07133}07133                     .result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07134}07134                 \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07135}07135                     FloatDuration<Clock>(mean(r.begin(), r.end())),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07136}07136                     classify\_outliers(r.begin(), r.end()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07137}07137                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07138}07138             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07139}07139             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07140}07140             EnvironmentEstimate<FloatDuration<Clock>> estimate\_clock\_cost(FloatDuration<Clock> resolution) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07141}07141                 \textcolor{keyword}{auto} time\_limit = (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07142}07142                     resolution * clock\_cost\_estimation\_tick\_limit,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07143}07143                     FloatDuration<Clock>(clock\_cost\_estimation\_time\_limit));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07144}07144                 \textcolor{keyword}{auto} time\_clock = [](\textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07145}07145                     \textcolor{keywordflow}{return} Detail::measure<Clock>([\mbox{\hyperlink{structk}{k}}] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07146}07146                         \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < \mbox{\hyperlink{structk}{k}}; ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07147}07147                             \textcolor{keyword}{volatile} \textcolor{keyword}{auto} ignored = Clock::now();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07148}07148                             (void)ignored;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07149}07149                         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07150}07150                     \}).elapsed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07151}07151                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07152}07152                 time\_clock(1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07153}07153                 \textcolor{keywordtype}{int} iters = clock\_cost\_estimation\_iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07154}07154                 \textcolor{keyword}{auto}\&\& r = run\_for\_at\_least<Clock>(std::chrono::duration\_cast<ClockDuration<Clock>>(clock\_cost\_estimation\_time), iters, time\_clock);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07155}07155                 std::vector<double> times;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07156}07156                 \textcolor{keywordtype}{int} nsamples = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(std::ceil(time\_limit / r.elapsed));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07157}07157                 times.reserve(nsamples);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07158}07158                 \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(times), nsamples, [time\_clock, \&r] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07159}07159                     \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}((time\_clock(r.iterations) / r.iterations).count());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07160}07160                 \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07161}07161                 \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07162}07162                     FloatDuration<Clock>(mean(times.begin(), times.end())),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07163}07163                     classify\_outliers(times.begin(), times.end()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07164}07164                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07165}07165             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07166}07166 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07167}07167             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07168}07168             Environment<FloatDuration<Clock>> measure\_environment() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07169}07169                 \textcolor{keyword}{static} Environment<FloatDuration<Clock>>* env = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07170}07170                 \textcolor{keywordflow}{if} (env) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07171}07171                     \textcolor{keywordflow}{return} *env;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07172}07172                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07173}07173 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07174}07174                 \textcolor{keyword}{auto} iters = Detail::warmup<Clock>();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07175}07175                 \textcolor{keyword}{auto} resolution = Detail::estimate\_clock\_resolution<Clock>(iters);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07176}07176                 \textcolor{keyword}{auto} cost = Detail::estimate\_clock\_cost<Clock>(resolution.mean);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07177}07177 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07178}07178                 env = \textcolor{keyword}{new} Environment<FloatDuration<Clock>>\{ resolution, cost \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07179}07179                 \textcolor{keywordflow}{return} *env;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07180}07180             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07181}07181         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07182}07182     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07183}07183 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07184}07184 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07185}07185 \textcolor{comment}{// end catch\_estimate\_clock.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07186}07186 \textcolor{comment}{// start catch\_analyse.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07187}07187 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07188}07188  \textcolor{comment}{// Run and analyse one benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07189}07189 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07190}07190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07191}07191 \textcolor{comment}{// start catch\_sample\_analysis.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07192}07192 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07193}07193 \textcolor{comment}{// Benchmark results}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07194}07194 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07195}07195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07196}07196 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07197}07197 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07198}07198 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07199}07199 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07200}07200 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07201}07201 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07202}07202     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07203}07203         \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07204}07204         \textcolor{keyword}{struct }SampleAnalysis \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07205}07205             std::vector<Duration> samples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07206}07206             Estimate<Duration> mean;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07207}07207             Estimate<Duration> standard\_deviation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07208}07208             OutlierClassification outliers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07209}07209             \textcolor{keywordtype}{double} outlier\_variance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07210}07210 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07211}07211             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration2>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07212}07212             \textcolor{keyword}{operator} SampleAnalysis<Duration2>()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07213}07213                 std::vector<Duration2> samples2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07214}07214                 samples2.reserve(samples.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07215}07215                 \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(samples.begin(), samples.end(), std::back\_inserter(samples2), [](Duration d) \{ return Duration2(d); \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07216}07216                 \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07217}07217                     std::move(samples2),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07218}07218                     mean,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07219}07219                     standard\_deviation,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07220}07220                     outliers,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07221}07221                     outlier\_variance,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07222}07222                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07223}07223             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07224}07224         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07225}07225     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07226}07226 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07227}07227 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07228}07228 \textcolor{comment}{// end catch\_sample\_analysis.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07229}07229 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07230}07230 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07231}07231 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07232}07232 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07233}07233 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07234}07234     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07235}07235         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07236}07236             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Duration, \textcolor{keyword}{typename} Iterator>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07237}07237             SampleAnalysis<Duration> analyse(\textcolor{keyword}{const} IConfig \&cfg, Environment<Duration>, Iterator first, Iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07238}07238                 \textcolor{keywordflow}{if} (!cfg.benchmarkNoAnalysis()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07239}07239                     std::vector<double> samples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07240}07240                     samples.reserve(last -\/ first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07241}07241                     \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, std::back\_inserter(samples), [](Duration d) \{ \textcolor{keywordflow}{return} d.count(); \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07242}07242 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07243}07243                     \textcolor{keyword}{auto} analysis = Catch::Benchmark::Detail::analyse\_samples(cfg.benchmarkConfidenceInterval(), cfg.benchmarkResamples(), samples.begin(), samples.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07244}07244                     \textcolor{keyword}{auto} outliers = Catch::Benchmark::Detail::classify\_outliers(samples.begin(), samples.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07245}07245 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07246}07246                     \textcolor{keyword}{auto} wrap\_estimate = [](Estimate<double> \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07247}07247                         \textcolor{keywordflow}{return} Estimate<Duration> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07248}07248                             Duration(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.point),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07249}07249                                 Duration(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.lower\_bound),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07250}07250                                 Duration(\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.upper\_bound),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07251}07251                                 \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.confidence\_interval,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07252}07252                         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07253}07253                     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07254}07254                     std::vector<Duration> samples2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07255}07255                     samples2.reserve(samples.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07256}07256                     \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(samples.begin(), samples.end(), std::back\_inserter(samples2), [](\textcolor{keywordtype}{double} d) \{ return Duration(d); \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07257}07257                     \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07258}07258                         std::move(samples2),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07259}07259                         wrap\_estimate(analysis.mean),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07260}07260                         wrap\_estimate(analysis.standard\_deviation),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07261}07261                         outliers,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07262}07262                         analysis.outlier\_variance,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07263}07263                     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07264}07264                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07265}07265                     std::vector<Duration> samples;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07266}07266                     samples.reserve(last -\/ first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07267}07267 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07268}07268                     Duration mean = Duration(0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07269}07269                     \textcolor{keywordtype}{int} i = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07270}07270                     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} it = first; it < last; ++it, ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07271}07271                         samples.push\_back(Duration(*it));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07272}07272                         mean += Duration(*it);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07273}07273                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07274}07274                     mean /= i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07275}07275 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07276}07276                     \textcolor{keywordflow}{return} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07277}07277                         std::move(samples),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07278}07278                         Estimate<Duration>\{mean, mean, mean, 0.0\},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07279}07279                         Estimate<Duration>\{Duration(0), Duration(0), Duration(0), 0.0\},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07280}07280                         OutlierClassification\{\},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07281}07281                         0.0}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07282}07282                     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07283}07283                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07284}07284             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07285}07285         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07286}07286     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07287}07287 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07288}07288 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07289}07289 \textcolor{comment}{// end catch\_analyse.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07290}07290 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07291}07291 \textcolor{preprocessor}{\#include <functional>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07292}07292 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07293}07293 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07294}07294 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07295}07295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07296}07296 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07297}07297     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07298}07298         \textcolor{keyword}{struct }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07299}07299             Benchmark(std::string \&\&name)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07300}07300                 : name(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(name)) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07301}07301 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07302}07302             \textcolor{keyword}{template} <\textcolor{keyword}{class} FUN>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07303}07303             Benchmark(std::string \&\&name, FUN \&\&func)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07304}07304                 : fun(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(func)), name(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(name)) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07305}07305 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07306}07306             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07307}07307             ExecutionPlan<FloatDuration<Clock>> prepare(\textcolor{keyword}{const} IConfig \&cfg, Environment<FloatDuration<Clock>> env)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07308}07308                 \textcolor{keyword}{auto} min\_time = env.clock\_resolution.mean * Detail::minimum\_ticks;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07309}07309                 \textcolor{keyword}{auto} run\_time = \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}}(min\_time, std::chrono::duration\_cast<\textcolor{keyword}{decltype}(min\_time)>(cfg.benchmarkWarmupTime()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07310}07310                 \textcolor{keyword}{auto}\&\& \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}} = Detail::run\_for\_at\_least<Clock>(std::chrono::duration\_cast<ClockDuration<Clock>>(run\_time), 1, fun);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07311}07311                 \textcolor{keywordtype}{int} new\_iters = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(std::ceil(min\_time * \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}.iterations / \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}.elapsed));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07312}07312                 \textcolor{keywordflow}{return} \{ new\_iters, \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}.elapsed / \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}.iterations * new\_iters * cfg.benchmarkSamples(), fun, std::chrono::duration\_cast<FloatDuration<Clock>>(cfg.benchmarkWarmupTime()), Detail::warmup\_iterations \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07313}07313             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07314}07314 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07315}07315             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Clock = default\_clock>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07316}07316             \textcolor{keywordtype}{void} run() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07317}07317                 \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} cfg = \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07318}07318 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07319}07319                 \textcolor{keyword}{auto} env = Detail::measure\_environment<Clock>();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07320}07320 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07321}07321                 \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().benchmarkPreparing(name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07322}07322                 \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07323}07323                     \textcolor{keyword}{auto} plan = user\_code([\&] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07324}07324                         \textcolor{keywordflow}{return} prepare<Clock>(*cfg, env);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07325}07325                     \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07326}07326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07327}07327                     BenchmarkInfo info \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07328}07328                         name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07329}07329                         plan.estimated\_duration.count(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07330}07330                         plan.iterations\_per\_sample,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07331}07331                         cfg-\/>benchmarkSamples(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07332}07332                         cfg-\/>benchmarkResamples(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07333}07333                         env.clock\_resolution.mean.count(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07334}07334                         env.clock\_cost.mean.count()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07335}07335                     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07336}07336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07337}07337                     \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().benchmarkStarting(info);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07338}07338 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07339}07339                     \textcolor{keyword}{auto} samples = user\_code([\&] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07340}07340                         \textcolor{keywordflow}{return} plan.template run<Clock>(*cfg, env);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07341}07341                     \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07342}07342 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07343}07343                     \textcolor{keyword}{auto} analysis = Detail::analyse(*cfg, env, samples.begin(), samples.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07344}07344                     BenchmarkStats<FloatDuration<Clock>> stats\{ info, analysis.samples, analysis.mean, analysis.standard\_deviation, analysis.outliers, analysis.outlier\_variance \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07345}07345                     \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().benchmarkEnded(stats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07346}07346 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07347}07347                 \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07348}07348                     \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}() != Detail::benchmarkErrorMsg) \textcolor{comment}{// benchmark errors have been reported, otherwise rethrow.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07349}07349                         std::rethrow\_exception(std::current\_exception());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07350}07350                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07351}07351             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07352}07352 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07353}07353             \textcolor{comment}{// sets lambda to be used in fun *and* executes benchmark!}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07354}07354             \textcolor{keyword}{template} <\textcolor{keyword}{typename} Fun,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07355}07355                 \textcolor{keyword}{typename} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::enable\_if<!Detail::is\_related<Fun, Benchmark>::value}}, \textcolor{keywordtype}{int}>::type = 0>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07356}07356                 Benchmark \& operator=(Fun func) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07357}07357                 fun = Detail::BenchmarkFunction(func);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07358}07358                 run();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07359}07359                 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07360}07360             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07361}07361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07362}07362             \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07363}07363                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07364}07364             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07365}07365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07366}07366         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07367}07367             Detail::BenchmarkFunction fun;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07368}07368             std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07369}07369         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07370}07370     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07371}07371 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07372}07372 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07373}07373 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_GET\_1\_ARG(arg1, arg2, ...) arg1}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07374}07374 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_GET\_2\_ARG(arg1, arg2, ...) arg2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07375}07375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07376}07376 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_BENCHMARK(BenchmarkName, name, benchmarkIndex)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07377}07377 \textcolor{preprocessor}{    if( Catch::Benchmark::Benchmark BenchmarkName\{name\} ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07378}07378 \textcolor{preprocessor}{        BenchmarkName = [\&](int benchmarkIndex)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07379}07379 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07380}07380 \textcolor{preprocessor}{\#define INTERNAL\_CATCH\_BENCHMARK\_ADVANCED(BenchmarkName, name)\(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07381}07381 \textcolor{preprocessor}{    if( Catch::Benchmark::Benchmark BenchmarkName\{name\} ) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07382}07382 \textcolor{preprocessor}{        BenchmarkName = [\&]}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07383}07383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07384}07384 \textcolor{comment}{// end catch\_benchmark.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07385}07385 \textcolor{comment}{// start catch\_constructor.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07386}07386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07387}07387 \textcolor{comment}{// Constructor and destructor helpers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07388}07388 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07389}07389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07390}07390 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07391}07391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07392}07392 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07393}07393     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07394}07394         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07395}07395             \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keywordtype}{bool} Destruct>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07396}07396             \textcolor{keyword}{struct }ObjectStorage}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07397}07397             \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07398}07398                 ObjectStorage() : data() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07399}07399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07400}07400                 ObjectStorage(\textcolor{keyword}{const} ObjectStorage\& other)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07401}07401                 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07402}07402                     \textcolor{keyword}{new}(\&data) T(other.stored\_object());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07403}07403                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07404}07404 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07405}07405                 ObjectStorage(ObjectStorage\&\& other)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07406}07406                 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07407}07407                     \textcolor{keyword}{new}(\&data) T(std::move(other.stored\_object()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07408}07408                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07409}07409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07410}07410                 \string~ObjectStorage() \{ destruct\_on\_exit<T>(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07411}07411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07412}07412                 \textcolor{keyword}{template} <\textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07413}07413                 \textcolor{keywordtype}{void} construct(Args\&\&... args)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07414}07414                 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07415}07415                     \textcolor{keyword}{new} (\&data) T(std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07416}07416                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07417}07417 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07418}07418                 \textcolor{keyword}{template} <\textcolor{keywordtype}{bool} AllowManualDestruction = !Destruct>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07419}07419                 \textcolor{keyword}{typename} std::enable\_if<AllowManualDestruction>::type destruct()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07420}07420                 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07421}07421                     stored\_object().\string~T();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07422}07422                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07423}07423 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07424}07424             \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07425}07425                 \textcolor{comment}{// If this is a constructor benchmark, destruct the underlying object}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07426}07426                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07427}07427                 \textcolor{keywordtype}{void} destruct\_on\_exit(\textcolor{keyword}{typename} std::enable\_if<Destruct, U>::type* = 0) \{ destruct<true>(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07428}07428                 \textcolor{comment}{// Otherwise, don't}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07429}07429                 \textcolor{keyword}{template} <\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07430}07430                 \textcolor{keywordtype}{void} destruct\_on\_exit(\textcolor{keyword}{typename} std::enable\_if<!Destruct, U>::type* = 0) \{ \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07431}07431 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07432}07432                 T\& stored\_object() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07433}07433                     \textcolor{keywordflow}{return} *\textcolor{keyword}{static\_cast<}T*\textcolor{keyword}{>}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}*\textcolor{keyword}{>}(\&data));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07434}07434                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07435}07435 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07436}07436                 T \textcolor{keyword}{const}\& stored\_object()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07437}07437                     \textcolor{keywordflow}{return} *\textcolor{keyword}{static\_cast<}T*\textcolor{keyword}{>}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}*\textcolor{keyword}{>}(\&data));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07438}07438                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07439}07439 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07440}07440                 \textcolor{keyword}{struct }\{ \textcolor{keyword}{alignas}(T) \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[\textcolor{keyword}{sizeof}(T)]; \}  data;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07441}07441             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07442}07442         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07443}07443 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07444}07444         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07445}07445         \textcolor{keyword}{using }storage\_for = Detail::ObjectStorage<T, true>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07446}07446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07447}07447         \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07448}07448         \textcolor{keyword}{using }destructable\_object = Detail::ObjectStorage<T, false>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07449}07449     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07450}07450 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07451}07451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07452}07452 \textcolor{comment}{// end catch\_constructor.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07453}07453 \textcolor{comment}{// end catch\_benchmarking\_all.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07454}07454 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07455}07455 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07456}07456 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// ! CATCH\_CONFIG\_IMPL\_ONLY}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07457}07457 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07458}07458 \textcolor{preprocessor}{\#ifdef CATCH\_IMPL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07459}07459 \textcolor{comment}{// start catch\_impl.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07460}07460 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07461}07461 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07462}07462 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07463}07463 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wweak-\/vtables"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07464}07464 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07465}07465 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07466}07466 \textcolor{comment}{// Keep these here for external reporters}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07467}07467 \textcolor{comment}{// start catch\_test\_case\_tracker.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07468}07468 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07469}07469 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07470}07470 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07471}07471 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07472}07472 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07473}07473 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07474}07474 \textcolor{keyword}{namespace }TestCaseTracking \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07475}07475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07476}07476     \textcolor{keyword}{struct }NameAndLocation \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07477}07477         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07478}07478         SourceLineInfo location;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07479}07479 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07480}07480         NameAndLocation( std::string \textcolor{keyword}{const}\& \_name, SourceLineInfo \textcolor{keyword}{const}\& \_location );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07481}07481         \textcolor{keyword}{friend} \textcolor{keywordtype}{bool} operator==(NameAndLocation \textcolor{keyword}{const}\& lhs, NameAndLocation \textcolor{keyword}{const}\& rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07482}07482             \textcolor{keywordflow}{return} lhs.name == rhs.name}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07483}07483                 \&\& lhs.location == rhs.location;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07484}07484         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07485}07485     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07486}07486 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07487}07487     \textcolor{keyword}{class }ITracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07488}07488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07489}07489     \textcolor{keyword}{using }ITrackerPtr = std::shared\_ptr<ITracker>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07490}07490 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07491}07491     \textcolor{keyword}{class  }ITracker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07492}07492         NameAndLocation m\_nameAndLocation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07493}07493 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07494}07494     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07495}07495         ITracker(NameAndLocation \textcolor{keyword}{const}\& nameAndLoc) :}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07496}07496             m\_nameAndLocation(nameAndLoc)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07497}07497         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07498}07498 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07499}07499         \textcolor{comment}{// static queries}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07500}07500         NameAndLocation \textcolor{keyword}{const}\& nameAndLocation()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07501}07501             \textcolor{keywordflow}{return} m\_nameAndLocation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07502}07502         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07503}07503 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07504}07504         \textcolor{keyword}{virtual} \string~ITracker();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07505}07505 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07506}07506         \textcolor{comment}{// dynamic queries}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07507}07507         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isComplete() \textcolor{keyword}{const} = 0; \textcolor{comment}{// Successfully completed or failed}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07508}07508         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isSuccessfullyCompleted() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07509}07509         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isOpen() \textcolor{keyword}{const} = 0; \textcolor{comment}{// Started but not complete}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07510}07510         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} hasChildren() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07511}07511         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} hasStarted() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07512}07512 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07513}07513         \textcolor{keyword}{virtual} ITracker\& parent() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07514}07514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07515}07515         \textcolor{comment}{// actions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07516}07516         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} close() = 0; \textcolor{comment}{// Successfully complete}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07517}07517         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} fail() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07518}07518         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} markAsNeedingAnotherRun() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07519}07519 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07520}07520         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} addChild( ITrackerPtr \textcolor{keyword}{const}\& child ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07521}07521         \textcolor{keyword}{virtual} ITrackerPtr findChild( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07522}07522         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} openChild() = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07523}07523 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07524}07524         \textcolor{comment}{// Debug/ checking}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07525}07525         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isSectionTracker() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07526}07526         \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool} isGeneratorTracker() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07527}07527     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07528}07528 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07529}07529     \textcolor{keyword}{class }TrackerContext \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07530}07530 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07531}07531         \textcolor{keyword}{enum} RunState \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07532}07532             NotStarted,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07533}07533             Executing,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07534}07534             CompletedCycle}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07535}07535         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07536}07536 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07537}07537         ITrackerPtr m\_rootTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07538}07538         ITracker* m\_currentTracker = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07539}07539         RunState m\_runState = NotStarted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07540}07540 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07541}07541     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07542}07542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07543}07543         ITracker\& startRun();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07544}07544         \textcolor{keywordtype}{void} endRun();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07545}07545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07546}07546         \textcolor{keywordtype}{void} startCycle();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07547}07547         \textcolor{keywordtype}{void} completeCycle();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07548}07548 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07549}07549         \textcolor{keywordtype}{bool} completedCycle() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07550}07550         ITracker\& currentTracker();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07551}07551         \textcolor{keywordtype}{void} setCurrentTracker( ITracker* tracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07552}07552     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07553}07553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07554}07554     \textcolor{keyword}{class }TrackerBase : \textcolor{keyword}{public} ITracker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07555}07555     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07556}07556         \textcolor{keyword}{enum} CycleState \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07557}07557             NotStarted,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07558}07558             Executing,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07559}07559             ExecutingChildren,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07560}07560             NeedsAnotherRun,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07561}07561             CompletedSuccessfully,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07562}07562             Failed}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07563}07563         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07564}07564 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07565}07565         \textcolor{keyword}{using }Children = std::vector<ITrackerPtr>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07566}07566         TrackerContext\& m\_ctx;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07567}07567         ITracker* m\_parent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07568}07568         Children m\_children;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07569}07569         CycleState m\_runState = NotStarted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07570}07570 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07571}07571     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07572}07572         TrackerBase( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation, TrackerContext\& ctx, ITracker* parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07573}07573 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07574}07574         \textcolor{keywordtype}{bool} isComplete() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07575}07575         \textcolor{keywordtype}{bool} isSuccessfullyCompleted() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07576}07576         \textcolor{keywordtype}{bool} isOpen() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07577}07577         \textcolor{keywordtype}{bool} hasChildren() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07578}07578         \textcolor{keywordtype}{bool} hasStarted()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07579}07579             \textcolor{keywordflow}{return} m\_runState != NotStarted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07580}07580         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07581}07581 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07582}07582         \textcolor{keywordtype}{void} addChild( ITrackerPtr \textcolor{keyword}{const}\& child ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07583}07583 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07584}07584         ITrackerPtr findChild( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07585}07585         ITracker\& parent() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07586}07586 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07587}07587         \textcolor{keywordtype}{void} openChild() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07588}07588 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07589}07589         \textcolor{keywordtype}{bool} isSectionTracker() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07590}07590         \textcolor{keywordtype}{bool} isGeneratorTracker() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07591}07591 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07592}07592         \textcolor{keywordtype}{void} open();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07593}07593 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07594}07594         \textcolor{keywordtype}{void} close() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07595}07595         \textcolor{keywordtype}{void} fail() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07596}07596         \textcolor{keywordtype}{void} markAsNeedingAnotherRun() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07597}07597 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07598}07598     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07599}07599         \textcolor{keywordtype}{void} moveToParent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07600}07600         \textcolor{keywordtype}{void} moveToThis();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07601}07601     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07602}07602 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07603}07603     \textcolor{keyword}{class }SectionTracker : \textcolor{keyword}{public} TrackerBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07604}07604         std::vector<std::string> m\_filters;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07605}07605         std::string m\_trimmed\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07606}07606     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07607}07607         SectionTracker( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation, TrackerContext\& ctx, ITracker* parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07608}07608 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07609}07609         \textcolor{keywordtype}{bool} isSectionTracker() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07610}07610 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07611}07611         \textcolor{keywordtype}{bool} isComplete() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07612}07612 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07613}07613         \textcolor{keyword}{static} SectionTracker\& acquire( TrackerContext\& ctx, NameAndLocation \textcolor{keyword}{const}\& nameAndLocation );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07614}07614 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07615}07615         \textcolor{keywordtype}{void} tryOpen();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07616}07616 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07617}07617         \textcolor{keywordtype}{void} addInitialFilters( std::vector<std::string> \textcolor{keyword}{const}\& filters );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07618}07618         \textcolor{keywordtype}{void} addNextFilters( std::vector<std::string> \textcolor{keyword}{const}\& filters );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07620}07620         std::vector<std::string> \textcolor{keyword}{const}\& getFilters() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07622}07622         std::string \textcolor{keyword}{const}\& trimmedName() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07623}07623     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07624}07624 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07625}07625 \} \textcolor{comment}{// namespace TestCaseTracking}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07626}07626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07627}07627 \textcolor{keyword}{using }TestCaseTracking::ITracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07628}07628 \textcolor{keyword}{using }TestCaseTracking::TrackerContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07629}07629 \textcolor{keyword}{using }TestCaseTracking::SectionTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07630}07630 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07631}07631 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07632}07632 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07633}07633 \textcolor{comment}{// end catch\_test\_case\_tracker.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07634}07634 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07635}07635 \textcolor{comment}{// start catch\_leak\_detector.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07636}07636 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07637}07637 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07638}07638 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07639}07639     \textcolor{keyword}{struct }LeakDetector \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07640}07640         LeakDetector();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07641}07641         \string~LeakDetector();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07642}07642     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07643}07643 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07644}07644 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07645}07645 \textcolor{comment}{// end catch\_leak\_detector.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07646}07646 \textcolor{comment}{// Cpp files will be included in the single-\/header file here}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07647}07647 \textcolor{comment}{// start catch\_stats.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07648}07648 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07649}07649 \textcolor{comment}{// Statistical analysis tools}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07650}07650 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07651}07651 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07652}07652 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07653}07653 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07654}07654 \textcolor{preprocessor}{\#include <random>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07655}07655 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07656}07656 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_USE\_ASYNC)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07657}07657 \textcolor{preprocessor}{\#include <future>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07658}07658 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07659}07659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07660}07660 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07661}07661     \textcolor{keywordtype}{double} erf\_inv(\textcolor{keywordtype}{double} x) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07662}07662         \textcolor{comment}{// Code accompanying the article "{}Approximating the erfinv function"{} in GPU Computing Gems, Volume 2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07663}07663         \textcolor{keywordtype}{double} w, p;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07664}07664 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07665}07665         w = -\/log((1.0 -\/ x) * (1.0 + x));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07666}07666 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07667}07667         \textcolor{keywordflow}{if} (w < 6.250000) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07668}07668             w = w -\/ 3.125000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07669}07669             p = -\/3.6444120640178196996\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/21;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07670}07670             p = -\/1.685059138182016589\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/19 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07671}07671             p = 1.2858480715256400167e-\/18 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07672}07672             p = 1.115787767802518096e-\/17 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07673}07673             p = -\/1.333171662854620906\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/16 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07674}07674             p = 2.0972767875968561637e-\/17 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07675}07675             p = 6.6376381343583238325e-\/15 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07676}07676             p = -\/4.0545662729752068639\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/14 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07677}07677             p = -\/8.1519341976054721522\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/14 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07678}07678             p = 2.6335093153082322977e-\/12 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07679}07679             p = -\/1.2975133253453532498\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/11 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07680}07680             p = -\/5.4154120542946279317\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/11 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07681}07681             p = 1.051212273321532285e-\/09 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07682}07682             p = -\/4.1126339803469836976\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/09 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07683}07683             p = -\/2.9070369957882005086\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07684}07684             p = 4.2347877827932403518e-\/07 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07685}07685             p = -\/1.3654692000834678645\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/06 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07686}07686             p = -\/1.3882523362786468719\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07687}07687             p = 0.0001867342080340571352 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07688}07688             p = -\/0.00074070253416626697512 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07689}07689             p = -\/0.0060336708714301490533 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07690}07690             p = 0.24015818242558961693 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07691}07691             p = 1.6536545626831027356 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07692}07692         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (w < 16.000000) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07693}07693             w = sqrt(w) -\/ 3.250000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07694}07694             p = 2.2137376921775787049e-\/09;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07695}07695             p = 9.0756561938885390979e-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07696}07696             p = -\/2.7517406297064545428\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/07 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07697}07697             p = 1.8239629214389227755e-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07698}07698             p = 1.5027403968909827627e-\/06 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07699}07699             p = -\/4.013867526981545969\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/06 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07700}07700             p = 2.9234449089955446044e-\/06 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07701}07701             p = 1.2475304481671778723e-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07702}07702             p = -\/4.7318229009055733981\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07703}07703             p = 6.8284851459573175448e-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07704}07704             p = 2.4031110387097893999e-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07705}07705             p = -\/0.0003550375203628474796 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07706}07706             p = 0.00095328937973738049703 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07707}07707             p = -\/0.0016882755560235047313 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07708}07708             p = 0.0024914420961078508066 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07709}07709             p = -\/0.0037512085075692412107 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07710}07710             p = 0.005370914553590063617 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07711}07711             p = 1.0052589676941592334 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07712}07712             p = 3.0838856104922207635 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07713}07713         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07714}07714             w = sqrt(w) -\/ 5.000000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07715}07715             p = -\/2.7109920616438573243\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/11;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07716}07716             p = -\/2.5556418169965252055\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/10 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07717}07717             p = 1.5076572693500548083e-\/09 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07718}07718             p = -\/3.7894654401267369937\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/09 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07719}07719             p = 7.6157012080783393804e-\/09 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07720}07720             p = -\/1.4960026627149240478\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07721}07721             p = 2.9147953450901080826e-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07722}07722             p = -\/6.7711997758452339498\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/08 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07723}07723             p = 2.2900482228026654717e-\/07 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07724}07724             p = -\/9.9298272942317002539\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/07 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07725}07725             p = 4.5260625972231537039e-\/06 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07726}07726             p = -\/1.9681778105531670567\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07727}07727             p = 7.5995277030017761139e-\/05 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07728}07728             p = -\/0.00021503011930044477347 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07729}07729             p = -\/0.00013871931833623122026 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07730}07730             p = 1.0103004648645343977 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07731}07731             p = 4.8499064014085844221 + p * w;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07732}07732         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07733}07733         \textcolor{keywordflow}{return} p * x;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07734}07734     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07735}07735 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07736}07736     \textcolor{keywordtype}{double} standard\_deviation(std::vector<double>::iterator first, std::vector<double>::iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07737}07737         \textcolor{keyword}{auto} m = Catch::Benchmark::Detail::mean(first, last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07738}07738         \textcolor{keywordtype}{double} variance = \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{std::accumulate}}(first, last, 0., [m](\textcolor{keywordtype}{double} \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keywordtype}{double} b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07739}07739             \textcolor{keywordtype}{double} diff = b -\/ m;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07740}07740             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} + diff * diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07741}07741             \}) / (last -\/ first);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07742}07742             \textcolor{keywordflow}{return} std::sqrt(variance);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07743}07743     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07744}07744 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07745}07745 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07746}07746 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07747}07747 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07748}07748     \textcolor{keyword}{namespace }Benchmark \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07749}07749         \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07750}07750 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07751}07751             \textcolor{keywordtype}{double} weighted\_average\_quantile(\textcolor{keywordtype}{int} \mbox{\hyperlink{structk}{k}}, \textcolor{keywordtype}{int} q, std::vector<double>::iterator first, std::vector<double>::iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07752}07752                 \textcolor{keyword}{auto} count = last -\/ first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07753}07753                 \textcolor{keywordtype}{double} idx = (count -\/ 1) * \mbox{\hyperlink{structk}{k}} / static\_cast<double>(q);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07754}07754                 \textcolor{keywordtype}{int} j = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(idx);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07755}07755                 \textcolor{keywordtype}{double} g = idx -\/ j;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07756}07756                 std::nth\_element(first, first + j, last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07757}07757                 \textcolor{keyword}{auto} xj = first[j];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07758}07758                 \textcolor{keywordflow}{if} (g == 0) \textcolor{keywordflow}{return} xj;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07759}07759 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07760}07760                 \textcolor{keyword}{auto} xj1 = *std::min\_element(first + (j + 1), last);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07761}07761                 \textcolor{keywordflow}{return} xj + g * (xj1 -\/ xj);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07762}07762             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07763}07763 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07764}07764             \textcolor{keywordtype}{double} erfc\_inv(\textcolor{keywordtype}{double} x) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07765}07765                 \textcolor{keywordflow}{return} erf\_inv(1.0 -\/ x);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07766}07766             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07767}07767 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07768}07768             \textcolor{keywordtype}{double} normal\_quantile(\textcolor{keywordtype}{double} p) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07769}07769                 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{double} ROOT\_TWO = std::sqrt(2.0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07770}07770 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07771}07771                 \textcolor{keywordtype}{double} result = 0.0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07772}07772                 assert(p >= 0 \&\& p <= 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07773}07773                 \textcolor{keywordflow}{if} (p < 0 || p > 1) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07774}07774                     \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07775}07775                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07776}07776 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07777}07777                 result = -\/erfc\_inv(2.0 * p);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07778}07778                 \textcolor{comment}{// result *= normal distribution standard deviation (1.0) * sqrt(2)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07779}07779                 result *= \textcolor{comment}{/*sd * */} ROOT\_TWO;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07780}07780                 \textcolor{comment}{// result += normal disttribution mean (0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07781}07781                 \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07782}07782             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07783}07783 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07784}07784             \textcolor{keywordtype}{double} outlier\_variance(Estimate<double> mean, Estimate<double> stddev, \textcolor{keywordtype}{int} n) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07785}07785                 \textcolor{keywordtype}{double} sb = stddev.point;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07786}07786                 \textcolor{keywordtype}{double} mn = mean.point / n;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07787}07787                 \textcolor{keywordtype}{double} mg\_min = mn / 2.;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07788}07788                 \textcolor{keywordtype}{double} sg = (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(mg\_min / 4., sb / std::sqrt(n));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07789}07789                 \textcolor{keywordtype}{double} sg2 = sg * sg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07790}07790                 \textcolor{keywordtype}{double} sb2 = sb * sb;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07791}07791 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07792}07792                 \textcolor{keyword}{auto} c\_max = [n, mn, sb2, sg2](\textcolor{keywordtype}{double} x) -\/> \textcolor{keywordtype}{double} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07793}07793                     \textcolor{keywordtype}{double} \mbox{\hyperlink{structk}{k}} = mn -\/ x;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07794}07794                     \textcolor{keywordtype}{double} d = \mbox{\hyperlink{structk}{k}} * \mbox{\hyperlink{structk}{k}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07795}07795                     \textcolor{keywordtype}{double} nd = n * d;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07796}07796                     \textcolor{keywordtype}{double} k0 = -\/n * nd;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07797}07797                     \textcolor{keywordtype}{double} k1 = sb2 -\/ n * sg2 + nd;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07798}07798                     \textcolor{keywordtype}{double} det = k1 * k1 -\/ 4 * sg2 * k0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07799}07799                     \textcolor{keywordflow}{return} (\textcolor{keywordtype}{int})(-\/2. * k0 / (k1 + \mbox{\hyperlink{namespacestd}{std}}::sqrt(det)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07800}07800                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07801}07801 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07802}07802                 \textcolor{keyword}{auto} var\_out = [n, sb2, sg2](\textcolor{keywordtype}{double} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07803}07803                     \textcolor{keywordtype}{double} nc = n -\/ c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07804}07804                     \textcolor{keywordflow}{return} (nc / n) * (sb2 -\/ nc * sg2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07805}07805                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07806}07806 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07807}07807                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(var\_out(1), var\_out((\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(c\_max(0.), c\_max(mg\_min)))) / sb2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07808}07808             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07809}07809 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07810}07810             bootstrap\_analysis analyse\_samples(\textcolor{keywordtype}{double} confidence\_level, \textcolor{keywordtype}{int} n\_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07811}07811                 \mbox{\hyperlink{catch2_2catch_8hpp_a1500dca9a578a0bd2f85771cfa3fd35d}{CATCH\_INTERNAL\_START\_WARNINGS\_SUPPRESSION}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07812}07812                 \mbox{\hyperlink{catch2_2catch_8hpp_aa0200c23b35ba2bd8ebed69a8f3c1c66}{CATCH\_INTERNAL\_SUPPRESS\_GLOBALS\_WARNINGS}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07813}07813                 \textcolor{keyword}{static} std::random\_device entropy;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07814}07814                 \mbox{\hyperlink{catch2_2catch_8hpp_ad9594e9891b032f0dd0279960dc861a5}{CATCH\_INTERNAL\_STOP\_WARNINGS\_SUPPRESSION}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07815}07815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07816}07816                 \textcolor{keyword}{auto} n = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(last -\/ first); \textcolor{comment}{// seriously, one can't use integral types without hell in C++}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07817}07817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07818}07818                 \textcolor{keyword}{auto} mean = \&Detail::mean<std::vector<double>::iterator>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07819}07819                 \textcolor{keyword}{auto} stddev = \&standard\_deviation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07820}07820 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07821}07821 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_USE\_ASYNC)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07822}07822                 \textcolor{keyword}{auto} Estimate = [=](double(*f)(std::vector<double>::iterator, std::vector<double>::iterator)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07823}07823                     \textcolor{keyword}{auto} seed = entropy();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07824}07824                     \textcolor{keywordflow}{return} std::async(std::launch::async, [=] \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07825}07825                         std::mt19937 \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}(seed);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07826}07826                         \textcolor{keyword}{auto} resampled = resample(\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}, n\_resamples, first, last, f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07827}07827                         \textcolor{keywordflow}{return} bootstrap(confidence\_level, first, last, resampled, f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07828}07828                     \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07829}07829                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07830}07830 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07831}07831                 \textcolor{keyword}{auto} mean\_future = Estimate(mean);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07832}07832                 \textcolor{keyword}{auto} stddev\_future = Estimate(stddev);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07833}07833 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07834}07834                 \textcolor{keyword}{auto} mean\_estimate = mean\_future.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07835}07835                 \textcolor{keyword}{auto} stddev\_estimate = stddev\_future.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07836}07836 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07837}07837                 \textcolor{keyword}{auto} Estimate = [=](double(*f)(std::vector<double>::iterator, std::vector<double>::iterator)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07838}07838                     \textcolor{keyword}{auto} seed = entropy();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07839}07839                     std::mt19937 \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}(seed);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07840}07840                     \textcolor{keyword}{auto} resampled = resample(\mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}, n\_resamples, first, last, f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07841}07841                     \textcolor{keywordflow}{return} bootstrap(confidence\_level, first, last, resampled, f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07842}07842                 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07843}07843 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07844}07844                 \textcolor{keyword}{auto} mean\_estimate = Estimate(mean);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07845}07845                 \textcolor{keyword}{auto} stddev\_estimate = Estimate(stddev);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07846}07846 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_USE\_ASYNC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07847}07847 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07848}07848                 \textcolor{keywordtype}{double} outlier\_variance = Detail::outlier\_variance(mean\_estimate, stddev\_estimate, n);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07849}07849 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07850}07850                 \textcolor{keywordflow}{return} \{ mean\_estimate, stddev\_estimate, outlier\_variance \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07851}07851             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07852}07852         \} \textcolor{comment}{// namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07853}07853     \} \textcolor{comment}{// namespace Benchmark}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07854}07854 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07855}07855 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07856}07856 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07857}07857 \textcolor{comment}{// end catch\_stats.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07858}07858 \textcolor{comment}{// start catch\_approx.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07859}07859 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07860}07860 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07861}07861 \textcolor{preprocessor}{\#include <limits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07862}07862 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07863}07863 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07864}07864 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07865}07865 \textcolor{comment}{// Performs equivalent check of std::fabs(lhs -\/ rhs) <= margin}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07866}07866 \textcolor{comment}{// But without the subtraction to allow for INFINITY in comparison}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07867}07867 \textcolor{keywordtype}{bool} marginComparison(\textcolor{keywordtype}{double} lhs, \textcolor{keywordtype}{double} rhs, \textcolor{keywordtype}{double} margin) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07868}07868     \textcolor{keywordflow}{return} (lhs + margin >= rhs) \&\& (rhs + margin >= lhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07869}07869 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07870}07870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07871}07871 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07872}07872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07873}07873 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07874}07874 \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07875}07875 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07876}07876     \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx_a1a8618ea8db08c66bd3d9fe8f74b957a}{Approx::Approx}} ( \textcolor{keywordtype}{double} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07877}07877     :   m\_epsilon( \mbox{\hyperlink{namespacestd}{std}}::numeric\_limits<float>::epsilon()*100 ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07878}07878         m\_margin( 0.0 ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07879}07879         m\_scale( 0.0 ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07880}07880         m\_value( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07881}07881     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07882}07882 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07883}07883     \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} Approx::custom() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07884}07884         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Approx}}( 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07885}07885     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07886}07886 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07887}07887     \mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Approx}} Approx::operator-\/()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07888}07888         \textcolor{keyword}{auto} temp(*\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07889}07889         temp.m\_value = -\/temp.m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07890}07890         \textcolor{keywordflow}{return} temp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07891}07891     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07892}07892 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07893}07893     std::string Approx::toString()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07894}07894         ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07895}07895         rss << \textcolor{stringliteral}{"{}Approx( "{}} << \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{::Catch::Detail::stringify}}( m\_value ) << \textcolor{stringliteral}{"{} )"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07896}07896         \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07897}07897     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07898}07898 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07899}07899     \textcolor{keywordtype}{bool} Approx::equalityComparisonImpl(\textcolor{keyword}{const} \textcolor{keywordtype}{double} other)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07900}07900         \textcolor{comment}{// First try with fixed margin, then compute margin based on epsilon, scale and Approx's value}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07901}07901         \textcolor{comment}{// Thanks to Richard Harris for his help refining the scaled margin value}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07902}07902         \textcolor{keywordflow}{return} marginComparison(m\_value, other, m\_margin)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07903}07903             || marginComparison(m\_value, other, m\_epsilon * (m\_scale + std::fabs(std::isinf(m\_value)? 0 : m\_value)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07904}07904     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07905}07905 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07906}07906     \textcolor{keywordtype}{void} Approx::setMargin(\textcolor{keywordtype}{double} newMargin) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07907}07907         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(newMargin >= 0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07908}07908             \textcolor{stringliteral}{"{}Invalid Approx::margin: "{}} << newMargin << \textcolor{charliteral}{'.'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07909}07909             << \textcolor{stringliteral}{"{} Approx::Margin has to be non-\/negative."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07910}07910         m\_margin = newMargin;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07911}07911     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07912}07912 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07913}07913     \textcolor{keywordtype}{void} Approx::setEpsilon(\textcolor{keywordtype}{double} newEpsilon) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07914}07914         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(newEpsilon >= 0 \&\& newEpsilon <= 1.0,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07915}07915             \textcolor{stringliteral}{"{}Invalid Approx::epsilon: "{}} << newEpsilon << \textcolor{charliteral}{'.'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07916}07916             << \textcolor{stringliteral}{"{} Approx::epsilon has to be in [0, 1]"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07917}07917         m\_epsilon = newEpsilon;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07918}07918     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07919}07919 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07920}07920 \} \textcolor{comment}{// end namespace Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07921}07921 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07922}07922 \textcolor{keyword}{namespace }literals \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07923}07923     \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Detail::Approx}} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_a(\textcolor{keywordtype}{long} \textcolor{keywordtype}{double} val) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07924}07924         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Detail::Approx}}(val);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07925}07925     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07926}07926     \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Detail::Approx}} \textcolor{keyword}{operator} \textcolor{stringliteral}{"{}"{}} \_a(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long} val) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07927}07927         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_matchers_a02bf172177011d09780a98635dc5a124}{Detail::Approx}}(val);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07928}07928     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07929}07929 \} \textcolor{comment}{// end namespace literals}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07930}07930 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07931}07931 std::string StringMaker<Catch::Detail::Approx>::convert(\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Catch::Detail::Approx}} \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07932}07932     \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}.toString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07933}07933 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07934}07934 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07935}07935 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07936}07936 \textcolor{comment}{// end catch\_approx.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07937}07937 \textcolor{comment}{// start catch\_assertionhandler.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07938}07938 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07939}07939 \textcolor{comment}{// start catch\_debugger.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07940}07940 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07941}07941 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07942}07942     \textcolor{keywordtype}{bool} isDebuggerActive();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07943}07943 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07944}07944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07945}07945 \textcolor{preprocessor}{\#ifdef CATCH\_PLATFORM\_MAC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07946}07946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07947}07947 \textcolor{preprocessor}{    \#if defined(\_\_i386\_\_) || defined(\_\_x86\_64\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07948}07948 \textcolor{preprocessor}{        \#define CATCH\_TRAP() \_\_asm\_\_("{}int \$3\(\backslash\)n"{}} : : ) \textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07949}07949 \textcolor{preprocessor}{    \#elif defined(\_\_aarch64\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07950}07950 \textcolor{preprocessor}{        \#define CATCH\_TRAP()  \_\_asm\_\_("{}.inst 0xd43e0000"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07951}07951 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07952}07952 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07953}07953 \textcolor{preprocessor}{\#elif defined(CATCH\_PLATFORM\_IPHONE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07954}07954 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07955}07955     \textcolor{comment}{// use inline assembler}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07956}07956 \textcolor{preprocessor}{    \#if defined(\_\_i386\_\_) || defined(\_\_x86\_64\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07957}07957 \textcolor{preprocessor}{        \#define CATCH\_TRAP()  \_\_asm\_\_("{}int \$3"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07958}07958 \textcolor{preprocessor}{    \#elif defined(\_\_aarch64\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07959}07959 \textcolor{preprocessor}{        \#define CATCH\_TRAP()  \_\_asm\_\_("{}.inst 0xd4200000"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07960}07960 \textcolor{preprocessor}{    \#elif defined(\_\_arm\_\_) \&\& !defined(\_\_thumb\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07961}07961 \textcolor{preprocessor}{        \#define CATCH\_TRAP()  \_\_asm\_\_("{}.inst 0xe7f001f0"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07962}07962 \textcolor{preprocessor}{    \#elif defined(\_\_arm\_\_) \&\&  defined(\_\_thumb\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07963}07963 \textcolor{preprocessor}{        \#define CATCH\_TRAP()  \_\_asm\_\_("{}.inst 0xde01"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07964}07964 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07965}07965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07966}07966 \textcolor{preprocessor}{\#elif defined(CATCH\_PLATFORM\_LINUX)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07967}07967     \textcolor{comment}{// If we can use inline assembler, do it because this allows us to break}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07968}07968     \textcolor{comment}{// directly at the location of the failing check instead of breaking inside}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07969}07969     \textcolor{comment}{// raise() called from it, i.e. one stack frame below.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07970}07970 \textcolor{preprocessor}{    \#if defined(\_\_GNUC\_\_) \&\& (defined(\_\_i386) || defined(\_\_x86\_64))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07971}07971 \textcolor{preprocessor}{        \#define CATCH\_TRAP() asm volatile ("{}int \$3"{}}) \textcolor{comment}{/* NOLINT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07972}07972 \textcolor{preprocessor}{    \#else }\textcolor{comment}{// Fall back to the generic way.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07973}07973 \textcolor{preprocessor}{        \#include <signal.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07974}07974 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07975}07975 \textcolor{preprocessor}{        \#define CATCH\_TRAP() raise(SIGTRAP)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07976}07976 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07977}07977 \textcolor{preprocessor}{\#elif defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07978}07978 \textcolor{preprocessor}{    \#define CATCH\_TRAP() \_\_debugbreak()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07979}07979 \textcolor{preprocessor}{\#elif defined(\_\_MINGW32\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07980}07980     \textcolor{keyword}{extern} \textcolor{stringliteral}{"{}C"{}} \_\_declspec(dllimport) \textcolor{keywordtype}{void} \_\_stdcall DebugBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07981}07981 \textcolor{preprocessor}{    \#define CATCH\_TRAP() DebugBreak()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07982}07982 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07983}07983 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07984}07984 \textcolor{preprocessor}{\#ifndef CATCH\_BREAK\_INTO\_DEBUGGER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07985}07985 \textcolor{preprocessor}{    \#ifdef CATCH\_TRAP}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07986}07986 \textcolor{preprocessor}{        \#define CATCH\_BREAK\_INTO\_DEBUGGER() []\{ if( Catch::isDebuggerActive() ) \{ CATCH\_TRAP(); \} \}()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07987}07987 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07988}07988 \textcolor{preprocessor}{        \#define CATCH\_BREAK\_INTO\_DEBUGGER() []\{\}()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07989}07989 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07990}07990 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07991}07991 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07992}07992 \textcolor{comment}{// end catch\_debugger.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07993}07993 \textcolor{comment}{// start catch\_run\_context.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07994}07994 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07995}07995 \textcolor{comment}{// start catch\_fatal\_condition.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07996}07996 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07997}07997 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07998}07998 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l07999}07999 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08000}08000 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08001}08001     \textcolor{comment}{// Wrapper for platform-\/specific fatal error (signals/SEH) handlers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08002}08002     \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08003}08003     \textcolor{comment}{// Tries to be cooperative with other handlers, and not step over}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08004}08004     \textcolor{comment}{// other handlers. This means that unknown structured exceptions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08005}08005     \textcolor{comment}{// are passed on, previous signal handlers are called, and so on.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08006}08006     \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08007}08007     \textcolor{comment}{// Can only be instantiated once, and assumes that once a signal}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08008}08008     \textcolor{comment}{// is caught, the binary will end up terminating. Thus, there}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08009}08009     \textcolor{keyword}{class }FatalConditionHandler \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08010}08010         \textcolor{keywordtype}{bool} m\_started = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08011}08011 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08012}08012         \textcolor{comment}{// Install/disengage implementation for specific platform.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08013}08013         \textcolor{comment}{// Should be if-\/defed to work on current platform, can assume}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08014}08014         \textcolor{comment}{// engage-\/disengage 1:1 pairing.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08015}08015         \textcolor{keywordtype}{void} engage\_platform();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08016}08016         \textcolor{keywordtype}{void} disengage\_platform();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08017}08017     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08018}08018         \textcolor{comment}{// Should also have platform-\/specific implementations as needed}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08019}08019         FatalConditionHandler();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08020}08020         \string~FatalConditionHandler();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08021}08021 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08022}08022         \textcolor{keywordtype}{void} engage() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08023}08023             assert(!m\_started \&\& \textcolor{stringliteral}{"{}Handler cannot be installed twice."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08024}08024             m\_started = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08025}08025             engage\_platform();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08026}08026         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08027}08027 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08028}08028         \textcolor{keywordtype}{void} disengage() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08029}08029             assert(m\_started \&\& \textcolor{stringliteral}{"{}Handler cannot be uninstalled without being installed first"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08030}08030             m\_started = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08031}08031             disengage\_platform();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08032}08032         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08033}08033     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08034}08034 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08036}08036     \textcolor{keyword}{class }FatalConditionHandlerGuard \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08037}08037         FatalConditionHandler* m\_handler;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08038}08038     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08039}08039         FatalConditionHandlerGuard(FatalConditionHandler* handler):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08040}08040             m\_handler(handler) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08041}08041             m\_handler-\/>engage();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08042}08042         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08043}08043         \string~FatalConditionHandlerGuard() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08044}08044             m\_handler-\/>disengage();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08045}08045         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08046}08046     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08047}08047 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08048}08048 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08049}08049 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08050}08050 \textcolor{comment}{// end catch\_fatal\_condition.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08051}08051 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08052}08052 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08053}08053 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08054}08054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08055}08055     \textcolor{keyword}{struct }IMutableContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08056}08056 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08058}08058 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08059}08059     \textcolor{keyword}{class }RunContext : \textcolor{keyword}{public} IResultCapture, \textcolor{keyword}{public} IRunner \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08060}08060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08061}08061     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08062}08062         RunContext( RunContext \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08063}08063         RunContext\& operator =( RunContext \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08064}08064 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08065}08065         \textcolor{keyword}{explicit} RunContext( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_config, IStreamingReporterPtr\&\& reporter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08066}08066 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08067}08067         \string~RunContext() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08068}08068 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08069}08069         \textcolor{keywordtype}{void} testGroupStarting( std::string \textcolor{keyword}{const}\& testSpec, std::size\_t groupIndex, std::size\_t groupsCount );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08070}08070         \textcolor{keywordtype}{void} testGroupEnded( std::string \textcolor{keyword}{const}\& testSpec, Totals \textcolor{keyword}{const}\& totals, std::size\_t groupIndex, std::size\_t groupsCount );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08071}08071 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08072}08072         Totals runTest(TestCase \textcolor{keyword}{const}\& testCase);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08073}08073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08074}08074         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} config() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08075}08075         IStreamingReporter\& reporter() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08076}08076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08077}08077     \textcolor{keyword}{public}: \textcolor{comment}{// IResultCapture}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08078}08078 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08079}08079         \textcolor{comment}{// Assertion handlers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08080}08080         \textcolor{keywordtype}{void} handleExpr}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08081}08081                 (   AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08082}08082                     ITransientExpression \textcolor{keyword}{const}\& expr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08083}08083                     AssertionReaction\& reaction ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08084}08084         \textcolor{keywordtype}{void} handleMessage}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08085}08085                 (   AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08086}08086                     \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08087}08087                     StringRef \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08088}08088                     AssertionReaction\& reaction ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08089}08089         \textcolor{keywordtype}{void} handleUnexpectedExceptionNotThrown}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08090}08090                 (   AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08091}08091                     AssertionReaction\& reaction ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08092}08092         \textcolor{keywordtype}{void} handleUnexpectedInflightException}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08093}08093                 (   AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08094}08094                     std::string \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08095}08095                     AssertionReaction\& reaction ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08096}08096         \textcolor{keywordtype}{void} handleIncomplete}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08097}08097                 (   AssertionInfo \textcolor{keyword}{const}\& info ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08098}08098         \textcolor{keywordtype}{void} handleNonExpr}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08099}08099                 (   AssertionInfo \textcolor{keyword}{const} \&info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08100}08100                     \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08101}08101                     AssertionReaction \&reaction ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08102}08102 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08103}08103         \textcolor{keywordtype}{bool} sectionStarted( SectionInfo \textcolor{keyword}{const}\& sectionInfo, Counts\& assertions ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08104}08104 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08105}08105         \textcolor{keywordtype}{void} sectionEnded( SectionEndInfo \textcolor{keyword}{const}\& endInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08106}08106         \textcolor{keywordtype}{void} sectionEndedEarly( SectionEndInfo \textcolor{keyword}{const}\& endInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08107}08107 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08108}08108         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_ac1fe3550c5f97370fc6729e04d7571b8}{acquireGeneratorTracker}}( StringRef generatorName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo ) -\/> IGeneratorTracker\& \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08109}08109 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08110}08110 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08111}08111         \textcolor{keywordtype}{void} benchmarkPreparing( std::string \textcolor{keyword}{const}\& name ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08112}08112         \textcolor{keywordtype}{void} benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& info ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08113}08113         \textcolor{keywordtype}{void} benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& stats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08114}08114         \textcolor{keywordtype}{void} benchmarkFailed( std::string \textcolor{keyword}{const}\& error ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08115}08115 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08116}08116 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08117}08117         \textcolor{keywordtype}{void} pushScopedMessage( MessageInfo \textcolor{keyword}{const}\& message ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08118}08118         \textcolor{keywordtype}{void} popScopedMessage( MessageInfo \textcolor{keyword}{const}\& message ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08119}08119 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08120}08120         \textcolor{keywordtype}{void} emplaceUnscopedMessage( MessageBuilder \textcolor{keyword}{const}\& builder ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08121}08121 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08122}08122         std::string getCurrentTestName() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08123}08123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08124}08124         \textcolor{keyword}{const} AssertionResult* getLastResult() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08125}08125 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08126}08126         \textcolor{keywordtype}{void} exceptionEarlyReported() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08127}08127 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08128}08128         \textcolor{keywordtype}{void} handleFatalErrorCondition( StringRef message ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08129}08129 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08130}08130         \textcolor{keywordtype}{bool} lastAssertionPassed() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08131}08131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08132}08132         \textcolor{keywordtype}{void} assertionPassed() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08133}08133 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08134}08134     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08135}08135         \textcolor{comment}{// !TBD We need to do this another way!}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08136}08136         \textcolor{keywordtype}{bool} aborting() const final;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08137}08137 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08138}08138     private:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08139}08139 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08140}08140         \textcolor{keywordtype}{void} runCurrentTest( \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\& redirectedCout, \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\& redirectedCerr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08141}08141         \textcolor{keywordtype}{void} invokeActiveTestCase();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08142}08142 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08143}08143         \textcolor{keywordtype}{void} resetAssertionInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08144}08144         \textcolor{keywordtype}{bool} testForMissingAssertions( Counts\& assertions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08145}08145 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08146}08146         \textcolor{keywordtype}{void} assertionEnded( AssertionResult const\& result );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08147}08147         \textcolor{keywordtype}{void} reportExpr}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08148}08148                 (   AssertionInfo const \&info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08149}08149                     ResultWas::OfType resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08150}08150                     ITransientExpression const *expr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08151}08151                     \textcolor{keywordtype}{bool} negated );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08152}08152 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08153}08153         \textcolor{keywordtype}{void} populateReaction( AssertionReaction\& reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08154}08154 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08155}08155     private:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08156}08156 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08157}08157         \textcolor{keywordtype}{void} handleUnfinishedSections();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08158}08158 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08159}08159         TestRunInfo m\_runInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08160}08160         IMutableContext\& m\_context;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08161}08161         TestCase const* m\_activeTestCase = \textcolor{keywordtype}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08162}08162         ITracker* m\_testCaseTracker = \textcolor{keywordtype}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08163}08163         Option<AssertionResult> m\_lastResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08164}08164 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08165}08165         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08166}08166         Totals m\_totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08167}08167         IStreamingReporterPtr m\_reporter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08168}08168         \mbox{\hyperlink{namespacestd}{std}}::vector<MessageInfo> m\_messages;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08169}08169         \mbox{\hyperlink{namespacestd}{std}}::vector<ScopedMessage> m\_messageScopes; \textcolor{comment}{/* Keeps owners of so-\/called unscoped messages. */}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08170}08170         AssertionInfo m\_lastAssertionInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08171}08171         \mbox{\hyperlink{namespacestd}{std}}::vector<SectionEndInfo> m\_unfinishedSections;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08172}08172         \mbox{\hyperlink{namespacestd}{std}}::vector<ITracker*> m\_activeSections;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08173}08173         TrackerContext m\_trackerContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08174}08174         FatalConditionHandler m\_fatalConditionhandler;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08175}08175         \textcolor{keywordtype}{bool} m\_lastAssertionPassed = false;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08176}08176         \textcolor{keywordtype}{bool} m\_shouldReportUnexpected = true;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08177}08177         \textcolor{keywordtype}{bool} m\_includeSuccessfulResults;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08178}08178     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08179}08179 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08180}08180     \textcolor{keywordtype}{void} seedRng(IConfig const\& config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08181}08181     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{rngSeed}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08182}08182 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08183}08183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08184}08184 \textcolor{comment}{// end catch\_run\_context.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08185}08185 namespace \mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08186}08186 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08187}08187     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08188}08188         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator <<}}( std::ostream\& os, ITransientExpression \textcolor{keyword}{const}\& expr ) -\/> std::ostream\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08189}08189             expr.streamReconstructedExpression( os );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08190}08190             \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08191}08191         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08192}08192     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08193}08193 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08194}08194     \mbox{\hyperlink{class_catch_1_1_lazy_expression_a47186c2487bd4bf871e870ba8048553a}{LazyExpression::LazyExpression}}( \textcolor{keywordtype}{bool} isNegated )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08195}08195     :   m\_isNegated( isNegated )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08196}08196     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08197}08197 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08198}08198     \mbox{\hyperlink{class_catch_1_1_lazy_expression_a47186c2487bd4bf871e870ba8048553a}{LazyExpression::LazyExpression}}( LazyExpression \textcolor{keyword}{const}\& other ) : m\_isNegated( other.m\_isNegated ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08199}08199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08200}08200     LazyExpression::operator bool()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08201}08201         \textcolor{keywordflow}{return} m\_transientExpression != \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08202}08202     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08203}08203 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08204}08204     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, LazyExpression \textcolor{keyword}{const}\& lazyExpr ) -\/> std::ostream\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08205}08205         \textcolor{keywordflow}{if}( lazyExpr.m\_isNegated )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08206}08206             os << \textcolor{stringliteral}{"{}!"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08207}08207 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08208}08208         \textcolor{keywordflow}{if}( lazyExpr ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08209}08209             \textcolor{keywordflow}{if}( lazyExpr.m\_isNegated \&\& lazyExpr.m\_transientExpression-\/>isBinaryExpression() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08210}08210                 os << \textcolor{stringliteral}{"{}("{}} << *lazyExpr.m\_transientExpression << \textcolor{stringliteral}{"{})"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08211}08211             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08212}08212                 os << *lazyExpr.m\_transientExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08213}08213         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08214}08214         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08215}08215             os << \textcolor{stringliteral}{"{}\{** error -\/ unchecked empty expression requested **\}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08216}08216         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08217}08217         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08218}08218     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08219}08219 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08220}08220     \mbox{\hyperlink{class_catch_1_1_assertion_handler_a32efbb1b56b71d758d4c2094bac1f1a9}{AssertionHandler::AssertionHandler}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08221}08221         (   StringRef \textcolor{keyword}{const}\& macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08222}08222             SourceLineInfo \textcolor{keyword}{const}\& lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08223}08223             StringRef capturedExpression,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08224}08224             \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} resultDisposition )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08225}08225     :   m\_assertionInfo\{ macroName, lineInfo, capturedExpression, resultDisposition \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08226}08226         m\_resultCapture( \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08227}08227     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08228}08228 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08229}08229     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a2ef387e567bad90ec6e4b5bf5c367388}{AssertionHandler::handleExpr}}( ITransientExpression \textcolor{keyword}{const}\& expr ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08230}08230         m\_resultCapture.handleExpr( m\_assertionInfo, expr, m\_reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08231}08231     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08232}08232     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_abdb4c180ed83ec2858b2fb87712c516d}{AssertionHandler::handleMessage}}(\mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType, StringRef \textcolor{keyword}{const}\& message) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08233}08233         m\_resultCapture.handleMessage( m\_assertionInfo, resultType, message, m\_reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08234}08234     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08235}08235 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08236}08236     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a193bb3999494c46457f3059184c6b251}{AssertionHandler::allowThrows}}() const -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08237}08237         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}()-\/>allowThrows();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08238}08238     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08239}08239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08240}08240     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a878a9eb828d8a1863c8dcb6575f6f40e}{AssertionHandler::complete}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08241}08241         \mbox{\hyperlink{class_catch_1_1_assertion_handler_a6756bd5395c0ddd28764a9fb4612d5e4}{setCompleted}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08242}08242         \textcolor{keywordflow}{if}( m\_reaction.shouldDebugBreak ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08243}08243 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08244}08244             \textcolor{comment}{// If you find your debugger stopping you here then go one level up on the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08245}08245             \textcolor{comment}{// call-\/stack for the code that caused it (typically a failed assertion)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08246}08246 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08247}08247             \textcolor{comment}{// (To go back to the test and change execution, jump over the throw, next)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08248}08248             CATCH\_BREAK\_INTO\_DEBUGGER();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08249}08249         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08250}08250         \textcolor{keywordflow}{if} (m\_reaction.shouldThrow) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08251}08251 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08252}08252             \textcolor{keywordflow}{throw} \mbox{\hyperlink{struct_catch_1_1_test_failure_exception}{Catch::TestFailureException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08253}08253 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08254}08254             \mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{CATCH\_ERROR}}( \textcolor{stringliteral}{"{}Test failure requires aborting test!"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08255}08255 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08256}08256         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08257}08257     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08258}08258     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a6756bd5395c0ddd28764a9fb4612d5e4}{AssertionHandler::setCompleted}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08259}08259         m\_completed = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08260}08260     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08261}08261 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08262}08262     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_aa2504dad6a91f3645e5f52c932c11270}{AssertionHandler::handleUnexpectedInflightException}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08263}08263         m\_resultCapture.handleUnexpectedInflightException( m\_assertionInfo, \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{Catch::translateActiveException}}(), m\_reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08264}08264     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08265}08265 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08266}08266     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_ab6caf765764a4064e90fce829eec201d}{AssertionHandler::handleExceptionThrownAsExpected}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08267}08267         m\_resultCapture.handleNonExpr(m\_assertionInfo, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}, m\_reaction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08268}08268     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08269}08269     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a51e4936e3af43b74690cedae6d2e297a}{AssertionHandler::handleExceptionNotThrownAsExpected}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08270}08270         m\_resultCapture.handleNonExpr(m\_assertionInfo, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}, m\_reaction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08271}08271     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08272}08272 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08273}08273     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a7764d0adb6ed5eeb10964f6abc02fab1}{AssertionHandler::handleUnexpectedExceptionNotThrown}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08274}08274         m\_resultCapture.handleUnexpectedExceptionNotThrown( m\_assertionInfo, m\_reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08275}08275     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08276}08276 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08277}08277     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_assertion_handler_a67a194d5518f307c4a16faa03a7f7442}{AssertionHandler::handleThrowingCallSkipped}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08278}08278         m\_resultCapture.handleNonExpr(m\_assertionInfo, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}, m\_reaction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08279}08279     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08280}08280 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08281}08281     \textcolor{comment}{// This is the overload that takes a string and infers the Equals matcher from it}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08282}08282     \textcolor{comment}{// The more general overload, that takes any string matcher, is in catch\_capture\_matchers.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08283}08283     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_aea6f8ff3b3838829d4a61694e4bc41ca}{handleExceptionMatchExpr}}( AssertionHandler\& handler, std::string \textcolor{keyword}{const}\& str, StringRef \textcolor{keyword}{const}\& matcherString  ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08284}08284         \mbox{\hyperlink{namespace_catch_aea6f8ff3b3838829d4a61694e4bc41ca}{handleExceptionMatchExpr}}( handler, \mbox{\hyperlink{namespace_catch_1_1_matchers_af8af7dfc338335ed4c788cb1b37fc59f}{Matchers::Equals}}( str ), matcherString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08285}08285     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08286}08286 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08287}08287 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08288}08288 \textcolor{comment}{// end catch\_assertionhandler.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08289}08289 \textcolor{comment}{// start catch\_assertionresult.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08290}08290 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08291}08291 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08292}08292     AssertionResultData::AssertionResultData(\mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} \_resultType, LazyExpression \textcolor{keyword}{const} \& \_lazyExpression):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08293}08293         lazyExpression(\_lazyExpression),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08294}08294         resultType(\_resultType) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08295}08295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08296}08296     std::string AssertionResultData::reconstructExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08297}08297 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08298}08298         \textcolor{keywordflow}{if}( reconstructedExpression.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08299}08299             \textcolor{keywordflow}{if}( lazyExpression ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08300}08300                 ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08301}08301                 rss << lazyExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08302}08302                 reconstructedExpression = rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08303}08303             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08304}08304         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08305}08305         \textcolor{keywordflow}{return} reconstructedExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08306}08306     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08307}08307 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08308}08308     AssertionResult::AssertionResult( AssertionInfo \textcolor{keyword}{const}\& info, AssertionResultData \textcolor{keyword}{const}\& data )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08309}08309     :   m\_info( info ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08310}08310         m\_resultData( data )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08311}08311     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08312}08312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08313}08313     \textcolor{comment}{// Result was a success}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08314}08314     \textcolor{keywordtype}{bool} AssertionResult::succeeded()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08315}08315         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{Catch::isOk}}( m\_resultData.resultType );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08316}08316     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08317}08317 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08318}08318     \textcolor{comment}{// Result was a success, or failure is suppressed}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08319}08319     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{AssertionResult::isOk}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08320}08320         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{Catch::isOk}}( m\_resultData.resultType ) || \mbox{\hyperlink{namespace_catch_ab91eb13081203d634fe48d3d2ab386d7}{shouldSuppressFailure}}( m\_info.resultDisposition );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08321}08321     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08322}08322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08323}08323     \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} AssertionResult::getResultType()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08324}08324         \textcolor{keywordflow}{return} m\_resultData.resultType;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08325}08325     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08326}08326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08327}08327     \textcolor{keywordtype}{bool} AssertionResult::hasExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08328}08328         \textcolor{keywordflow}{return} !m\_info.capturedExpression.empty();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08329}08329     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08330}08330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08331}08331     \textcolor{keywordtype}{bool} AssertionResult::hasMessage()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08332}08332         \textcolor{keywordflow}{return} !m\_resultData.message.empty();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08333}08333     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08334}08334 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08335}08335     std::string AssertionResult::getExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08336}08336         \textcolor{comment}{// Possibly overallocating by 3 characters should be basically free}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08337}08337         std::string expr; expr.reserve(m\_info.capturedExpression.size() + 3);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08338}08338         \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_a93ef4e3e307a2021ca0d41b32c0e54b0}{isFalseTest}}(m\_info.resultDisposition)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08339}08339             expr += "{}!("{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08340}08340         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08341}08341         expr += m\_info.capturedExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08342}08342         \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_a93ef4e3e307a2021ca0d41b32c0e54b0}{isFalseTest}}(m\_info.resultDisposition)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08343}08343             expr += ')';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08344}08344         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08345}08345         \textcolor{keywordflow}{return} expr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08346}08346     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08347}08347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08348}08348     std::string AssertionResult::getExpressionInMacro()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08349}08349         std::string expr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08350}08350         \textcolor{keywordflow}{if}( m\_info.macroName.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08351}08351             expr = \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(m\_info.capturedExpression);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08352}08352         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08353}08353             expr.reserve( m\_info.macroName.size() + m\_info.capturedExpression.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() + 4 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08354}08354             expr += m\_info.macroName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08355}08355             expr += "{}( "{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08356}08356             expr += m\_info.capturedExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08357}08357             expr += "{} )"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08358}08358         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08359}08359         \textcolor{keywordflow}{return} expr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08360}08360     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08361}08361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08362}08362     \textcolor{keywordtype}{bool} AssertionResult::hasExpandedExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08363}08363         \textcolor{keywordflow}{return} hasExpression() \&\& getExpandedExpression() != getExpression();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08364}08364     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08365}08365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08366}08366     std::string AssertionResult::getExpandedExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08367}08367         std::string expr = m\_resultData.reconstructExpression();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08368}08368         \textcolor{keywordflow}{return} expr.empty()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08369}08369                 ? getExpression()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08370}08370                 : expr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08371}08371     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08372}08372 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08373}08373     std::string AssertionResult::getMessage()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08374}08374         \textcolor{keywordflow}{return} m\_resultData.message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08375}08375     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08376}08376     SourceLineInfo AssertionResult::getSourceInfo()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08377}08377         \textcolor{keywordflow}{return} m\_info.lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08378}08378     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08379}08379 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08380}08380     StringRef AssertionResult::getTestMacroName()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08381}08381         \textcolor{keywordflow}{return} m\_info.macroName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08382}08382     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08383}08383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08384}08384 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08385}08385 \textcolor{comment}{// end catch\_assertionresult.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08386}08386 \textcolor{comment}{// start catch\_capture\_matchers.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08387}08387 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08388}08388 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08389}08389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08390}08390     \textcolor{keyword}{using }\mbox{\hyperlink{namespace_catch_ad347e71864a8f95073fb1ba62137f9d6}{StringMatcher}} = Matchers::Impl::MatcherBase<std::string>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08391}08391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08392}08392     \textcolor{comment}{// This is the general overload that takes a any string matcher}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08393}08393     \textcolor{comment}{// There is another overload, in catch\_assertionhandler.h/.cpp, that only takes a string and infers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08394}08394     \textcolor{comment}{// the Equals matcher (so the header does not mention matchers)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08395}08395     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_aea6f8ff3b3838829d4a61694e4bc41ca}{handleExceptionMatchExpr}}( AssertionHandler\& handler, \mbox{\hyperlink{namespace_catch_ad347e71864a8f95073fb1ba62137f9d6}{StringMatcher}} \textcolor{keyword}{const}\& matcher, StringRef \textcolor{keyword}{const}\& matcherString  ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08396}08396         std::string exceptionMessage = \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{Catch::translateActiveException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08397}08397         MatchExpr<std::string, StringMatcher const\&> expr( exceptionMessage, matcher, matcherString );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08398}08398         handler.handleExpr( expr );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08399}08399     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08400}08400 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08401}08401 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08402}08402 \textcolor{comment}{// end catch\_capture\_matchers.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08403}08403 \textcolor{comment}{// start catch\_commandline.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08404}08404 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08405}08405 \textcolor{comment}{// start catch\_commandline.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08406}08406 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08407}08407 \textcolor{comment}{// start catch\_clara.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08408}08408 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08409}08409 \textcolor{comment}{// Use Catch's value for console width (store Clara's off to the side, if present)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08410}08410 \textcolor{preprocessor}{\#ifdef CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08411}08411 \textcolor{preprocessor}{\#define CATCH\_TEMP\_CLARA\_CONFIG\_CONSOLE\_WIDTH CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08412}08412 \textcolor{preprocessor}{\#undef CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08413}08413 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08414}08414 \textcolor{preprocessor}{\#define CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH CATCH\_CONFIG\_CONSOLE\_WIDTH-\/1}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08415}08415 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08416}08416 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08417}08417 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08418}08418 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wweak-\/vtables"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08419}08419 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wexit-\/time-\/destructors"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08420}08420 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wshadow"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08421}08421 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08422}08422 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08423}08423 \textcolor{comment}{// start clara.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08424}08424 \textcolor{comment}{// Copyright 2017 Two Blue Cubes Ltd. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08425}08425 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08426}08426 \textcolor{comment}{// Distributed under the Boost Software License, Version 1.0. (See accompanying}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08427}08427 \textcolor{comment}{// file LICENSE\_1\_0.txt or copy at http://www.boost.org/LICENSE\_1\_0.txt)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08428}08428 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08429}08429 \textcolor{comment}{// See https://github.com/philsquared/Clara for more details}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08430}08430 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08431}08431 \textcolor{comment}{// Clara v1.1.5}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08432}08432 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08433}08433 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08434}08434 \textcolor{preprocessor}{\#ifndef CATCH\_CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08435}08435 \textcolor{preprocessor}{\#define CATCH\_CLARA\_CONFIG\_CONSOLE\_WIDTH 80}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08436}08436 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08437}08437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08438}08438 \textcolor{preprocessor}{\#ifndef CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08439}08439 \textcolor{preprocessor}{\#define CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH CATCH\_CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08440}08440 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08441}08441 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08442}08442 \textcolor{preprocessor}{\#ifndef CLARA\_CONFIG\_OPTIONAL\_TYPE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08443}08443 \textcolor{preprocessor}{\#ifdef \_\_has\_include}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08444}08444 \textcolor{preprocessor}{\#if \_\_has\_include(<optional>) \&\& \_\_cplusplus >= 201703L}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08445}08445 \textcolor{preprocessor}{\#include <optional>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08446}08446 \textcolor{preprocessor}{\#define CLARA\_CONFIG\_OPTIONAL\_TYPE std::optional}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08447}08447 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08448}08448 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08449}08449 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08450}08450 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08451}08451 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/ \#included from clara\_textflow.hpp -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08452}08452 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08453}08453 \textcolor{comment}{// TextFlowCpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08454}08454 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08455}08455 \textcolor{comment}{// A single-\/header library for wrapping and laying out basic text, by Phil Nash}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08456}08456 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08457}08457 \textcolor{comment}{// Distributed under the Boost Software License, Version 1.0. (See accompanying}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08458}08458 \textcolor{comment}{// file LICENSE.txt or copy at http://www.boost.org/LICENSE\_1\_0.txt)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08459}08459 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08460}08460 \textcolor{comment}{// This project is hosted at https://github.com/philsquared/textflowcpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08461}08461 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08462}08462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08463}08463 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08464}08464 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08465}08465 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08466}08466 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08467}08467 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08468}08468 \textcolor{preprocessor}{\#ifndef CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08469}08469 \textcolor{preprocessor}{\#define CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH 80}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08470}08470 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08471}08471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08472}08472 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08473}08473 \textcolor{keyword}{namespace }clara \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08474}08474 \textcolor{keyword}{namespace }TextFlow \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08475}08475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08476}08476 \textcolor{keyword}{inline} \textcolor{keyword}{auto} isWhitespace(\textcolor{keywordtype}{char} c) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08477}08477    \textcolor{keyword}{static} std::string chars = \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)n\(\backslash\)r"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08478}08478    \textcolor{keywordflow}{return} chars.find(c) != std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08479}08479 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08480}08480 \textcolor{keyword}{inline} \textcolor{keyword}{auto} isBreakableBefore(\textcolor{keywordtype}{char} c) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08481}08481    \textcolor{keyword}{static} std::string chars = \textcolor{stringliteral}{"{}[(\{<|"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08482}08482    \textcolor{keywordflow}{return} chars.find(c) != std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08483}08483 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08484}08484 \textcolor{keyword}{inline} \textcolor{keyword}{auto} isBreakableAfter(\textcolor{keywordtype}{char} c) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08485}08485    \textcolor{keyword}{static} std::string chars = \textcolor{stringliteral}{"{}])\}>.,:;*+-\/=\&/\(\backslash\)\(\backslash\)"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08486}08486    \textcolor{keywordflow}{return} chars.find(c) != std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08487}08487 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08488}08488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08489}08489 \textcolor{keyword}{class }Columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08490}08490 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08491}08491 \textcolor{keyword}{class }Column \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08492}08492    std::vector<std::string> m\_strings;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08493}08493    \textcolor{keywordtype}{size\_t} m\_width = CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08494}08494    \textcolor{keywordtype}{size\_t} m\_indent = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08495}08495    \textcolor{keywordtype}{size\_t} m\_initialIndent = std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08496}08496 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08497}08497 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08498}08498    \textcolor{keyword}{class }iterator \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08499}08499       \textcolor{keyword}{friend} Column;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08500}08500 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08501}08501       Column \textcolor{keyword}{const}\& m\_column;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08502}08502       \textcolor{keywordtype}{size\_t} m\_stringIndex = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08503}08503       \textcolor{keywordtype}{size\_t} m\_pos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08504}08504 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08505}08505       \textcolor{keywordtype}{size\_t} m\_len = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08506}08506       \textcolor{keywordtype}{size\_t} m\_end = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08507}08507       \textcolor{keywordtype}{bool} m\_suffix = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08508}08508 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08509}08509       iterator(Column \textcolor{keyword}{const}\& column, \textcolor{keywordtype}{size\_t} stringIndex)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08510}08510          : m\_column(column),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08511}08511          m\_stringIndex(stringIndex) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08512}08512 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08513}08513       \textcolor{keyword}{auto} line() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} const\& \{ \textcolor{keywordflow}{return} m\_column.m\_strings[m\_stringIndex]; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08514}08514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08515}08515       \textcolor{keyword}{auto} isBoundary(\textcolor{keywordtype}{size\_t} at) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08516}08516          assert(at > 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08517}08517          assert(at <= line().\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08518}08518 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08519}08519          \textcolor{keywordflow}{return} at == line().size() ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08520}08520             (isWhitespace(line()[at]) \&\& !isWhitespace(line()[at -\/ 1])) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08521}08521             isBreakableBefore(line()[at]) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08522}08522             isBreakableAfter(line()[at -\/ 1]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08523}08523       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08524}08524 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08525}08525       \textcolor{keywordtype}{void} calcLength() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08526}08526          assert(m\_stringIndex < m\_column.m\_strings.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08527}08527 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08528}08528          m\_suffix = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08529}08529          \textcolor{keyword}{auto} width = m\_column.m\_width -\/ indent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08530}08530          m\_end = m\_pos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08531}08531          \textcolor{keywordflow}{if} (line()[m\_pos] == \textcolor{charliteral}{'\(\backslash\)n'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08532}08532             ++m\_end;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08533}08533          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08534}08534          \textcolor{keywordflow}{while} (m\_end < line().\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() \&\& line()[m\_end] != \textcolor{charliteral}{'\(\backslash\)n'})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08535}08535             ++m\_end;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08536}08536 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08537}08537          \textcolor{keywordflow}{if} (m\_end < m\_pos + width) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08538}08538             m\_len = m\_end -\/ m\_pos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08539}08539          \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08540}08540             \textcolor{keywordtype}{size\_t} len = width;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08541}08541             \textcolor{keywordflow}{while} (len > 0 \&\& !isBoundary(m\_pos + len))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08542}08542                -\/-\/len;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08543}08543             \textcolor{keywordflow}{while} (len > 0 \&\& isWhitespace(line()[m\_pos + len -\/ 1]))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08544}08544                -\/-\/len;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08545}08545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08546}08546             \textcolor{keywordflow}{if} (len > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08547}08547                m\_len = len;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08548}08548             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08549}08549                m\_suffix = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08550}08550                m\_len = width -\/ 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08551}08551             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08552}08552          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08553}08553       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08554}08554 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08555}08555       \textcolor{keyword}{auto} indent() const -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08556}08556          \textcolor{keyword}{auto} initial = m\_pos == 0 \&\& m\_stringIndex == 0 ? m\_column.m\_initialIndent : std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08557}08557          \textcolor{keywordflow}{return} initial == std::string::npos ? m\_column.m\_indent : initial;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08558}08558       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08559}08559 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08560}08560       \textcolor{keyword}{auto} addIndentAndSuffix(std::string \textcolor{keyword}{const} \&plain) \textcolor{keyword}{const} -\/> std::string \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08561}08561          \textcolor{keywordflow}{return} std::string(indent(), \textcolor{charliteral}{' '}) + (m\_suffix ? plain + "{}-\/"{} : plain);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08562}08562       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08563}08563 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08564}08564    \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08565}08565       \textcolor{keyword}{using }difference\_type = std::ptrdiff\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08566}08566       \textcolor{keyword}{using }value\_type = std::string;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08567}08567       \textcolor{keyword}{using }pointer = value\_type * ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08568}08568       \textcolor{keyword}{using }reference = value\_type \& ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08569}08569       \textcolor{keyword}{using }iterator\_category = std::forward\_iterator\_tag;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08570}08570 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08571}08571       \textcolor{keyword}{explicit} iterator(Column \textcolor{keyword}{const}\& column) : m\_column(column) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08572}08572          assert(m\_column.m\_width > m\_column.m\_indent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08573}08573          assert(m\_column.m\_initialIndent == std::string::npos || m\_column.m\_width > m\_column.m\_initialIndent);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08574}08574          calcLength();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08575}08575          \textcolor{keywordflow}{if} (m\_len == 0)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08576}08576             m\_stringIndex++; \textcolor{comment}{// Empty string}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08577}08577       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08578}08578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08579}08579       \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}{operator *}}() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08580}08580          assert(m\_stringIndex < m\_column.m\_strings.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08581}08581          assert(m\_pos <= m\_end);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08582}08582          \textcolor{keywordflow}{return} addIndentAndSuffix(line().substr(m\_pos, m\_len));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08583}08583       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08584}08584 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08585}08585       \textcolor{keyword}{auto} operator ++() -\/> iterator\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08586}08586          m\_pos += m\_len;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08587}08587          \textcolor{keywordflow}{if} (m\_pos < line().\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() \&\& line()[m\_pos] == \textcolor{charliteral}{'\(\backslash\)n'})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08588}08588             m\_pos += 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08589}08589          \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08590}08590             \textcolor{keywordflow}{while} (m\_pos < line().\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() \&\& isWhitespace(line()[m\_pos]))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08591}08591                ++m\_pos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08592}08592 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08593}08593          \textcolor{keywordflow}{if} (m\_pos == line().\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08594}08594             m\_pos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08595}08595             ++m\_stringIndex;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08596}08596          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08597}08597          \textcolor{keywordflow}{if} (m\_stringIndex < m\_column.m\_strings.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08598}08598             calcLength();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08599}08599          \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08600}08600       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08601}08601       \textcolor{keyword}{auto} operator ++(\textcolor{keywordtype}{int}) -\/> iterator \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08602}08602          iterator prev(*\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08603}08603          operator++();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08604}08604          \textcolor{keywordflow}{return} prev;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08605}08605       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08606}08606 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08607}08607       \textcolor{keyword}{auto} operator ==(iterator \textcolor{keyword}{const}\& other) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08608}08608          \textcolor{keywordflow}{return}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08609}08609             m\_pos == other.m\_pos \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08610}08610             m\_stringIndex == other.m\_stringIndex \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08611}08611             \&m\_column == \&other.m\_column;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08612}08612       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08613}08613       \textcolor{keyword}{auto} operator !=(iterator \textcolor{keyword}{const}\& other) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08614}08614          \textcolor{keywordflow}{return} !operator==(other);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08615}08615       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08616}08616    \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08617}08617    \textcolor{keyword}{using }const\_iterator = iterator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08618}08618 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08619}08619    \textcolor{keyword}{explicit} Column(std::string \textcolor{keyword}{const}\& text) \{ m\_strings.push\_back(text); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08620}08620 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08621}08621    \textcolor{keyword}{auto} width(\textcolor{keywordtype}{size\_t} newWidth) -\/> Column\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08622}08622       assert(newWidth > 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08623}08623       m\_width = newWidth;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08624}08624       \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08625}08625    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08626}08626    \textcolor{keyword}{auto} indent(\textcolor{keywordtype}{size\_t} newIndent) -\/> Column\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08627}08627       m\_indent = newIndent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08628}08628       \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08629}08629    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08630}08630    \textcolor{keyword}{auto} initialIndent(\textcolor{keywordtype}{size\_t} newIndent) -\/> Column\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08631}08631       m\_initialIndent = newIndent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08632}08632       \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08633}08633    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08634}08634 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08635}08635    \textcolor{keyword}{auto} width() const -\/> \textcolor{keywordtype}{size\_t} \{ \textcolor{keywordflow}{return} m\_width; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08636}08636    \textcolor{keyword}{auto} begin() const -\/> iterator \{ \textcolor{keywordflow}{return} iterator(*\textcolor{keyword}{this}); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08637}08637    \textcolor{keyword}{auto} end() const -\/> iterator \{ \textcolor{keywordflow}{return} \{ *\textcolor{keyword}{this}, m\_strings.size() \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08638}08638 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08639}08639    \textcolor{keyword}{inline} \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(std::ostream\& os, Column \textcolor{keyword}{const}\& col) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08640}08640       \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08641}08641       \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} line : col) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08642}08642          \textcolor{keywordflow}{if} (first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08643}08643             first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08644}08644          \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08645}08645             os << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08646}08646          os << line;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08647}08647       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08648}08648       \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08649}08649    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08650}08650 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08651}08651    \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{operator + }}(Column \textcolor{keyword}{const}\& other)-\/>Columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08652}08652 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08653}08653    \textcolor{keyword}{auto} toString() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08654}08654       std::ostringstream oss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08655}08655       oss << *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08656}08656       \textcolor{keywordflow}{return} oss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08657}08657    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08658}08658 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08659}08659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08660}08660 \textcolor{keyword}{class }Spacer : \textcolor{keyword}{public} Column \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08661}08661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08662}08662 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08663}08663    \textcolor{keyword}{explicit} Spacer(\textcolor{keywordtype}{size\_t} spaceWidth) : Column(\textcolor{stringliteral}{"{}"{}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08664}08664       width(spaceWidth);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08665}08665    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08666}08666 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08667}08667 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08668}08668 \textcolor{keyword}{class }Columns \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08669}08669    std::vector<Column> m\_columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08670}08670 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08671}08671 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08672}08672 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08673}08673    \textcolor{keyword}{class }iterator \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08674}08674       \textcolor{keyword}{friend} Columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08675}08675       \textcolor{keyword}{struct }EndTag \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08676}08676 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08677}08677       std::vector<Column> \textcolor{keyword}{const}\& m\_columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08678}08678       std::vector<Column::iterator> m\_iterators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08679}08679       \textcolor{keywordtype}{size\_t} m\_activeIterators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08680}08680 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08681}08681       iterator(Columns \textcolor{keyword}{const}\& columns, EndTag)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08682}08682          : m\_columns(columns.m\_columns),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08683}08683          m\_activeIterators(0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08684}08684          m\_iterators.reserve(m\_columns.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08685}08685 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08686}08686          \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& col : m\_columns)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08687}08687             m\_iterators.push\_back(col.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08688}08688       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08689}08689 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08690}08690    \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08691}08691       \textcolor{keyword}{using }difference\_type = std::ptrdiff\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08692}08692       \textcolor{keyword}{using }value\_type = std::string;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08693}08693       \textcolor{keyword}{using }pointer = value\_type * ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08694}08694       \textcolor{keyword}{using }reference = value\_type \& ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08695}08695       \textcolor{keyword}{using }iterator\_category = std::forward\_iterator\_tag;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08696}08696 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08697}08697       \textcolor{keyword}{explicit} iterator(Columns \textcolor{keyword}{const}\& columns)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08698}08698          : m\_columns(columns.m\_columns),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08699}08699          m\_activeIterators(m\_columns.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08700}08700          m\_iterators.reserve(m\_columns.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08701}08701 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08702}08702          \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& col : m\_columns)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08703}08703             m\_iterators.push\_back(col.begin());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08704}08704       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08705}08705 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08706}08706       \textcolor{keyword}{auto} operator ==(iterator \textcolor{keyword}{const}\& other) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08707}08707          \textcolor{keywordflow}{return} m\_iterators == other.m\_iterators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08708}08708       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08709}08709       \textcolor{keyword}{auto} operator !=(iterator \textcolor{keyword}{const}\& other) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08710}08710          \textcolor{keywordflow}{return} m\_iterators != other.m\_iterators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08711}08711       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08712}08712       \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}{operator *}}() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08713}08713          std::string row, padding;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08714}08714 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08715}08715          \textcolor{keywordflow}{for} (\textcolor{keywordtype}{size\_t} i = 0; i < m\_columns.size(); ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08716}08716             \textcolor{keyword}{auto} width = m\_columns[i].width();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08717}08717             \textcolor{keywordflow}{if} (m\_iterators[i] != m\_columns[i].end()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08718}08718                std::string col = *m\_iterators[i];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08719}08719                row += padding + col;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08720}08720                \textcolor{keywordflow}{if} (col.size() < width)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08721}08721                   padding = std::string(width -\/ col.size(), \textcolor{charliteral}{' '});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08722}08722                \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08723}08723                   padding = \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08724}08724             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08725}08725                padding += \mbox{\hyperlink{namespacestd}{std}}::string(width, ' ');}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08726}08726             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08727}08727          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08728}08728          \textcolor{keywordflow}{return} row;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08729}08729       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08730}08730       \textcolor{keyword}{auto} operator ++() -\/> iterator\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08731}08731          \textcolor{keywordflow}{for} (\textcolor{keywordtype}{size\_t} i = 0; i < m\_columns.size(); ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08732}08732             \textcolor{keywordflow}{if} (m\_iterators[i] != m\_columns[i].end())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08733}08733                ++m\_iterators[i];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08734}08734          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08735}08735          \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08736}08736       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08737}08737       \textcolor{keyword}{auto} operator ++(\textcolor{keywordtype}{int}) -\/> iterator \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08738}08738          iterator prev(*\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08739}08739          operator++();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08740}08740          \textcolor{keywordflow}{return} prev;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08741}08741       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08742}08742    \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08743}08743    \textcolor{keyword}{using }const\_iterator = iterator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08744}08744 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08745}08745    \textcolor{keyword}{auto} begin() const -\/> iterator \{ \textcolor{keywordflow}{return} iterator(*\textcolor{keyword}{this}); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08746}08746    \textcolor{keyword}{auto} end() const -\/> iterator \{ \textcolor{keywordflow}{return} \{ *\textcolor{keyword}{this}, iterator::EndTag() \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08747}08747 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08748}08748    \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator += }}(Column \textcolor{keyword}{const}\& col) -\/> Columns\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08749}08749       m\_columns.push\_back(col);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08750}08750       \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08751}08751    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08752}08752    \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{operator + }}(Column \textcolor{keyword}{const}\& col) -\/> Columns \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08753}08753       Columns combined = *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08754}08754       combined += col;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08755}08755       \textcolor{keywordflow}{return} combined;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08756}08756    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08757}08757 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08758}08758    \textcolor{keyword}{inline} \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(std::ostream\& os, Columns \textcolor{keyword}{const}\& cols) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08759}08759 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08760}08760       \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08761}08761       \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} line : cols) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08762}08762          \textcolor{keywordflow}{if} (first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08763}08763             first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08764}08764          \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08765}08765             os << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08766}08766          os << line;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08767}08767       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08768}08768       \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08769}08769    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08770}08770 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08771}08771    \textcolor{keyword}{auto} toString() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08772}08772       std::ostringstream oss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08773}08773       oss << *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08774}08774       \textcolor{keywordflow}{return} oss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08775}08775    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08776}08776 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08777}08777 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08778}08778 \textcolor{keyword}{inline} \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{Column::operator + }}(Column \textcolor{keyword}{const}\& other) -\/> Columns \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08779}08779    Columns cols;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08780}08780    cols += *this;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08781}08781    cols += other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08782}08782    \textcolor{keywordflow}{return} cols;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08783}08783 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08784}08784 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08785}08785 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08786}08786 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08787}08787 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08788}08788 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08789}08789 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/ end of \#include from clara\_textflow.hpp -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08790}08790 \textcolor{comment}{// ........... back in clara.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08791}08791 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08792}08792 \textcolor{preprocessor}{\#include <cctype>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08793}08793 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08794}08794 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08795}08795 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08796}08796 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08797}08797 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08798}08798 \textcolor{preprocessor}{\#if !defined(CATCH\_PLATFORM\_WINDOWS) \&\& ( defined(WIN32) || defined(\_\_WIN32\_\_) || defined(\_WIN32) || defined(\_MSC\_VER) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08799}08799 \textcolor{preprocessor}{\#define CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08800}08800 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08801}08801 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08802}08802 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{ \textcolor{keyword}{namespace }clara \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08803}08803 \textcolor{keyword}{namespace }detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08804}08804 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08805}08805     \textcolor{comment}{// Traits for extracting arg and return type of lambdas (for single argument lambdas)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08806}08806     \textcolor{keyword}{template}<\textcolor{keyword}{typename} L>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08807}08807     \textcolor{keyword}{struct }UnaryLambdaTraits : UnaryLambdaTraits<decltype( \&L::operator() )> \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08808}08808 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08809}08809     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ClassT, \textcolor{keyword}{typename} ReturnT, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08810}08810     \textcolor{keyword}{struct }UnaryLambdaTraits<ReturnT( ClassT::* )( Args... ) const> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08811}08811         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{bool} isValid = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08812}08812     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08813}08813 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08814}08814     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ClassT, \textcolor{keyword}{typename} ReturnT, \textcolor{keyword}{typename} ArgT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08815}08815     \textcolor{keyword}{struct }UnaryLambdaTraits<ReturnT( ClassT::* )( ArgT ) const> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08816}08816         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{bool} isValid = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08817}08817         \textcolor{keyword}{using }ArgType = \textcolor{keyword}{typename} std::remove\_const<typename std::remove\_reference<ArgT>::type>::type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08818}08818         \textcolor{keyword}{using }ReturnType = ReturnT;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08819}08819     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08820}08820 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08821}08821     \textcolor{keyword}{class }TokenStream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08822}08822 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08823}08823     \textcolor{comment}{// Transport for raw args (copied from main args, or supplied via init list for testing)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08824}08824     \textcolor{keyword}{class }Args \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08825}08825         \textcolor{keyword}{friend} TokenStream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08826}08826         std::string m\_exeName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08827}08827         std::vector<std::string> m\_args;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08828}08828 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08829}08829     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08830}08830         Args( \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \textcolor{keyword}{const}* argv )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08831}08831             : m\_exeName(argv[0]),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08832}08832               m\_args(argv + 1, argv + argc) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08833}08833 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08834}08834         Args( std::initializer\_list<std::string> args )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08835}08835         :   m\_exeName( *args.begin() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08836}08836             m\_args( args.begin()+1, args.end() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08837}08837         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08838}08838 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08839}08839         \textcolor{keyword}{auto} exeName() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08840}08840             \textcolor{keywordflow}{return} m\_exeName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08841}08841         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08842}08842     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08843}08843 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08844}08844     \textcolor{comment}{// Wraps a token coming from a token stream. These may not directly correspond to strings as a single string}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08845}08845     \textcolor{comment}{// may encode an option + its argument if the : or = form is used}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08846}08846     \textcolor{keyword}{enum class} TokenType \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08847}08847         Option, Argument}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08848}08848     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08849}08849     \textcolor{keyword}{struct }Token \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08850}08850         TokenType type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08851}08851         std::string token;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08852}08852     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08853}08853 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08854}08854     \textcolor{keyword}{inline} \textcolor{keyword}{auto} isOptPrefix( \textcolor{keywordtype}{char} c ) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08855}08855         \textcolor{keywordflow}{return} c == \textcolor{charliteral}{'-\/'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08856}08856 \textcolor{preprocessor}{\#ifdef CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08857}08857             || c == \textcolor{charliteral}{'/'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08858}08858 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08859}08859         ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08860}08860     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08861}08861 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08862}08862     \textcolor{comment}{// Abstracts iterators into args as a stream of tokens, with option arguments uniformly handled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08863}08863     \textcolor{keyword}{class }TokenStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08864}08864         \textcolor{keyword}{using }Iterator = std::vector<std::string>::const\_iterator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08865}08865         Iterator it;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08866}08866         Iterator itEnd;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08867}08867         std::vector<Token> m\_tokenBuffer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08868}08868 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08869}08869         \textcolor{keywordtype}{void} loadBuffer() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08870}08870             m\_tokenBuffer.resize( 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08871}08871 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08872}08872             \textcolor{comment}{// Skip any empty strings}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08873}08873             \textcolor{keywordflow}{while}( it != itEnd \&\& it-\/>empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08874}08874                 ++it;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08875}08875 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08876}08876             \textcolor{keywordflow}{if}( it != itEnd ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08877}08877                 \textcolor{keyword}{auto} \textcolor{keyword}{const} \&next = *it;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08878}08878                 \textcolor{keywordflow}{if}( isOptPrefix( next[0] ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08879}08879                     \textcolor{keyword}{auto} delimiterPos = next.find\_first\_of( \textcolor{stringliteral}{"{} :="{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08880}08880                     \textcolor{keywordflow}{if}( delimiterPos != std::string::npos ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08881}08881                         m\_tokenBuffer.push\_back( \{ TokenType::Option, next.substr( 0, delimiterPos ) \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08882}08882                         m\_tokenBuffer.push\_back( \{ TokenType::Argument, next.substr( delimiterPos + 1 ) \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08883}08883                     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08884}08884                         \textcolor{keywordflow}{if}( next[1] != \textcolor{charliteral}{'-\/'} \&\& next.size() > 2 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08885}08885                             std::string opt = \textcolor{stringliteral}{"{}-\/ "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08886}08886                             \textcolor{keywordflow}{for}( \textcolor{keywordtype}{size\_t} i = 1; i < next.size(); ++i ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08887}08887                                 opt[1] = next[i];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08888}08888                                 m\_tokenBuffer.push\_back( \{ TokenType::Option, opt \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08889}08889                             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08890}08890                         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08891}08891                             m\_tokenBuffer.push\_back( \{ TokenType::Option, next \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08892}08892                         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08893}08893                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08894}08894                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08895}08895                     m\_tokenBuffer.push\_back( \{ TokenType::Argument, next \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08896}08896                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08897}08897             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08898}08898         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08899}08899 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08900}08900     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08901}08901         \textcolor{keyword}{explicit} TokenStream( Args \textcolor{keyword}{const} \&args ) : TokenStream( args.m\_args.begin(), args.m\_args.end() ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08902}08902 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08903}08903         TokenStream( Iterator it, Iterator itEnd ) : it( it ), itEnd( itEnd ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08904}08904             loadBuffer();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08905}08905         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08906}08906 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08907}08907         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08908}08908             \textcolor{keywordflow}{return} !m\_tokenBuffer.empty() || it != itEnd;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08909}08909         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08910}08910 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08911}08911         \textcolor{keyword}{auto} count() const -\/> \textcolor{keywordtype}{size\_t} \{ \textcolor{keywordflow}{return} m\_tokenBuffer.size() + (itEnd -\/ it); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08912}08912 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08913}08913         \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}{operator*}}() const -\/> Token \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08914}08914             assert( !m\_tokenBuffer.empty() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08915}08915             \textcolor{keywordflow}{return} m\_tokenBuffer.front();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08916}08916         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08917}08917 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08918}08918         \textcolor{keyword}{auto} operator-\/>() const -\/> Token const * \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08919}08919             assert( !m\_tokenBuffer.empty() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08920}08920             \textcolor{keywordflow}{return} \&m\_tokenBuffer.front();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08921}08921         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08922}08922 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08923}08923         \textcolor{keyword}{auto} operator++() -\/> TokenStream \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08924}08924             \textcolor{keywordflow}{if}( m\_tokenBuffer.size() >= 2 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08925}08925                 m\_tokenBuffer.erase( m\_tokenBuffer.begin() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08926}08926             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08927}08927                 \textcolor{keywordflow}{if}( it != itEnd )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08928}08928                     ++it;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08929}08929                 loadBuffer();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08930}08930             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08931}08931             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08932}08932         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08933}08933     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08934}08934 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08935}08935     \textcolor{keyword}{class }ResultBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08936}08936     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08937}08937         \textcolor{keyword}{enum} Type \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08938}08938             Ok, LogicError, RuntimeError}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08939}08939         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08940}08940 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08941}08941     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08942}08942         ResultBase( Type type ) : m\_type( type ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08943}08943         \textcolor{keyword}{virtual} \string~ResultBase() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08944}08944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08945}08945         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} enforceOk() \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08946}08946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08947}08947         Type m\_type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08948}08948     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08949}08949 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08950}08950     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08951}08951     \textcolor{keyword}{class }ResultValueBase : \textcolor{keyword}{public} ResultBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08952}08952     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08953}08953         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}() const -\/> T const \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08954}08954             enforceOk();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08955}08955             \textcolor{keywordflow}{return} m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08956}08956         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08957}08957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08958}08958     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08959}08959         ResultValueBase( Type type ) : ResultBase( type ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08960}08960 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08961}08961         ResultValueBase( ResultValueBase \textcolor{keyword}{const} \&other ) : ResultBase( other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08962}08962             \textcolor{keywordflow}{if}( m\_type == ResultBase::Ok )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08963}08963                 \textcolor{keyword}{new}( \&m\_value ) T( other.m\_value );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08964}08964         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08965}08965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08966}08966         ResultValueBase( Type, T \textcolor{keyword}{const} \&\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) : ResultBase( Ok ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08967}08967             \textcolor{keyword}{new}( \&m\_value ) T( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08968}08968         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08969}08969 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08970}08970         \textcolor{keyword}{auto} operator=( ResultValueBase \textcolor{keyword}{const} \&other ) -\/> ResultValueBase \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08971}08971             \textcolor{keywordflow}{if}( m\_type == ResultBase::Ok )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08972}08972                 m\_value.\string~T();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08973}08973             ResultBase::operator=(other);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08974}08974             \textcolor{keywordflow}{if}( m\_type == ResultBase::Ok )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08975}08975                 \textcolor{keyword}{new}( \&m\_value ) T( other.m\_value );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08976}08976             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08977}08977         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08978}08978 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08979}08979         \string~ResultValueBase()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08980}08980             \textcolor{keywordflow}{if}( m\_type == Ok )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08981}08981                 m\_value.\string~T();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08982}08982         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08983}08983 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08984}08984         \textcolor{keyword}{union }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08985}08985             T m\_value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08986}08986         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08987}08987     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08988}08988 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08989}08989     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08990}08990     \textcolor{keyword}{class }ResultValueBase<void> : \textcolor{keyword}{public} ResultBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08991}08991     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08992}08992         \textcolor{keyword}{using }ResultBase::ResultBase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08993}08993     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08994}08994 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08995}08995     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T = \textcolor{keywordtype}{void}>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08996}08996     \textcolor{keyword}{class }BasicResult : \textcolor{keyword}{public} ResultValueBase<T> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08997}08997     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08998}08998         \textcolor{keyword}{template}<\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l08999}08999         \textcolor{keyword}{explicit} BasicResult( BasicResult<U> \textcolor{keyword}{const} \&other )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09000}09000         :   ResultValueBase<T>( other.type() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09001}09001             m\_errorMessage( other.errorMessage() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09002}09002         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09003}09003             assert( type() != ResultBase::Ok );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09004}09004         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09005}09005 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09006}09006         \textcolor{keyword}{template}<\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09007}09007         \textcolor{keyword}{static} \textcolor{keyword}{auto} ok( U \textcolor{keyword}{const} \&\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) -\/> BasicResult \{ \textcolor{keywordflow}{return} \{ ResultBase::Ok, \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09008}09008         \textcolor{keyword}{static} \textcolor{keyword}{auto} ok() -\/> BasicResult \{ \textcolor{keywordflow}{return} \{ ResultBase::Ok \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09009}09009         \textcolor{keyword}{static} \textcolor{keyword}{auto} logicError( std::string \textcolor{keyword}{const} \&message ) -\/> BasicResult \{ \textcolor{keywordflow}{return} \{ ResultBase::LogicError, message \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09010}09010         \textcolor{keyword}{static} \textcolor{keyword}{auto} runtimeError( std::string \textcolor{keyword}{const} \&message ) -\/> BasicResult \{ \textcolor{keywordflow}{return} \{ ResultBase::RuntimeError, message \}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09011}09011 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09012}09012         \textcolor{keyword}{explicit} \textcolor{keyword}{operator} bool()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_type == ResultBase::Ok; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09013}09013         \textcolor{keyword}{auto} type() const -\/> ResultBase::Type \{ \textcolor{keywordflow}{return} m\_type; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09014}09014         \textcolor{keyword}{auto} errorMessage() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{ \textcolor{keywordflow}{return} m\_errorMessage; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09015}09015 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09016}09016     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09017}09017         \textcolor{keywordtype}{void} enforceOk()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09018}09018 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09019}09019             \textcolor{comment}{// Errors shouldn't reach this point, but if they do}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09020}09020             \textcolor{comment}{// the actual error message will be in m\_errorMessage}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09021}09021             assert( m\_type != ResultBase::LogicError );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09022}09022             assert( m\_type != ResultBase::RuntimeError );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09023}09023             \textcolor{keywordflow}{if}( m\_type != ResultBase::Ok )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09024}09024                 std::abort();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09025}09025         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09026}09026 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09027}09027         std::string m\_errorMessage; \textcolor{comment}{// Only populated if resultType is an error}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09028}09028 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09029}09029         BasicResult( ResultBase::Type type, std::string \textcolor{keyword}{const} \&message )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09030}09030         :   ResultValueBase<T>(type),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09031}09031             m\_errorMessage(message)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09032}09032         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09033}09033             assert( m\_type != ResultBase::Ok );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09034}09034         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09035}09035 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09036}09036         \textcolor{keyword}{using }ResultValueBase<T>::ResultValueBase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09037}09037         \textcolor{keyword}{using }ResultBase::m\_type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09038}09038     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09039}09039 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09040}09040     \textcolor{keyword}{enum class} ParseResultType \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09041}09041         Matched, NoMatch, ShortCircuitAll, ShortCircuitSame}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09042}09042     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09043}09043 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09044}09044     \textcolor{keyword}{class }ParseState \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09045}09045     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09046}09046 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09047}09047         ParseState( ParseResultType type, TokenStream \textcolor{keyword}{const} \&remainingTokens )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09048}09048         : m\_type(type),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09049}09049           m\_remainingTokens( remainingTokens )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09050}09050         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09051}09051 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09052}09052         \textcolor{keyword}{auto} type() const -\/> ParseResultType \{ \textcolor{keywordflow}{return} m\_type; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09053}09053         \textcolor{keyword}{auto} remainingTokens() const -\/> TokenStream \{ \textcolor{keywordflow}{return} m\_remainingTokens; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09054}09054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09055}09055     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09056}09056         ParseResultType m\_type;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09057}09057         TokenStream m\_remainingTokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09058}09058     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09059}09059 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09060}09060     \textcolor{keyword}{using }Result = BasicResult<void>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09061}09061     \textcolor{keyword}{using }ParserResult = BasicResult<ParseResultType>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09062}09062     \textcolor{keyword}{using }InternalParseResult = BasicResult<ParseState>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09063}09063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09064}09064     \textcolor{keyword}{struct }HelpColumns \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09065}09065         std::string left;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09066}09066         std::string right;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09067}09067     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09068}09068 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09069}09069     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09070}09070     \textcolor{keyword}{inline} \textcolor{keyword}{auto} convertInto( std::string \textcolor{keyword}{const} \&source, T\& target ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09071}09071         std::stringstream ss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09072}09072         ss << source;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09073}09073         ss >> target;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09074}09074         \textcolor{keywordflow}{if}( ss.fail() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09075}09075             \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unable to convert '"{}} + source + \textcolor{stringliteral}{"{}' to destination type"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09076}09076         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09077}09077             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09078}09078     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09079}09079     \textcolor{keyword}{inline} \textcolor{keyword}{auto} convertInto( std::string \textcolor{keyword}{const} \&source, std::string\& target ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09080}09080         target = source;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09081}09081         \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09082}09082     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09083}09083     \textcolor{keyword}{inline} \textcolor{keyword}{auto} convertInto( std::string \textcolor{keyword}{const} \&source, \textcolor{keywordtype}{bool} \&target ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09084}09084         std::string srcLC = source;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09085}09085         \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}( srcLC.begin(), srcLC.end(), srcLC.begin(), []( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c ) \{ return static\_cast<char>( std::tolower(c) ); \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09086}09086         \textcolor{keywordflow}{if} (srcLC == \textcolor{stringliteral}{"{}y"{}} || srcLC == \textcolor{stringliteral}{"{}1"{}} || srcLC == \textcolor{stringliteral}{"{}true"{}} || srcLC == \textcolor{stringliteral}{"{}yes"{}} || srcLC == \textcolor{stringliteral}{"{}on"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09087}09087             target = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09088}09088         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (srcLC == \textcolor{stringliteral}{"{}n"{}} || srcLC == \textcolor{stringliteral}{"{}0"{}} || srcLC == \textcolor{stringliteral}{"{}false"{}} || srcLC == \textcolor{stringliteral}{"{}no"{}} || srcLC == \textcolor{stringliteral}{"{}off"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09089}09089             target = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09090}09090         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09091}09091             \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Expected a boolean value but did not recognise: '"{}} + source + \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09092}09092         \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09093}09093     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09094}09094 \textcolor{preprocessor}{\#ifdef CLARA\_CONFIG\_OPTIONAL\_TYPE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09095}09095     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09096}09096     \textcolor{keyword}{inline} \textcolor{keyword}{auto} convertInto( std::string \textcolor{keyword}{const} \&source, CLARA\_CONFIG\_OPTIONAL\_TYPE<T>\& target ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09097}09097         T temp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09098}09098         \textcolor{keyword}{auto} result = convertInto( source, temp );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09099}09099         \textcolor{keywordflow}{if}( result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09100}09100             target = std::move(temp);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09101}09101         \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09102}09102     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09103}09103 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CLARA\_CONFIG\_OPTIONAL\_TYPE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09104}09104 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09105}09105     \textcolor{keyword}{struct }NonCopyable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09106}09106         NonCopyable() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09107}09107         NonCopyable( NonCopyable \textcolor{keyword}{const} \& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09108}09108         NonCopyable( NonCopyable \&\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09109}09109         NonCopyable \&operator=( NonCopyable \textcolor{keyword}{const} \& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09110}09110         NonCopyable \&operator=( NonCopyable \&\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09111}09111     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09112}09112 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09113}09113     \textcolor{keyword}{struct }BoundRef : NonCopyable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09114}09114         \textcolor{keyword}{virtual} \string~BoundRef() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09115}09115         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} isContainer() const -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09116}09116         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} isFlag() const -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09117}09117     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09118}09118     \textcolor{keyword}{struct }BoundValueRefBase : BoundRef \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09119}09119         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} setValue( std::string \textcolor{keyword}{const} \&arg ) -\/> ParserResult = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09120}09120     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09121}09121     \textcolor{keyword}{struct }BoundFlagRefBase : BoundRef \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09122}09122         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} setFlag( \textcolor{keywordtype}{bool} flag ) -\/> ParserResult = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09123}09123         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} isFlag() const -\/> \textcolor{keywordtype}{bool} \{ \textcolor{keywordflow}{return} \textcolor{keyword}{true}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09124}09124     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09125}09125 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09126}09126     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09127}09127     \textcolor{keyword}{struct }BoundValueRef : BoundValueRefBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09128}09128         T \&m\_ref;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09129}09129 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09130}09130         \textcolor{keyword}{explicit} BoundValueRef( T \&ref ) : m\_ref( ref ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09131}09131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09132}09132         \textcolor{keyword}{auto} setValue( std::string \textcolor{keyword}{const} \&arg ) -\/> ParserResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09133}09133             \textcolor{keywordflow}{return} convertInto( arg, m\_ref );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09134}09134         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09135}09135     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09136}09136 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09137}09137     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09138}09138     \textcolor{keyword}{struct }BoundValueRef<\mbox{\hyperlink{namespacestd}{std}}::vector<T>> : BoundValueRefBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09139}09139         std::vector<T> \&m\_ref;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09140}09140 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09141}09141         \textcolor{keyword}{explicit} BoundValueRef( std::vector<T> \&ref ) : m\_ref( ref ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09142}09142 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09143}09143         \textcolor{keyword}{auto} isContainer() const -\/> \textcolor{keywordtype}{bool}\textcolor{keyword}{ override }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{true}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09144}09144 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09145}09145         \textcolor{keyword}{auto} setValue( std::string \textcolor{keyword}{const} \&arg ) -\/> ParserResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09146}09146             T temp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09147}09147             \textcolor{keyword}{auto} result = convertInto( arg, temp );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09148}09148             \textcolor{keywordflow}{if}( result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09149}09149                 m\_ref.push\_back( temp );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09150}09150             \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09151}09151         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09152}09152     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09153}09153 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09154}09154     \textcolor{keyword}{struct }BoundFlagRef : BoundFlagRefBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09155}09155         \textcolor{keywordtype}{bool} \&m\_ref;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09156}09156 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09157}09157         \textcolor{keyword}{explicit} BoundFlagRef( \textcolor{keywordtype}{bool} \&ref ) : m\_ref( ref ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09158}09158 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09159}09159         \textcolor{keyword}{auto} setFlag( \textcolor{keywordtype}{bool} flag ) -\/> ParserResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09160}09160             m\_ref = flag;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09161}09161             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09162}09162         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09163}09163     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09164}09164 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09165}09165     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ReturnType>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09166}09166     \textcolor{keyword}{struct }LambdaInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09167}09167         \textcolor{keyword}{static\_assert}( \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{std::is\_same<ReturnType, ParserResult>::value}}, \textcolor{stringliteral}{"{}Lambda must return void or clara::ParserResult"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09168}09168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09169}09169         \textcolor{keyword}{template}<\textcolor{keyword}{typename} L, \textcolor{keyword}{typename} ArgType>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09170}09170         \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}( L \textcolor{keyword}{const} \&lambda, ArgType \textcolor{keyword}{const} \&arg ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09171}09171             \textcolor{keywordflow}{return} lambda( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09172}09172         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09173}09173     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09174}09174 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09175}09175     \textcolor{keyword}{template}<>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09176}09176     \textcolor{keyword}{struct }LambdaInvoker<void> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09177}09177         \textcolor{keyword}{template}<\textcolor{keyword}{typename} L, \textcolor{keyword}{typename} ArgType>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09178}09178         \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}( L \textcolor{keyword}{const} \&lambda, ArgType \textcolor{keyword}{const} \&arg ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09179}09179             lambda( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09180}09180             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09181}09181         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09182}09182     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09183}09183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09184}09184     \textcolor{keyword}{template}<\textcolor{keyword}{typename} ArgType, \textcolor{keyword}{typename} L>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09185}09185     \textcolor{keyword}{inline} \textcolor{keyword}{auto} invokeLambda( L \textcolor{keyword}{const} \&lambda, std::string \textcolor{keyword}{const} \&arg ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09186}09186         ArgType temp\{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09187}09187         \textcolor{keyword}{auto} result = convertInto( arg, temp );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09188}09188         \textcolor{keywordflow}{return} !result}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09189}09189            ? result}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09190}09190            : LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{::invoke}}( lambda, temp );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09191}09191     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09192}09192 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09193}09193     \textcolor{keyword}{template}<\textcolor{keyword}{typename} L>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09194}09194     \textcolor{keyword}{struct }BoundLambda : BoundValueRefBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09195}09195         L m\_lambda;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09196}09196 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09197}09197         \textcolor{keyword}{static\_assert}( UnaryLambdaTraits<L>::isValid, \textcolor{stringliteral}{"{}Supplied lambda must take exactly one argument"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09198}09198         \textcolor{keyword}{explicit} BoundLambda( L \textcolor{keyword}{const} \&lambda ) : m\_lambda( lambda ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09199}09199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09200}09200         \textcolor{keyword}{auto} setValue( std::string \textcolor{keyword}{const} \&arg ) -\/> ParserResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09201}09201             \textcolor{keywordflow}{return} invokeLambda<typename UnaryLambdaTraits<L>::ArgType>( m\_lambda, arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09202}09202         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09203}09203     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09204}09204 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09205}09205     \textcolor{keyword}{template}<\textcolor{keyword}{typename} L>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09206}09206     \textcolor{keyword}{struct }BoundFlagLambda : BoundFlagRefBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09207}09207         L m\_lambda;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09208}09208 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09209}09209         \textcolor{keyword}{static\_assert}( UnaryLambdaTraits<L>::isValid, \textcolor{stringliteral}{"{}Supplied lambda must take exactly one argument"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09210}09210         \textcolor{keyword}{static\_assert}( std::is\_same<typename UnaryLambdaTraits<L>::ArgType, \textcolor{keywordtype}{bool}>\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{::value}}, \textcolor{stringliteral}{"{}flags must be boolean"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09211}09211 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09212}09212         \textcolor{keyword}{explicit} BoundFlagLambda( L \textcolor{keyword}{const} \&lambda ) : m\_lambda( lambda ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09213}09213 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09214}09214         \textcolor{keyword}{auto} setFlag( \textcolor{keywordtype}{bool} flag ) -\/> ParserResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09215}09215             \textcolor{keywordflow}{return} LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{::invoke}}( m\_lambda, flag );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09216}09216         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09217}09217     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09218}09218 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09219}09219     \textcolor{keyword}{enum class} Optionality \{ Optional, Required \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09220}09220 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09221}09221     \textcolor{keyword}{struct }Parser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09222}09222 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09223}09223     \textcolor{keyword}{class }ParserBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09224}09224     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09225}09225         \textcolor{keyword}{virtual} \string~ParserBase() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09226}09226         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} validate() const -\/> Result \{ \textcolor{keywordflow}{return} Result::ok(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09227}09227         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} parse( std::string \textcolor{keyword}{const}\& exeName, TokenStream \textcolor{keyword}{const} \&tokens) \textcolor{keyword}{const} -\/> InternalParseResult  = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09228}09228         \textcolor{keyword}{virtual} \textcolor{keyword}{auto} cardinality() const -\/> \textcolor{keywordtype}{size\_t} \{ \textcolor{keywordflow}{return} 1; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09229}09229 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09230}09230         \textcolor{keyword}{auto} parse( Args \textcolor{keyword}{const} \&args ) \textcolor{keyword}{const} -\/> InternalParseResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09231}09231             \textcolor{keywordflow}{return} parse( args.exeName(), TokenStream( args ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09232}09232         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09233}09233     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09234}09234 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09235}09235     \textcolor{keyword}{template}<\textcolor{keyword}{typename} DerivedT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09236}09236     \textcolor{keyword}{class }ComposableParserImpl : \textcolor{keyword}{public} ParserBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09237}09237     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09238}09238         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09239}09239         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator|}}( T \textcolor{keyword}{const} \&other ) \textcolor{keyword}{const} -\/> Parser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09240}09240 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09241}09241       \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09242}09242         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{operator+}}( T \textcolor{keyword}{const} \&other ) \textcolor{keyword}{const} -\/> Parser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09243}09243     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09244}09244 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09245}09245     \textcolor{comment}{// Common code and state for Args and Opts}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09246}09246     \textcolor{keyword}{template}<\textcolor{keyword}{typename} DerivedT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09247}09247     \textcolor{keyword}{class }ParserRefImpl : \textcolor{keyword}{public} ComposableParserImpl<DerivedT> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09248}09248     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09249}09249         Optionality m\_optionality = Optionality::Optional;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09250}09250         std::shared\_ptr<BoundRef> m\_ref;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09251}09251         std::string m\_hint;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09252}09252         std::string m\_description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09253}09253 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09254}09254         \textcolor{keyword}{explicit} ParserRefImpl( std::shared\_ptr<BoundRef> \textcolor{keyword}{const} \&ref ) : m\_ref( ref ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09255}09255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09256}09256     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09257}09257         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09258}09258         ParserRefImpl( T \&ref, std::string \textcolor{keyword}{const} \&hint )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09259}09259         :   m\_ref( \mbox{\hyperlink{namespacestd}{std}}::make\_shared<BoundValueRef<T>>( ref ) ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09260}09260             m\_hint( hint )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09261}09261         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09262}09262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09263}09263         \textcolor{keyword}{template}<\textcolor{keyword}{typename} LambdaT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09264}09264         ParserRefImpl( LambdaT \textcolor{keyword}{const} \&ref, std::string \textcolor{keyword}{const} \&hint )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09265}09265         :   m\_ref( \mbox{\hyperlink{namespacestd}{std}}::make\_shared<BoundLambda<LambdaT>>( ref ) ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09266}09266             m\_hint(hint)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09267}09267         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09268}09268 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09269}09269         \textcolor{keyword}{auto} operator()( std::string \textcolor{keyword}{const} \&description ) -\/> DerivedT \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09270}09270             m\_description = description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09271}09271             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}DerivedT \&\textcolor{keyword}{>}( *this );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09272}09272         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09273}09273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09274}09274         \textcolor{keyword}{auto} optional() -\/> DerivedT \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09275}09275             m\_optionality = Optionality::Optional;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09276}09276             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}DerivedT \&\textcolor{keyword}{>}( *this );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09277}09277         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09278}09278 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09279}09279         \textcolor{keyword}{auto} required() -\/> DerivedT \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09280}09280             m\_optionality = Optionality::Required;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09281}09281             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}DerivedT \&\textcolor{keyword}{>}( *this );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09282}09282         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09283}09283 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09284}09284         \textcolor{keyword}{auto} isOptional() const -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09285}09285             \textcolor{keywordflow}{return} m\_optionality == Optionality::Optional;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09286}09286         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09287}09287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09288}09288         \textcolor{keyword}{auto} cardinality() const -\/> \textcolor{keywordtype}{size\_t}\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09289}09289             \textcolor{keywordflow}{if}( m\_ref-\/>isContainer() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09290}09290                 \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09291}09291             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09292}09292                 \textcolor{keywordflow}{return} 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09293}09293         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09294}09294 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09295}09295         \textcolor{keyword}{auto} hint() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{ \textcolor{keywordflow}{return} m\_hint; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09296}09296     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09297}09297 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09298}09298     \textcolor{keyword}{class }ExeName : \textcolor{keyword}{public} ComposableParserImpl<ExeName> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09299}09299         std::shared\_ptr<std::string> m\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09300}09300         std::shared\_ptr<BoundValueRefBase> m\_ref;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09301}09301 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09302}09302         \textcolor{keyword}{template}<\textcolor{keyword}{typename} LambdaT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09303}09303         \textcolor{keyword}{static} \textcolor{keyword}{auto} makeRef(LambdaT \textcolor{keyword}{const} \&lambda) -\/> std::shared\_ptr<BoundValueRefBase> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09304}09304             \textcolor{keywordflow}{return} std::make\_shared<BoundLambda<LambdaT>>( lambda) ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09305}09305         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09306}09306 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09307}09307     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09308}09308         ExeName() : m\_name( \mbox{\hyperlink{namespacestd}{std}}::make\_shared<\mbox{\hyperlink{namespacestd}{std}}::string>( \textcolor{stringliteral}{"{}<executable>"{}} ) ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09309}09309 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09310}09310         \textcolor{keyword}{explicit} ExeName( std::string \&ref ) : ExeName() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09311}09311             m\_ref = std::make\_shared<BoundValueRef<std::string>>( ref );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09312}09312         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09313}09313 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09314}09314         \textcolor{keyword}{template}<\textcolor{keyword}{typename} LambdaT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09315}09315         \textcolor{keyword}{explicit} ExeName( LambdaT \textcolor{keyword}{const}\& lambda ) : ExeName() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09316}09316             m\_ref = std::make\_shared<BoundLambda<LambdaT>>( lambda );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09317}09317         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09318}09318 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09319}09319         \textcolor{comment}{// The exe name is not parsed out of the normal tokens, but is handled specially}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09320}09320         \textcolor{keyword}{auto} parse( std::string \textcolor{keyword}{const}\&, TokenStream \textcolor{keyword}{const} \&tokens ) \textcolor{keyword}{const} -\/> InternalParseResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09321}09321             \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( ParseResultType::NoMatch, tokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09322}09322         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09323}09323 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09324}09324         \textcolor{keyword}{auto} name() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{ \textcolor{keywordflow}{return} *m\_name; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09325}09325         \textcolor{keyword}{auto} set( std::string \textcolor{keyword}{const}\& newName ) -\/> ParserResult \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09326}09326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09327}09327             \textcolor{keyword}{auto} lastSlash = newName.find\_last\_of( \textcolor{stringliteral}{"{}\(\backslash\)\(\backslash\)/"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09328}09328             \textcolor{keyword}{auto} filename = ( lastSlash == std::string::npos )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09329}09329                     ? newName}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09330}09330                     : newName.substr( lastSlash+1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09331}09331 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09332}09332             *m\_name = filename;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09333}09333             \textcolor{keywordflow}{if}( m\_ref )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09334}09334                 \textcolor{keywordflow}{return} m\_ref-\/>setValue( filename );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09335}09335             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09336}09336                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09337}09337         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09338}09338     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09339}09339 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09340}09340     \textcolor{keyword}{class }Arg : \textcolor{keyword}{public} ParserRefImpl<Arg> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09341}09341     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09342}09342         \textcolor{keyword}{using }ParserRefImpl::ParserRefImpl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09343}09343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09344}09344         \textcolor{keyword}{auto} parse( std::string \textcolor{keyword}{const} \&, TokenStream \textcolor{keyword}{const} \&tokens ) \textcolor{keyword}{const} -\/> InternalParseResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09345}09345             \textcolor{keyword}{auto} validationResult = validate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09346}09346             \textcolor{keywordflow}{if}( !validationResult )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09347}09347                 \textcolor{keywordflow}{return} InternalParseResult( validationResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09348}09348 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09349}09349             \textcolor{keyword}{auto} remainingTokens = tokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09350}09350             \textcolor{keyword}{auto} \textcolor{keyword}{const} \&token = *remainingTokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09351}09351             \textcolor{keywordflow}{if}( token.type != TokenType::Argument )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09352}09352                 \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( ParseResultType::NoMatch, remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09353}09353 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09354}09354             assert( !m\_ref-\/>isFlag() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09355}09355             \textcolor{keyword}{auto} valueRef = \textcolor{keyword}{static\_cast<}detail::BoundValueRefBase*\textcolor{keyword}{>}( m\_ref.get() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09356}09356 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09357}09357             \textcolor{keyword}{auto} result = valueRef-\/>setValue( remainingTokens-\/>token );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09358}09358             \textcolor{keywordflow}{if}( !result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09359}09359                 \textcolor{keywordflow}{return} InternalParseResult( result );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09360}09360             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09361}09361                 \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( ParseResultType::Matched, ++remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09362}09362         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09363}09363     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09364}09364 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09365}09365     \textcolor{keyword}{inline} \textcolor{keyword}{auto} normaliseOpt( std::string \textcolor{keyword}{const} \&optName ) -\/> std::string \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09366}09366 \textcolor{preprocessor}{\#ifdef CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09367}09367         \textcolor{keywordflow}{if}( optName[0] == \textcolor{charliteral}{'/'} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09368}09368             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}-\/"{}} + optName.substr( 1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09369}09369         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09370}09370 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09371}09371             \textcolor{keywordflow}{return} optName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09372}09372     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09373}09373 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09374}09374     \textcolor{keyword}{class }Opt : \textcolor{keyword}{public} ParserRefImpl<Opt> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09375}09375     \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09376}09376         std::vector<std::string> m\_optNames;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09377}09377 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09378}09378     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09379}09379         \textcolor{keyword}{template}<\textcolor{keyword}{typename} LambdaT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09380}09380         \textcolor{keyword}{explicit} Opt( LambdaT \textcolor{keyword}{const} \&ref ) : ParserRefImpl( \mbox{\hyperlink{namespacestd}{std}}::make\_shared<BoundFlagLambda<LambdaT>>( ref ) ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09381}09381 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09382}09382         \textcolor{keyword}{explicit} Opt( \textcolor{keywordtype}{bool} \&ref ) : ParserRefImpl( \mbox{\hyperlink{namespacestd}{std}}::make\_shared<BoundFlagRef>( ref ) ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09383}09383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09384}09384         \textcolor{keyword}{template}<\textcolor{keyword}{typename} LambdaT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09385}09385         Opt( LambdaT \textcolor{keyword}{const} \&ref, std::string \textcolor{keyword}{const} \&hint ) : ParserRefImpl( ref, hint ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09386}09386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09387}09387         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09388}09388         Opt( T \&ref, std::string \textcolor{keyword}{const} \&hint ) : ParserRefImpl( ref, hint ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09389}09389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09390}09390         \textcolor{keyword}{auto} operator[]( std::string \textcolor{keyword}{const} \&optName ) -\/> Opt \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09391}09391             m\_optNames.push\_back( optName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09392}09392             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09393}09393         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09394}09394 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09395}09395         \textcolor{keyword}{auto} getHelpColumns() const -\/> \mbox{\hyperlink{namespacestd}{std}}::vector<HelpColumns> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09396}09396             std::ostringstream oss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09397}09397             \textcolor{keywordtype}{bool} first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09398}09398             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&opt : m\_optNames ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09399}09399                 \textcolor{keywordflow}{if} (first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09400}09400                     first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09401}09401                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09402}09402                     oss << \textcolor{stringliteral}{"{}, "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09403}09403                 oss << opt;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09404}09404             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09405}09405             \textcolor{keywordflow}{if}( !m\_hint.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09406}09406                 oss << \textcolor{stringliteral}{"{} <"{}} << m\_hint << \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09407}09407             \textcolor{keywordflow}{return} \{ \{ oss.str(), m\_description \} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09408}09408         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09409}09409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09410}09410         \textcolor{keyword}{auto} isMatch( std::string \textcolor{keyword}{const} \&optToken ) \textcolor{keyword}{const} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09411}09411             \textcolor{keyword}{auto} normalisedToken = normaliseOpt( optToken );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09412}09412             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&name : m\_optNames ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09413}09413                 \textcolor{keywordflow}{if}( normaliseOpt( name ) == normalisedToken )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09414}09414                     \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09415}09415             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09416}09416             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09417}09417         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09418}09418 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09419}09419         \textcolor{keyword}{using }ParserBase::parse;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09420}09420 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09421}09421         \textcolor{keyword}{auto} parse( std::string \textcolor{keyword}{const}\&, TokenStream \textcolor{keyword}{const} \&tokens ) \textcolor{keyword}{const} -\/> InternalParseResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09422}09422             \textcolor{keyword}{auto} validationResult = validate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09423}09423             \textcolor{keywordflow}{if}( !validationResult )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09424}09424                 \textcolor{keywordflow}{return} InternalParseResult( validationResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09425}09425 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09426}09426             \textcolor{keyword}{auto} remainingTokens = tokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09427}09427             \textcolor{keywordflow}{if}( remainingTokens \&\& remainingTokens-\/>type == TokenType::Option ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09428}09428                 \textcolor{keyword}{auto} \textcolor{keyword}{const} \&token = *remainingTokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09429}09429                 \textcolor{keywordflow}{if}( isMatch(token.token ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09430}09430                     \textcolor{keywordflow}{if}( m\_ref-\/>isFlag() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09431}09431                         \textcolor{keyword}{auto} flagRef = \textcolor{keyword}{static\_cast<}detail::BoundFlagRefBase*\textcolor{keyword}{>}( m\_ref.get() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09432}09432                         \textcolor{keyword}{auto} result = flagRef-\/>setFlag( \textcolor{keyword}{true} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09433}09433                         \textcolor{keywordflow}{if}( !result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09434}09434                             \textcolor{keywordflow}{return} InternalParseResult( result );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09435}09435                         \textcolor{keywordflow}{if}( result.value() == ParseResultType::ShortCircuitAll )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09436}09436                             \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( result.value(), remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09437}09437                     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09438}09438                         \textcolor{keyword}{auto} valueRef = \textcolor{keyword}{static\_cast<}detail::BoundValueRefBase*\textcolor{keyword}{>}( m\_ref.get() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09439}09439                         ++remainingTokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09440}09440                         \textcolor{keywordflow}{if}( !remainingTokens )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09441}09441                             \textcolor{keywordflow}{return} InternalParseResult::runtimeError( \textcolor{stringliteral}{"{}Expected argument following "{}} + token.token );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09442}09442                         \textcolor{keyword}{auto} \textcolor{keyword}{const} \&argToken = *remainingTokens;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09443}09443                         \textcolor{keywordflow}{if}( argToken.type != TokenType::Argument )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09444}09444                             \textcolor{keywordflow}{return} InternalParseResult::runtimeError( \textcolor{stringliteral}{"{}Expected argument following "{}} + token.token );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09445}09445                         \textcolor{keyword}{auto} result = valueRef-\/>setValue( argToken.token );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09446}09446                         \textcolor{keywordflow}{if}( !result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09447}09447                             \textcolor{keywordflow}{return} InternalParseResult( result );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09448}09448                         \textcolor{keywordflow}{if}( result.value() == ParseResultType::ShortCircuitAll )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09449}09449                             \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( result.value(), remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09450}09450                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09451}09451                     \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( ParseResultType::Matched, ++remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09452}09452                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09453}09453             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09454}09454             \textcolor{keywordflow}{return} InternalParseResult::ok( ParseState( ParseResultType::NoMatch, remainingTokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09455}09455         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09456}09456 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09457}09457         \textcolor{keyword}{auto} validate() const -\/> Result\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09458}09458             \textcolor{keywordflow}{if}( m\_optNames.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09459}09459                 \textcolor{keywordflow}{return} Result::logicError( \textcolor{stringliteral}{"{}No options supplied to Opt"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09460}09460             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&name : m\_optNames ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09461}09461                 \textcolor{keywordflow}{if}( name.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09462}09462                     \textcolor{keywordflow}{return} Result::logicError( \textcolor{stringliteral}{"{}Option name cannot be empty"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09463}09463 \textcolor{preprocessor}{\#ifdef CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09464}09464                 \textcolor{keywordflow}{if}( name[0] != \textcolor{charliteral}{'-\/'} \&\& name[0] != \textcolor{charliteral}{'/'} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09465}09465                     \textcolor{keywordflow}{return} Result::logicError( \textcolor{stringliteral}{"{}Option name must begin with '-\/' or '/'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09466}09466 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09467}09467                 \textcolor{keywordflow}{if}( name[0] != \textcolor{charliteral}{'-\/'} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09468}09468                     \textcolor{keywordflow}{return} Result::logicError( \textcolor{stringliteral}{"{}Option name must begin with '-\/'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09469}09469 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09470}09470             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09471}09471             \textcolor{keywordflow}{return} ParserRefImpl::validate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09472}09472         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09473}09473     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09474}09474 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09475}09475     \textcolor{keyword}{struct }Help : Opt \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09476}09476         Help( \textcolor{keywordtype}{bool} \&showHelpFlag )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09477}09477         :   Opt([\&]( bool flag ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09478}09478                 showHelpFlag = flag;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09479}09479                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::ShortCircuitAll );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09480}09480             \})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09481}09481         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09482}09482             \textcolor{keyword}{static\_cast<}Opt \&\textcolor{keyword}{>}( *this )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09483}09483                     (\textcolor{stringliteral}{"{}display usage information"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09484}09484                     [\textcolor{stringliteral}{"{}-\/?"{}}][\textcolor{stringliteral}{"{}-\/h"{}}][\textcolor{stringliteral}{"{}-\/-\/help"{}}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09485}09485                     .optional();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09486}09486         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09487}09487     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09488}09488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09489}09489     \textcolor{keyword}{struct }Parser : ParserBase \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09490}09490 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09491}09491         \textcolor{keyword}{mutable} ExeName m\_exeName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09492}09492         std::vector<Opt> m\_options;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09493}09493         std::vector<Arg> m\_args;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09494}09494 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09495}09495         \textcolor{keyword}{auto} operator|=( ExeName \textcolor{keyword}{const} \&exeName ) -\/> Parser \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09496}09496             m\_exeName = exeName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09497}09497             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09498}09498         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09499}09499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09500}09500         \textcolor{keyword}{auto} operator|=( Arg \textcolor{keyword}{const} \&arg ) -\/> Parser \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09501}09501             m\_args.push\_back(arg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09502}09502             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09503}09503         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09504}09504 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09505}09505         \textcolor{keyword}{auto} operator|=( Opt \textcolor{keyword}{const} \&opt ) -\/> Parser \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09506}09506             m\_options.push\_back(opt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09507}09507             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09508}09508         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09509}09509 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09510}09510         \textcolor{keyword}{auto} operator|=( Parser \textcolor{keyword}{const} \&other ) -\/> Parser \& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09511}09511             m\_options.insert(m\_options.end(), other.m\_options.begin(), other.m\_options.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09512}09512             m\_args.insert(m\_args.end(), other.m\_args.begin(), other.m\_args.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09513}09513             \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09514}09514         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09515}09515 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09516}09516         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09517}09517         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator|}}( T \textcolor{keyword}{const} \&other ) \textcolor{keyword}{const} -\/> Parser \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09518}09518             \textcolor{keywordflow}{return} Parser( *\textcolor{keyword}{this} ) |= other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09519}09519         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09520}09520 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09521}09521         \textcolor{comment}{// Forward deprecated interface with '+' instead of '|'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09522}09522         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09523}09523         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator+=}}( T \textcolor{keyword}{const} \&other ) -\/> Parser \& \{ \textcolor{keywordflow}{return} operator|=( other ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09524}09524         \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09525}09525         \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a074287bb202b5f53de64b5b63c16b23c}{operator+}}( T \textcolor{keyword}{const} \&other ) \textcolor{keyword}{const} -\/> Parser \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator|}}( other ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09526}09526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09527}09527         \textcolor{keyword}{auto} getHelpColumns() const -\/> \mbox{\hyperlink{namespacestd}{std}}::vector<HelpColumns> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09528}09528             std::vector<HelpColumns> cols;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09529}09529             \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const} \&o : m\_options) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09530}09530                 \textcolor{keyword}{auto} childCols = o.getHelpColumns();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09531}09531                 cols.insert( cols.end(), childCols.begin(), childCols.end() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09532}09532             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09533}09533             \textcolor{keywordflow}{return} cols;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09534}09534         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09535}09535 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09536}09536         \textcolor{keywordtype}{void} writeToStream( std::ostream \&os )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09537}09537             \textcolor{keywordflow}{if} (!m\_exeName.name().empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09538}09538                 os << \textcolor{stringliteral}{"{}usage:\(\backslash\)n"{}} << \textcolor{stringliteral}{"{}  "{}} << m\_exeName.name() << \textcolor{stringliteral}{"{} "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09539}09539                 \textcolor{keywordtype}{bool} required = \textcolor{keyword}{true}, first = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09540}09540                 \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&arg : m\_args ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09541}09541                     \textcolor{keywordflow}{if} (first)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09542}09542                         first = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09543}09543                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09544}09544                         os << \textcolor{stringliteral}{"{} "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09545}09545                     \textcolor{keywordflow}{if}( arg.isOptional() \&\& required ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09546}09546                         os << \textcolor{stringliteral}{"{}["{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09547}09547                         required = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09548}09548                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09549}09549                     os << \textcolor{stringliteral}{"{}<"{}} << arg.hint() << \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09550}09550                     \textcolor{keywordflow}{if}( arg.cardinality() == 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09551}09551                         os << \textcolor{stringliteral}{"{} ... "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09552}09552                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09553}09553                 \textcolor{keywordflow}{if}( !required )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09554}09554                     os << \textcolor{stringliteral}{"{}]"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09555}09555                 \textcolor{keywordflow}{if}( !m\_options.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09556}09556                     os << \textcolor{stringliteral}{"{} options"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09557}09557                 os << \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)nwhere options are:"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09558}09558             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09559}09559 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09560}09560             \textcolor{keyword}{auto} rows = getHelpColumns();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09561}09561             \textcolor{keywordtype}{size\_t} consoleWidth = CATCH\_CLARA\_CONFIG\_CONSOLE\_WIDTH;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09562}09562             \textcolor{keywordtype}{size\_t} optWidth = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09563}09563             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&cols : rows )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09564}09564                 optWidth = (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}})(optWidth, cols.left.size() + 2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09565}09565 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09566}09566             optWidth = (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(optWidth, consoleWidth/2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09567}09567 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09568}09568             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&cols : rows ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09569}09569                 \textcolor{keyword}{auto} row =}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09570}09570                         TextFlow::Column( cols.left ).width( optWidth ).indent( 2 ) +}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09571}09571                         TextFlow::Spacer(4) +}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09572}09572                         TextFlow::Column( cols.right ).width( consoleWidth -\/ 7 -\/ optWidth );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09573}09573                 os << row << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09574}09574             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09575}09575         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09576}09576 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09577}09577         \textcolor{keyword}{friend} \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator<<}}( std::ostream \&os, Parser \textcolor{keyword}{const} \&parser ) -\/> std::ostream\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09578}09578             parser.writeToStream( os );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09579}09579             \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09580}09580         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09581}09581 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09582}09582         \textcolor{keyword}{auto} validate() const -\/> Result\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09583}09583             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&opt : m\_options ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09584}09584                 \textcolor{keyword}{auto} result = opt.validate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09585}09585                 \textcolor{keywordflow}{if}( !result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09586}09586                     \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09587}09587             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09588}09588             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const} \&arg : m\_args ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09589}09589                 \textcolor{keyword}{auto} result = arg.validate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09590}09590                 \textcolor{keywordflow}{if}( !result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09591}09591                     \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09592}09592             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09593}09593             \textcolor{keywordflow}{return} Result::ok();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09594}09594         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09595}09595 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09596}09596         \textcolor{keyword}{using }ParserBase::parse;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09597}09597 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09598}09598         \textcolor{keyword}{auto} parse( std::string \textcolor{keyword}{const}\& exeName, TokenStream \textcolor{keyword}{const} \&tokens ) \textcolor{keyword}{const} -\/> InternalParseResult \textcolor{keyword}{override} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09599}09599 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09600}09600             \textcolor{keyword}{struct }ParserInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09601}09601                 ParserBase \textcolor{keyword}{const}* parser = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09602}09602                 \textcolor{keywordtype}{size\_t} count = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09603}09603             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09604}09604             \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} totalParsers = m\_options.size() + m\_args.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09605}09605             assert( totalParsers < 512 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09606}09606             \textcolor{comment}{// ParserInfo parseInfos[totalParsers]; // <-\/-\/ this is what we really want to do}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09607}09607             ParserInfo parseInfos[512];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09608}09608 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09609}09609             \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09610}09610                 \textcolor{keywordtype}{size\_t} i = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09611}09611                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const} \&opt : m\_options) parseInfos[i++].parser = \&opt;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09612}09612                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const} \&arg : m\_args) parseInfos[i++].parser = \&arg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09613}09613             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09614}09614 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09615}09615             m\_exeName.set( exeName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09616}09616 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09617}09617             \textcolor{keyword}{auto} result = InternalParseResult::ok( ParseState( ParseResultType::NoMatch, tokens ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09618}09618             \textcolor{keywordflow}{while}( result.value().remainingTokens() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09619}09619                 \textcolor{keywordtype}{bool} tokenParsed = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09620}09620 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09621}09621                 \textcolor{keywordflow}{for}( \textcolor{keywordtype}{size\_t} i = 0; i < totalParsers; ++i ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09622}09622                     \textcolor{keyword}{auto}\&  parseInfo = parseInfos[i];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09623}09623                     \textcolor{keywordflow}{if}( parseInfo.parser-\/>cardinality() == 0 || parseInfo.count < parseInfo.parser-\/>cardinality() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09624}09624                         result = parseInfo.parser-\/>parse(exeName, result.value().remainingTokens());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09625}09625                         if (!result)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09626}09626                             return result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09627}09627                         if (result.value().type() != ParseResultType::NoMatch) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09628}09628                             tokenParsed = true;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09629}09629                             ++parseInfo.count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09630}09630                             break;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09631}09631                         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09632}09632                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09633}09633                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09634}09634 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09635}09635                 \textcolor{keywordflow}{if}( result.value().type() == ParseResultType::ShortCircuitAll )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09636}09636                     \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09637}09637                 \textcolor{keywordflow}{if}( !tokenParsed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09638}09638                     \textcolor{keywordflow}{return} InternalParseResult::runtimeError( \textcolor{stringliteral}{"{}Unrecognised token: "{}} + result.value().remainingTokens()-\/>token );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09639}09639             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09640}09640             \textcolor{comment}{// !TBD Check missing required options}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09641}09641             \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09642}09642         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09643}09643     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09644}09644 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09645}09645     \textcolor{keyword}{template}<\textcolor{keyword}{typename} DerivedT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09646}09646     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09647}09647     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{ComposableParserImpl<DerivedT>::operator|}}( T \textcolor{keyword}{const} \&other ) \textcolor{keyword}{const} -\/> Parser \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09648}09648         \textcolor{keywordflow}{return} Parser() | \textcolor{keyword}{static\_cast<}DerivedT \textcolor{keyword}{const }\&\textcolor{keyword}{>}( *this ) | other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09649}09649     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09650}09650 \} \textcolor{comment}{// namespace detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09651}09651 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09652}09652 \textcolor{comment}{// A Combined parser}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09653}09653 \textcolor{keyword}{using }detail::Parser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09654}09654 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09655}09655 \textcolor{comment}{// A parser for options}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09656}09656 \textcolor{keyword}{using }detail::Opt;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09657}09657 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09658}09658 \textcolor{comment}{// A parser for arguments}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09659}09659 \textcolor{keyword}{using }detail::Arg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09660}09660 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09661}09661 \textcolor{comment}{// Wrapper for argc, argv from main()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09662}09662 \textcolor{keyword}{using }detail::Args;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09663}09663 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09664}09664 \textcolor{comment}{// Specifies the name of the executable}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09665}09665 \textcolor{keyword}{using }detail::ExeName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09666}09666 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09667}09667 \textcolor{comment}{// Convenience wrapper for option parser that specifies the help option}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09668}09668 \textcolor{keyword}{using }detail::Help;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09669}09669 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09670}09670 \textcolor{comment}{// enum of result types from a parse}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09671}09671 \textcolor{keyword}{using }detail::ParseResultType;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09672}09672 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09673}09673 \textcolor{comment}{// Result type for parser operation}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09674}09674 \textcolor{keyword}{using }detail::ParserResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09675}09675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09676}09676 \}\} \textcolor{comment}{// namespace Catch::clara}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09677}09677 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09678}09678 \textcolor{comment}{// end clara.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09679}09679 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09680}09680 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09681}09681 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09682}09682 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09683}09683 \textcolor{comment}{// Restore Clara's value for console width, if present}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09684}09684 \textcolor{preprocessor}{\#ifdef CATCH\_TEMP\_CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09685}09685 \textcolor{preprocessor}{\#define CATCH\_CLARA\_TEXTFLOW\_CONFIG\_CONSOLE\_WIDTH CATCH\_TEMP\_CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09686}09686 \textcolor{preprocessor}{\#undef CATCH\_TEMP\_CLARA\_CONFIG\_CONSOLE\_WIDTH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09687}09687 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09688}09688 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09689}09689 \textcolor{comment}{// end catch\_clara.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09690}09690 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09691}09691 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09692}09692     clara::Parser makeCommandLineParser( ConfigData\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09693}09693 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09694}09694 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09695}09695 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09696}09696 \textcolor{comment}{// end catch\_commandline.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09697}09697 \textcolor{preprocessor}{\#include <fstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09698}09698 \textcolor{preprocessor}{\#include <ctime>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09699}09699 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09700}09700 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09701}09701 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09702}09702     clara::Parser makeCommandLineParser( ConfigData\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09703}09703 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09704}09704         \textcolor{keyword}{using namespace }clara;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09705}09705 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09706}09706         \textcolor{keyword}{auto} \textcolor{keyword}{const} setWarning = [\&]( std::string \textcolor{keyword}{const}\& warning ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09707}09707                 \textcolor{keyword}{auto} warningSet = [\&]() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09708}09708                     \textcolor{keywordflow}{if}( warning == \textcolor{stringliteral}{"{}NoAssertions"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09709}09709                         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3a04bcb5104bbb5aeb7f74ee59868289da}{WarnAbout::NoAssertions}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09710}09710 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09711}09711                     \textcolor{keywordflow}{if} ( warning == \textcolor{stringliteral}{"{}NoTests"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09712}09712                         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3acca5dc9e6d4240d98a441b8177d3ab97}{WarnAbout::NoTests}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09713}09713 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09714}09714                     \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3a19bca4df5e1b0f209a3292f3aa44b81e}{WarnAbout::Nothing}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09715}09715                 \}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09716}09716 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09717}09717                 \textcolor{keywordflow}{if} (warningSet == \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3a19bca4df5e1b0f209a3292f3aa44b81e}{WarnAbout::Nothing}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09718}09718                     \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unrecognised warning: '"{}} + warning + \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09719}09719                 config.warnings = \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3}{WarnAbout::What}}\textcolor{keyword}{>}( config.warnings | warningSet );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09720}09720                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09721}09721             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09722}09722         \textcolor{keyword}{auto} \textcolor{keyword}{const} loadTestNamesFromFile = [\&]( std::string \textcolor{keyword}{const}\& filename ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09723}09723                 std::ifstream f( filename.c\_str() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09724}09724                 \textcolor{keywordflow}{if}( !f.is\_open() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09725}09725                     \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unable to load input file: '"{}} + filename + \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09726}09726 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09727}09727                 std::string line;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09728}09728                 \textcolor{keywordflow}{while}( \mbox{\hyperlink{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}{std::getline}}( f, line ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09729}09729                     line = \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(line);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09730}09730                     \textcolor{keywordflow}{if}( !line.empty() \&\& !\mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( line, \textcolor{charliteral}{'\#'} ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09731}09731                         \textcolor{keywordflow}{if}( !\mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( line, \textcolor{charliteral}{'"{}'} ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09732}09732                             line = \textcolor{charliteral}{'"{}'} + line + '"{}';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09733}09733                         config.testsOrTags.push\_back( line );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09734}09734                         config.testsOrTags.emplace\_back( \textcolor{stringliteral}{"{},"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09735}09735                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09736}09736                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09737}09737                 \textcolor{comment}{//Remove comma in the end}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09738}09738                 \textcolor{keywordflow}{if}(!config.testsOrTags.empty())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09739}09739                     config.testsOrTags.erase( config.testsOrTags.end()-\/1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09740}09740 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09741}09741                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09742}09742             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09743}09743         \textcolor{keyword}{auto} \textcolor{keyword}{const} setTestOrder = [\&]( std::string \textcolor{keyword}{const}\& order ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09744}09744                 \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( \textcolor{stringliteral}{"{}declared"{}}, order ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09745}09745                     config.runOrder = \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5da2d560e5cdf23ef60d728a816e9b01c61}{RunTests::InDeclarationOrder}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09746}09746                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( \textcolor{stringliteral}{"{}lexical"{}}, order ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09747}09747                     config.runOrder = \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5dac438de570b4c707baf342d6ac0bd1dea}{RunTests::InLexicographicalOrder}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09748}09748                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( \textcolor{stringliteral}{"{}random"{}}, order ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09749}09749                     config.runOrder = \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5dab754fd982840d872056f23bf139cfc27}{RunTests::InRandomOrder}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09750}09750                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09751}09751                     \textcolor{keywordflow}{return} clara::ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unrecognised ordering: '"{}} + order + \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09752}09752                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09753}09753             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09754}09754         \textcolor{keyword}{auto} \textcolor{keyword}{const} setRngSeed = [\&]( std::string \textcolor{keyword}{const}\& seed ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09755}09755                 \textcolor{keywordflow}{if}( seed != \textcolor{stringliteral}{"{}time"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09756}09756                     \textcolor{keywordflow}{return} clara::detail::convertInto( seed, config.rngSeed );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09757}09757                 config.rngSeed = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}\textcolor{keyword}{>}( std::time(\textcolor{keyword}{nullptr}) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09758}09758                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09759}09759             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09760}09760         \textcolor{keyword}{auto} \textcolor{keyword}{const} setColourUsage = [\&]( std::string \textcolor{keyword}{const}\& useColour ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09761}09761                     \textcolor{keyword}{auto} mode = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( useColour );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09762}09762 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09763}09763                     \textcolor{keywordflow}{if}( mode == \textcolor{stringliteral}{"{}yes"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09764}09764                         config.useColour = \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a4c36d3a8b6c495b85ba6c4ca519e7fc3}{UseColour::Yes}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09765}09765                     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( mode == \textcolor{stringliteral}{"{}no"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09766}09766                         config.useColour = \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a3f3c3fbda04d356297ed9b3a46cf900c}{UseColour::No}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09767}09767                     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( mode == \textcolor{stringliteral}{"{}auto"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09768}09768                         config.useColour = \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09769}09769                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09770}09770                         \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}colour mode must be one of: auto, yes or no. '"{}} + useColour + \textcolor{stringliteral}{"{}' not recognised"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09771}09771                 \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09772}09772             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09773}09773         \textcolor{keyword}{auto} \textcolor{keyword}{const} setWaitForKeypress = [\&]( std::string \textcolor{keyword}{const}\& keypress ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09774}09774                 \textcolor{keyword}{auto} keypressLc = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( keypress );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09775}09775                 \textcolor{keywordflow}{if} (keypressLc == \textcolor{stringliteral}{"{}never"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09776}09776                     config.waitForKeypress = \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399baade2e4a722e5c78bb0d1d3871c4a491ee}{WaitForKeypress::Never}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09777}09777                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( keypressLc == \textcolor{stringliteral}{"{}start"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09778}09778                     config.waitForKeypress = \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399baa0a77a81962c38c4f32792d7af4cd6493}{WaitForKeypress::BeforeStart}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09779}09779                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( keypressLc == \textcolor{stringliteral}{"{}exit"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09780}09780                     config.waitForKeypress = \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399baacbbeaab666e49112d304173e4461d350}{WaitForKeypress::BeforeExit}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09781}09781                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( keypressLc == \textcolor{stringliteral}{"{}both"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09782}09782                     config.waitForKeypress = \mbox{\hyperlink{struct_catch_1_1_wait_for_keypress_a2e8c4369d0a605d64e3e83b5af3399baa12d703bdb53cebdb1d1c142ab1748bf0}{WaitForKeypress::BeforeStartAndExit}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09783}09783                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09784}09784                     \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}keypress argument must be one of: never, start, exit or both. '"{}} + keypress + \textcolor{stringliteral}{"{}' not recognised"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09785}09785             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09786}09786             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09787}09787         \textcolor{keyword}{auto} \textcolor{keyword}{const} setVerbosity = [\&]( std::string \textcolor{keyword}{const}\& verbosity ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09788}09788             \textcolor{keyword}{auto} lcVerbosity = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( verbosity );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09789}09789             \textcolor{keywordflow}{if}( lcVerbosity == \textcolor{stringliteral}{"{}quiet"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09790}09790                 config.verbosity = \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111}{Verbosity::Quiet}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09791}09791             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( lcVerbosity == \textcolor{stringliteral}{"{}normal"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09792}09792                 config.verbosity = \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Verbosity::Normal}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09793}09793             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( lcVerbosity == \textcolor{stringliteral}{"{}high"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09794}09794                 config.verbosity = \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35}{Verbosity::High}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09795}09795             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09796}09796                 \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unrecognised verbosity, '"{}} + verbosity + \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09797}09797             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09798}09798         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09799}09799         \textcolor{keyword}{auto} \textcolor{keyword}{const} setReporter = [\&]( std::string \textcolor{keyword}{const}\& reporter ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09800}09800             IReporterRegistry::FactoryMap \textcolor{keyword}{const}\& factories = \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{getReporterRegistry}}().getFactories();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09801}09801 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09802}09802             \textcolor{keyword}{auto} lcReporter = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( reporter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09803}09803             \textcolor{keyword}{auto} result = factories.find( lcReporter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09804}09804 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09805}09805             \textcolor{keywordflow}{if}( factories.end() != result )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09806}09806                 config.reporterName = lcReporter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09807}09807             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09808}09808                 \textcolor{keywordflow}{return} ParserResult::runtimeError( \textcolor{stringliteral}{"{}Unrecognized reporter, '"{}} + reporter + \textcolor{stringliteral}{"{}'. Check available with -\/-\/list-\/reporters"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09809}09809             \textcolor{keywordflow}{return} ParserResult::ok( ParseResultType::Matched );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09810}09810         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09811}09811 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09812}09812         \textcolor{keyword}{auto} cli}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09813}09813             = ExeName( config.processName )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09814}09814             | Help( config.showHelp )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09815}09815             | Opt( config.listTests )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09816}09816                 ["{}-\/l"{}]["{}-\/-\/list-\/tests"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09817}09817                 ( \textcolor{stringliteral}{"{}list all/matching test cases"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09818}09818             | Opt( config.listTags )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09819}09819                 ["{}-\/t"{}]["{}-\/-\/list-\/tags"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09820}09820                 ( \textcolor{stringliteral}{"{}list all/matching tags"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09821}09821             | Opt( config.showSuccessfulTests )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09822}09822                 ["{}-\/s"{}]["{}-\/-\/success"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09823}09823                 ( \textcolor{stringliteral}{"{}include successful tests in output"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09824}09824             | Opt( config.shouldDebugBreak )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09825}09825                 ["{}-\/b"{}]["{}-\/-\/break"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09826}09826                 ( \textcolor{stringliteral}{"{}break into debugger on failure"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09827}09827             | Opt( config.noThrow )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09828}09828                 ["{}-\/e"{}]["{}-\/-\/nothrow"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09829}09829                 ( \textcolor{stringliteral}{"{}skip exception tests"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09830}09830             | Opt( config.showInvisibles )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09831}09831                 ["{}-\/i"{}]["{}-\/-\/invisibles"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09832}09832                 ( \textcolor{stringliteral}{"{}show invisibles (tabs, newlines)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09833}09833             | Opt( config.outputFilename, \textcolor{stringliteral}{"{}filename"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09834}09834                 ["{}-\/o"{}]["{}-\/-\/out"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09835}09835                 ( \textcolor{stringliteral}{"{}output filename"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09836}09836             | Opt( setReporter, \textcolor{stringliteral}{"{}name"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09837}09837                 ["{}-\/r"{}]["{}-\/-\/reporter"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09838}09838                 ( \textcolor{stringliteral}{"{}reporter to use (defaults to console)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09839}09839             | Opt( config.name, \textcolor{stringliteral}{"{}name"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09840}09840                 ["{}-\/n"{}]["{}-\/-\/name"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09841}09841                 ( \textcolor{stringliteral}{"{}suite name"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09842}09842             | Opt( [\&]( \textcolor{keywordtype}{bool} )\{ config.abortAfter = 1; \} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09843}09843                 [\textcolor{stringliteral}{"{}-\/a"{}}][\textcolor{stringliteral}{"{}-\/-\/abort"{}}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09844}09844                 ( \textcolor{stringliteral}{"{}abort at first failure"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09845}09845             | Opt( [\&]( \textcolor{keywordtype}{int} x )\{ config.abortAfter = x; \}, \textcolor{stringliteral}{"{}no. failures"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09846}09846                 [\textcolor{stringliteral}{"{}-\/x"{}}][\textcolor{stringliteral}{"{}-\/-\/abortx"{}}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09847}09847                 ( \textcolor{stringliteral}{"{}abort after x failures"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09848}09848             | Opt( setWarning, \textcolor{stringliteral}{"{}warning name"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09849}09849                 ["{}-\/w"{}]["{}-\/-\/warn"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09850}09850                 ( \textcolor{stringliteral}{"{}enable warnings"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09851}09851             | Opt( [\&]( \textcolor{keywordtype}{bool} flag ) \{ config.showDurations = flag ? \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1ac9dcaeb20b4d9ca94227ab3f6878ae0a}{ShowDurations::Always}} : \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1afc4d0bcc3cfc91c312329d4a53fbf906}{ShowDurations::Never}}; \}, \textcolor{stringliteral}{"{}yes|no"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09852}09852                 [\textcolor{stringliteral}{"{}-\/d"{}}][\textcolor{stringliteral}{"{}-\/-\/durations"{}}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09853}09853                 ( \textcolor{stringliteral}{"{}show test durations"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09854}09854             | Opt( config.minDuration, \textcolor{stringliteral}{"{}seconds"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09855}09855                 ["{}-\/D"{}]["{}-\/-\/min-\/duration"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09856}09856                 ( \textcolor{stringliteral}{"{}show test durations for tests taking at least the given number of seconds"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09857}09857             | Opt( loadTestNamesFromFile, \textcolor{stringliteral}{"{}filename"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09858}09858                 ["{}-\/f"{}]["{}-\/-\/input-\/file"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09859}09859                 ( \textcolor{stringliteral}{"{}load test names to run from a file"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09860}09860             | Opt( config.filenamesAsTags )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09861}09861                 ["{}-\/\#"{}]["{}-\/-\/filenames-\/as-\/tags"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09862}09862                 ( \textcolor{stringliteral}{"{}adds a tag for the filename"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09863}09863             | Opt( config.sectionsToRun, \textcolor{stringliteral}{"{}section name"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09864}09864                 ["{}-\/c"{}]["{}-\/-\/section"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09865}09865                 ( \textcolor{stringliteral}{"{}specify section to run"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09866}09866             | Opt( setVerbosity, \textcolor{stringliteral}{"{}quiet|normal|high"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09867}09867                 ["{}-\/v"{}]["{}-\/-\/verbosity"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09868}09868                 ( \textcolor{stringliteral}{"{}set output verbosity"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09869}09869             | Opt( config.listTestNamesOnly )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09870}09870                 ["{}-\/-\/list-\/test-\/names-\/only"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09871}09871                 ( \textcolor{stringliteral}{"{}list all/matching test cases names only"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09872}09872             | Opt( config.listReporters )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09873}09873                 ["{}-\/-\/list-\/reporters"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09874}09874                 ( \textcolor{stringliteral}{"{}list all reporters"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09875}09875             | Opt( setTestOrder, \textcolor{stringliteral}{"{}decl|lex|rand"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09876}09876                 ["{}-\/-\/order"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09877}09877                 ( \textcolor{stringliteral}{"{}test case order (defaults to decl)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09878}09878             | Opt( setRngSeed, \textcolor{stringliteral}{"{}'time'|number"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09879}09879                 ["{}-\/-\/rng-\/seed"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09880}09880                 ( \textcolor{stringliteral}{"{}set a specific seed for random numbers"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09881}09881             | Opt( setColourUsage, \textcolor{stringliteral}{"{}yes|no"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09882}09882                 ["{}-\/-\/use-\/colour"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09883}09883                 ( \textcolor{stringliteral}{"{}should output be colourised"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09884}09884             | Opt( config.libIdentify )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09885}09885                 ["{}-\/-\/libidentify"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09886}09886                 ( \textcolor{stringliteral}{"{}report name and version according to libidentify standard"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09887}09887             | Opt( setWaitForKeypress, \textcolor{stringliteral}{"{}never|start|exit|both"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09888}09888                 ["{}-\/-\/wait-\/for-\/keypress"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09889}09889                 ( \textcolor{stringliteral}{"{}waits for a keypress before exiting"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09890}09890             | Opt( config.benchmarkSamples, \textcolor{stringliteral}{"{}samples"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09891}09891                 ["{}-\/-\/benchmark-\/samples"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09892}09892                 ( \textcolor{stringliteral}{"{}number of samples to collect (default: 100)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09893}09893             | Opt( config.benchmarkResamples, \textcolor{stringliteral}{"{}resamples"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09894}09894                 ["{}-\/-\/benchmark-\/resamples"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09895}09895                 ( \textcolor{stringliteral}{"{}number of resamples for the bootstrap (default: 100000)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09896}09896             | Opt( config.benchmarkConfidenceInterval, \textcolor{stringliteral}{"{}confidence interval"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09897}09897                 ["{}-\/-\/benchmark-\/confidence-\/interval"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09898}09898                 ( \textcolor{stringliteral}{"{}confidence interval for the bootstrap (between 0 and 1, default: 0.95)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09899}09899             | Opt( config.benchmarkNoAnalysis )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09900}09900                 ["{}-\/-\/benchmark-\/no-\/analysis"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09901}09901                 ( \textcolor{stringliteral}{"{}perform only measurements; do not perform any analysis"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09902}09902             | Opt( config.benchmarkWarmupTime, \textcolor{stringliteral}{"{}benchmarkWarmupTime"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09903}09903                 ["{}-\/-\/benchmark-\/warmup-\/time"{}]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09904}09904                 ( \textcolor{stringliteral}{"{}amount of time in milliseconds spent on warming up each test (default: 100)"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09905}09905             | Arg( config.testsOrTags, \textcolor{stringliteral}{"{}test name|pattern|tags"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09906}09906                 ( \textcolor{stringliteral}{"{}which test or tests to use"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09907}09907 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09908}09908         \textcolor{keywordflow}{return} cli;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09909}09909     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09910}09910 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09911}09911 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09912}09912 \textcolor{comment}{// end catch\_commandline.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09913}09913 \textcolor{comment}{// start catch\_common.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09914}09914 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09915}09915 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09916}09916 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09917}09917 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09918}09918 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09919}09919 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09920}09920     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_source_line_info_af07e4fdeddf8409b91e4f842f6264cf8}{SourceLineInfo::operator == }}( SourceLineInfo \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09921}09921         \textcolor{keywordflow}{return} line == other.line \&\& (file == other.file || std::strcmp(file, other.file) == 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09922}09922     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09923}09923     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_source_line_info_af77415416919d2d6030b4be085b92f7a}{SourceLineInfo::operator < }}( SourceLineInfo \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09924}09924         \textcolor{comment}{// We can assume that the same file will usually have the same pointer.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09925}09925         \textcolor{comment}{// Thus, if the pointers are the same, there is no point in calling the strcmp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09926}09926         \textcolor{keywordflow}{return} line < other.line || ( line == other.line \&\& file != other.file \&\& (std::strcmp(file, other.file) < 0));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09927}09927     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09928}09928 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09929}09929     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, SourceLineInfo \textcolor{keyword}{const}\& info ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09930}09930 \textcolor{preprocessor}{\#ifndef \_\_GNUG\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09931}09931         os << info.file << \textcolor{charliteral}{'('} << info.line << \textcolor{charliteral}{')'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09932}09932 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09933}09933         os << info.file << \textcolor{charliteral}{':'} << info.line;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09934}09934 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09935}09935         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09936}09936     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09937}09937 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09938}09938     std::string \mbox{\hyperlink{struct_catch_1_1_stream_end_stop_a4a518f0342a381074821d5bda2651401}{StreamEndStop::operator+}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09939}09939         \textcolor{keywordflow}{return} std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09940}09940     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09941}09941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09942}09942     \mbox{\hyperlink{class_catch_1_1_non_copyable_a4b492dd5753f9952350fb64dc6cb9fe2}{NonCopyable::NonCopyable}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09943}09943     \mbox{\hyperlink{class_catch_1_1_non_copyable_a81254677280fef337eb4a676e91e3293}{NonCopyable::\string~NonCopyable}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09944}09944 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09945}09945 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09946}09946 \textcolor{comment}{// end catch\_common.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09947}09947 \textcolor{comment}{// start catch\_config.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09948}09948 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09949}09949 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09950}09950 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09951}09951     Config::Config( ConfigData \textcolor{keyword}{const}\& data )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09952}09952     :   m\_data( data ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09953}09953         m\_stream( openStream() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09954}09954     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09955}09955         \textcolor{comment}{// We need to trim filter specs to avoid trouble with superfluous}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09956}09956         \textcolor{comment}{// whitespace (esp. important for bdd macros, as those are manually}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09957}09957         \textcolor{comment}{// aligned with whitespace).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09958}09958 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09959}09959         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& elem : m\_data.testsOrTags) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09960}09960             elem = \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(elem);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09961}09961         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09962}09962         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& elem : m\_data.sectionsToRun) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09963}09963             elem = \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(elem);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09964}09964         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09965}09965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09966}09966         TestSpecParser parser(\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{ITagAliasRegistry::get}}());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09967}09967         \textcolor{keywordflow}{if} (!m\_data.testsOrTags.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09968}09968             m\_hasTestFilters = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09969}09969             \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& testOrTags : m\_data.testsOrTags) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09970}09970                 parser.parse(testOrTags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09971}09971             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09972}09972         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09973}09973         m\_testSpec = parser.testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09974}09974     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09975}09975 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09976}09976     std::string \textcolor{keyword}{const}\& Config::getFilename()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09977}09977         \textcolor{keywordflow}{return} m\_data.outputFilename ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09978}09978     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09979}09979 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09980}09980     \textcolor{keywordtype}{bool} Config::listTests()\textcolor{keyword}{ const          }\{ \textcolor{keywordflow}{return} m\_data.listTests; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09981}09981     \textcolor{keywordtype}{bool} Config::listTestNamesOnly()\textcolor{keyword}{ const  }\{ \textcolor{keywordflow}{return} m\_data.listTestNamesOnly; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09982}09982     \textcolor{keywordtype}{bool} Config::listTags()\textcolor{keyword}{ const           }\{ \textcolor{keywordflow}{return} m\_data.listTags; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09983}09983     \textcolor{keywordtype}{bool} Config::listReporters()\textcolor{keyword}{ const      }\{ \textcolor{keywordflow}{return} m\_data.listReporters; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09984}09984 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09985}09985     std::string Config::getProcessName()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.processName; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09986}09986     std::string \textcolor{keyword}{const}\& Config::getReporterName()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.reporterName; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09987}09987 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09988}09988     std::vector<std::string> \textcolor{keyword}{const}\& Config::getTestsOrTags()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.testsOrTags; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09989}09989     std::vector<std::string> \textcolor{keyword}{const}\& Config::getSectionsToRun()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.sectionsToRun; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09990}09990 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09991}09991     TestSpec \textcolor{keyword}{const}\& Config::testSpec()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_testSpec; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09992}09992     \textcolor{keywordtype}{bool} Config::hasTestFilters()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_hasTestFilters; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09993}09993 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09994}09994     \textcolor{keywordtype}{bool} Config::showHelp()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.showHelp; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09995}09995 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09996}09996     \textcolor{comment}{// IConfig interface}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09997}09997     \textcolor{keywordtype}{bool} Config::allowThrows()\textcolor{keyword}{ const                   }\{ \textcolor{keywordflow}{return} !m\_data.noThrow; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09998}09998     std::ostream\& Config::stream()\textcolor{keyword}{ const               }\{ \textcolor{keywordflow}{return} m\_stream-\/>stream(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l09999}09999     std::string Config::name()\textcolor{keyword}{ const                   }\{ \textcolor{keywordflow}{return} m\_data.name.empty() ? m\_data.processName : m\_data.name; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10000}10000     \textcolor{keywordtype}{bool} Config::includeSuccessfulResults()\textcolor{keyword}{ const      }\{ \textcolor{keywordflow}{return} m\_data.showSuccessfulTests; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10001}10001     \textcolor{keywordtype}{bool} Config::warnAboutMissingAssertions()\textcolor{keyword}{ const    }\{ \textcolor{keywordflow}{return} !!(m\_data.warnings \& \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3a04bcb5104bbb5aeb7f74ee59868289da}{WarnAbout::NoAssertions}}); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10002}10002     \textcolor{keywordtype}{bool} Config::warnAboutNoTests()\textcolor{keyword}{ const              }\{ \textcolor{keywordflow}{return} !!(m\_data.warnings \& \mbox{\hyperlink{struct_catch_1_1_warn_about_ae3dde70ef78d700ea896eb29314e0fa3acca5dc9e6d4240d98a441b8177d3ab97}{WarnAbout::NoTests}}); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10003}10003     \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1}{ShowDurations::OrNot}} Config::showDurations()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_data.showDurations; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10004}10004     \textcolor{keywordtype}{double} Config::minDuration()\textcolor{keyword}{ const                 }\{ \textcolor{keywordflow}{return} m\_data.minDuration; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10005}10005     \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{RunTests::InWhatOrder}} Config::runOrder()\textcolor{keyword}{ const     }\{ \textcolor{keywordflow}{return} m\_data.runOrder; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10006}10006     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{Config::rngSeed}}()\textcolor{keyword}{ const               }\{ \textcolor{keywordflow}{return} m\_data.rngSeed; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10007}10007     \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} Config::useColour()\textcolor{keyword}{ const       }\{ \textcolor{keywordflow}{return} m\_data.useColour; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10008}10008     \textcolor{keywordtype}{bool} Config::shouldDebugBreak()\textcolor{keyword}{ const              }\{ \textcolor{keywordflow}{return} m\_data.shouldDebugBreak; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10009}10009     \textcolor{keywordtype}{int} Config::abortAfter()\textcolor{keyword}{ const                     }\{ \textcolor{keywordflow}{return} m\_data.abortAfter; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10010}10010     \textcolor{keywordtype}{bool} Config::showInvisibles()\textcolor{keyword}{ const                }\{ \textcolor{keywordflow}{return} m\_data.showInvisibles; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10011}10011     \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737}{Verbosity}} Config::verbosity()\textcolor{keyword}{ const                }\{ \textcolor{keywordflow}{return} m\_data.verbosity; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10012}10012 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10013}10013     \textcolor{keywordtype}{bool} Config::benchmarkNoAnalysis()\textcolor{keyword}{ const                      }\{ \textcolor{keywordflow}{return} m\_data.benchmarkNoAnalysis; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10014}10014     \textcolor{keywordtype}{int} Config::benchmarkSamples()\textcolor{keyword}{ const                          }\{ \textcolor{keywordflow}{return} m\_data.benchmarkSamples; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10015}10015     \textcolor{keywordtype}{double} Config::benchmarkConfidenceInterval()\textcolor{keyword}{ const            }\{ \textcolor{keywordflow}{return} m\_data.benchmarkConfidenceInterval; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10016}10016     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} Config::benchmarkResamples()\textcolor{keyword}{ const               }\{ \textcolor{keywordflow}{return} m\_data.benchmarkResamples; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10017}10017     std::chrono::milliseconds Config::benchmarkWarmupTime()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} std::chrono::milliseconds(m\_data.benchmarkWarmupTime); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10018}10018 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10019}10019     IStream \textcolor{keyword}{const}* Config::openStream() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10020}10020         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_af6d27462573d60c30c51acf1c980e3ff}{Catch::makeStream}}(m\_data.outputFilename);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10021}10021     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10022}10022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10023}10023 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10024}10024 \textcolor{comment}{// end catch\_config.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10025}10025 \textcolor{comment}{// start catch\_console\_colour.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10026}10026 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10027}10027 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10028}10028 \textcolor{preprocessor}{\#    pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10029}10029 \textcolor{preprocessor}{\#    pragma clang diagnostic ignored "{}-\/Wexit-\/time-\/destructors"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10030}10030 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10031}10031 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10032}10032 \textcolor{comment}{// start catch\_errno\_guard.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10033}10033 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10034}10034 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10035}10035 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10036}10036     \textcolor{keyword}{class }ErrnoGuard \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10037}10037     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10038}10038         ErrnoGuard();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10039}10039         \string~ErrnoGuard();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10040}10040     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10041}10041         \textcolor{keywordtype}{int} m\_oldErrno;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10042}10042     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10043}10043 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10044}10044 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10045}10045 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10046}10046 \textcolor{comment}{// end catch\_errno\_guard.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10047}10047 \textcolor{comment}{// start catch\_windows\_h\_proxy.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10048}10048 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10049}10049 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10050}10050 \textcolor{preprocessor}{\#if defined(CATCH\_PLATFORM\_WINDOWS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10051}10051 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10052}10052 \textcolor{preprocessor}{\#if !defined(NOMINMAX) \&\& !defined(CATCH\_CONFIG\_NO\_NOMINMAX)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10053}10053 \textcolor{preprocessor}{\#  define CATCH\_DEFINED\_NOMINMAX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10054}10054 \textcolor{preprocessor}{\#  define NOMINMAX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10055}10055 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10056}10056 \textcolor{preprocessor}{\#if !defined(WIN32\_LEAN\_AND\_MEAN) \&\& !defined(CATCH\_CONFIG\_NO\_WIN32\_LEAN\_AND\_MEAN)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10057}10057 \textcolor{preprocessor}{\#  define CATCH\_DEFINED\_WIN32\_LEAN\_AND\_MEAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10058}10058 \textcolor{preprocessor}{\#  define WIN32\_LEAN\_AND\_MEAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10059}10059 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10060}10060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10061}10061 \textcolor{preprocessor}{\#ifdef \_\_AFXDLL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10062}10062 \textcolor{preprocessor}{\#include <AfxWin.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10063}10063 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10064}10064 \textcolor{preprocessor}{\#include <windows.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10065}10065 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10066}10066 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10067}10067 \textcolor{preprocessor}{\#ifdef CATCH\_DEFINED\_NOMINMAX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10068}10068 \textcolor{preprocessor}{\#  undef NOMINMAX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10069}10069 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10070}10070 \textcolor{preprocessor}{\#ifdef CATCH\_DEFINED\_WIN32\_LEAN\_AND\_MEAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10071}10071 \textcolor{preprocessor}{\#  undef WIN32\_LEAN\_AND\_MEAN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10072}10072 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10073}10073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10074}10074 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// defined(CATCH\_PLATFORM\_WINDOWS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10075}10075 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10076}10076 \textcolor{comment}{// end catch\_windows\_h\_proxy.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10077}10077 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10078}10078 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10079}10079 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10080}10080     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10081}10081 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10082}10082         \textcolor{keyword}{struct }IColourImpl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10083}10083             \textcolor{keyword}{virtual} \string~IColourImpl() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10084}10084             \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} use( Colour::Code \_colourCode ) = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10085}10085         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10086}10086 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10087}10087         \textcolor{keyword}{struct }NoColourImpl : IColourImpl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10088}10088             \textcolor{keywordtype}{void} use( Colour::Code )\textcolor{keyword}{ override }\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10089}10089 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10090}10090             \textcolor{keyword}{static} IColourImpl* instance() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10091}10091                 \textcolor{keyword}{static} NoColourImpl s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10092}10092                 \textcolor{keywordflow}{return} \&s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10093}10093             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10094}10094         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10095}10095 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10096}10096     \} \textcolor{comment}{// anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10097}10097 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10098}10098 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10099}10099 \textcolor{preprocessor}{\#if !defined( CATCH\_CONFIG\_COLOUR\_NONE ) \&\& !defined( CATCH\_CONFIG\_COLOUR\_WINDOWS ) \&\& !defined( CATCH\_CONFIG\_COLOUR\_ANSI )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10100}10100 \textcolor{preprocessor}{\#   ifdef CATCH\_PLATFORM\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10101}10101 \textcolor{preprocessor}{\#       define CATCH\_CONFIG\_COLOUR\_WINDOWS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10102}10102 \textcolor{preprocessor}{\#   else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10103}10103 \textcolor{preprocessor}{\#       define CATCH\_CONFIG\_COLOUR\_ANSI}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10104}10104 \textcolor{preprocessor}{\#   endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10105}10105 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10106}10106 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10107}10107 \textcolor{preprocessor}{\#if defined ( CATCH\_CONFIG\_COLOUR\_WINDOWS ) }}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10108}10108 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10109}10109 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10110}10110 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10111}10111 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10112}10112     \textcolor{keyword}{class }Win32ColourImpl : \textcolor{keyword}{public} IColourImpl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10113}10113     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10114}10114         Win32ColourImpl() : stdoutHandle( GetStdHandle(STD\_OUTPUT\_HANDLE) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10115}10115         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10116}10116             CONSOLE\_SCREEN\_BUFFER\_INFO csbiInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10117}10117             GetConsoleScreenBufferInfo( stdoutHandle, \&csbiInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10118}10118             originalForegroundAttributes = csbiInfo.wAttributes \& \string~( BACKGROUND\_GREEN | BACKGROUND\_RED | BACKGROUND\_BLUE | BACKGROUND\_INTENSITY );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10119}10119             originalBackgroundAttributes = csbiInfo.wAttributes \& \string~( FOREGROUND\_GREEN | FOREGROUND\_RED | FOREGROUND\_BLUE | FOREGROUND\_INTENSITY );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10120}10120         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10121}10121 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10122}10122         \textcolor{keywordtype}{void} use( Colour::Code \_colourCode )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10123}10123             \textcolor{keywordflow}{switch}( \_colourCode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10124}10124                 \textcolor{keywordflow}{case} Colour::None:      \textcolor{keywordflow}{return} setTextAttribute( originalForegroundAttributes );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10125}10125                 \textcolor{keywordflow}{case} Colour::White:     \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_GREEN | FOREGROUND\_RED | FOREGROUND\_BLUE );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10126}10126                 \textcolor{keywordflow}{case} Colour::Red:       \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_RED );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10127}10127                 \textcolor{keywordflow}{case} Colour::Green:     \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_GREEN );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10128}10128                 \textcolor{keywordflow}{case} Colour::Blue:      \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_BLUE );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10129}10129                 \textcolor{keywordflow}{case} Colour::Cyan:      \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_BLUE | FOREGROUND\_GREEN );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10130}10130                 \textcolor{keywordflow}{case} Colour::Yellow:    \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_RED | FOREGROUND\_GREEN );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10131}10131                 \textcolor{keywordflow}{case} Colour::Grey:      \textcolor{keywordflow}{return} setTextAttribute( 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10132}10132 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10133}10133                 \textcolor{keywordflow}{case} Colour::LightGrey:     \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_INTENSITY );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10134}10134                 \textcolor{keywordflow}{case} Colour::BrightRed:     \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_INTENSITY | FOREGROUND\_RED );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10135}10135                 \textcolor{keywordflow}{case} Colour::BrightGreen:   \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_INTENSITY | FOREGROUND\_GREEN );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10136}10136                 \textcolor{keywordflow}{case} Colour::BrightWhite:   \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_INTENSITY | FOREGROUND\_GREEN | FOREGROUND\_RED | FOREGROUND\_BLUE );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10137}10137                 \textcolor{keywordflow}{case} Colour::BrightYellow:  \textcolor{keywordflow}{return} setTextAttribute( FOREGROUND\_INTENSITY | FOREGROUND\_RED | FOREGROUND\_GREEN );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10138}10138 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10139}10139                 \textcolor{keywordflow}{case} Colour::Bright: \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}not a colour"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10140}10140 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10141}10141                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10142}10142                     \mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{CATCH\_ERROR}}( \textcolor{stringliteral}{"{}Unknown colour requested"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10143}10143             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10144}10144         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10145}10145 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10146}10146     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10147}10147         \textcolor{keywordtype}{void} setTextAttribute( WORD \_textAttribute ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10148}10148             SetConsoleTextAttribute( stdoutHandle, \_textAttribute | originalBackgroundAttributes );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10149}10149         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10150}10150         HANDLE stdoutHandle;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10151}10151         WORD originalForegroundAttributes;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10152}10152         WORD originalBackgroundAttributes;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10153}10153     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10154}10154 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10155}10155     IColourImpl* platformColourInstance() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10156}10156         \textcolor{keyword}{static} Win32ColourImpl s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10157}10157 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10158}10158         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} config = \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10159}10159         \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} colourMode = config}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10160}10160             ? config-\/>useColour()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10161}10161             : \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10162}10162         \textcolor{keywordflow}{if}( colourMode == \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10163}10163             colourMode = \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a4c36d3a8b6c495b85ba6c4ca519e7fc3}{UseColour::Yes}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10164}10164         \textcolor{keywordflow}{return} colourMode == \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a4c36d3a8b6c495b85ba6c4ca519e7fc3}{UseColour::Yes}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10165}10165             ? \&s\_instance}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10166}10166             : NoColourImpl::instance();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10167}10167     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10168}10168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10169}10169 \} \textcolor{comment}{// end anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10170}10170 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10171}10171 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10172}10172 \textcolor{preprocessor}{\#elif defined( CATCH\_CONFIG\_COLOUR\_ANSI ) }}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10173}10173 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10174}10174 \textcolor{preprocessor}{\#include <unistd.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10175}10175 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10176}10176 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10177}10177 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10178}10178 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10179}10179     \textcolor{comment}{// use POSIX/ ANSI console terminal codes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10180}10180     \textcolor{comment}{// Thanks to Adam Strzelecki for original contribution}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10181}10181     \textcolor{comment}{// (http://github.com/nanoant)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10182}10182     \textcolor{comment}{// https://github.com/philsquared/Catch/pull/131}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10183}10183     \textcolor{keyword}{class }PosixColourImpl : \textcolor{keyword}{public} IColourImpl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10184}10184     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10185}10185         \textcolor{keywordtype}{void} use( Colour::Code \_colourCode )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10186}10186             \textcolor{keywordflow}{switch}( \_colourCode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10187}10187                 \textcolor{keywordflow}{case} Colour::None:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10188}10188                 \textcolor{keywordflow}{case} Colour::White:     \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10189}10189                 \textcolor{keywordflow}{case} Colour::Red:       \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;31m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10190}10190                 \textcolor{keywordflow}{case} Colour::Green:     \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;32m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10191}10191                 \textcolor{keywordflow}{case} Colour::Blue:      \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;34m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10192}10192                 \textcolor{keywordflow}{case} Colour::Cyan:      \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;36m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10193}10193                 \textcolor{keywordflow}{case} Colour::Yellow:    \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;33m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10194}10194                 \textcolor{keywordflow}{case} Colour::Grey:      \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[1;30m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10195}10195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10196}10196                 \textcolor{keywordflow}{case} Colour::LightGrey:     \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[0;37m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10197}10197                 \textcolor{keywordflow}{case} Colour::BrightRed:     \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[1;31m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10198}10198                 \textcolor{keywordflow}{case} Colour::BrightGreen:   \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[1;32m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10199}10199                 \textcolor{keywordflow}{case} Colour::BrightWhite:   \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[1;37m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10200}10200                 \textcolor{keywordflow}{case} Colour::BrightYellow:  \textcolor{keywordflow}{return} setColour( \textcolor{stringliteral}{"{}[1;33m"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10201}10201 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10202}10202                 \textcolor{keywordflow}{case} Colour::Bright: \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}not a colour"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10203}10203                 \textcolor{keywordflow}{default}: \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Unknown colour requested"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10204}10204             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10205}10205         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10206}10206         \textcolor{keyword}{static} IColourImpl* instance() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10207}10207             \textcolor{keyword}{static} PosixColourImpl s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10208}10208             \textcolor{keywordflow}{return} \&s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10209}10209         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10210}10210 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10211}10211     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10212}10212         \textcolor{keywordtype}{void} setColour( \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \_escapeCode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10213}10213             \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}()-\/>stream()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10214}10214                 << \textcolor{charliteral}{'\(\backslash\)033'} << \_escapeCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10215}10215         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10216}10216     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10217}10217 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10218}10218     \textcolor{keywordtype}{bool} useColourOnPlatform() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10219}10219         \textcolor{keywordflow}{return}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10220}10220 \textcolor{preprocessor}{\#if defined(CATCH\_PLATFORM\_MAC) || defined(CATCH\_PLATFORM\_IPHONE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10221}10221             !isDebuggerActive() \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10222}10222 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10223}10223 \textcolor{preprocessor}{\#if !(defined(\_\_DJGPP\_\_) \&\& defined(\_\_STRICT\_ANSI\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10224}10224             isatty(STDOUT\_FILENO)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10225}10225 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10226}10226             \textcolor{keyword}{false}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10227}10227 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10228}10228             ;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10229}10229     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10230}10230     IColourImpl* platformColourInstance() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10231}10231         ErrnoGuard guard;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10232}10232         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} config = \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10233}10233         \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1}{UseColour::YesOrNo}} colourMode = config}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10234}10234             ? config-\/>useColour()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10235}10235             : \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10236}10236         \textcolor{keywordflow}{if}( colourMode == \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a15ae4b6fc168cb49a577b958239ec68a}{UseColour::Auto}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10237}10237             colourMode = useColourOnPlatform()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10238}10238                 ? \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a4c36d3a8b6c495b85ba6c4ca519e7fc3}{UseColour::Yes}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10239}10239                 : \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a3f3c3fbda04d356297ed9b3a46cf900c}{UseColour::No}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10240}10240         \textcolor{keywordflow}{return} colourMode == \mbox{\hyperlink{struct_catch_1_1_use_colour_a6aa78da0c2de7539bb9e3757e204a3f1a4c36d3a8b6c495b85ba6c4ca519e7fc3}{UseColour::Yes}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10241}10241             ? PosixColourImpl::instance()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10242}10242             : NoColourImpl::instance();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10243}10243     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10244}10244 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10245}10245 \} \textcolor{comment}{// end anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10246}10246 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10247}10247 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10248}10248 \textcolor{preprocessor}{\#else  }\textcolor{comment}{// not Windows or ANSI ///////////////////////////////////////////////}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10249}10249 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10250}10250 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10251}10251 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10252}10252     \textcolor{keyword}{static} IColourImpl* platformColourInstance() \{ \textcolor{keywordflow}{return} NoColourImpl::instance(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10253}10253 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10254}10254 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10255}10255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10256}10256 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// Windows/ ANSI/ None}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10257}10257 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10258}10258 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10259}10259 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10260}10260     Colour::Colour( Code \_colourCode ) \{ use( \_colourCode ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10261}10261     Colour::Colour( Colour\&\& other ) \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10262}10262         m\_moved = other.m\_moved;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10263}10263         other.m\_moved = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10264}10264     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10265}10265     Colour\& Colour::operator=( Colour\&\& other ) \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10266}10266         m\_moved = other.m\_moved;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10267}10267         other.m\_moved  = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10268}10268         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10269}10269     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10270}10270 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10271}10271     Colour::\string~Colour()\{ \textcolor{keywordflow}{if}( !m\_moved ) use( None ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10272}10272 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10273}10273     \textcolor{keywordtype}{void} Colour::use( Code \_colourCode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10274}10274         \textcolor{keyword}{static} IColourImpl* impl = platformColourInstance();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10275}10275         \textcolor{comment}{// Strictly speaking, this cannot possibly happen.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10276}10276         \textcolor{comment}{// However, under some conditions it does happen (see \#1626),}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10277}10277         \textcolor{comment}{// and this change is small enough that we can let practicality}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10278}10278         \textcolor{comment}{// triumph over purity in this case.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10279}10279         \textcolor{keywordflow}{if} (impl != \textcolor{keyword}{nullptr}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10280}10280             impl-\/>use( \_colourCode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10281}10281         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10282}10282     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10283}10283 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10284}10284     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, Colour \textcolor{keyword}{const}\& ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10285}10285         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10286}10286     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10287}10287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10288}10288 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10289}10289 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10290}10290 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10291}10291 \textcolor{preprocessor}{\#    pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10292}10292 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10293}10293 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10294}10294 \textcolor{comment}{// end catch\_console\_colour.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10295}10295 \textcolor{comment}{// start catch\_context.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10296}10296 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10297}10297 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10298}10298 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10299}10299     \textcolor{keyword}{class }Context : \textcolor{keyword}{public} IMutableContext, NonCopyable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10300}10300 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10301}10301     \textcolor{keyword}{public}: \textcolor{comment}{// IContext}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10302}10302         IResultCapture* \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10303}10303             \textcolor{keywordflow}{return} m\_resultCapture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10304}10304         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10305}10305         IRunner* getRunner()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10306}10306             \textcolor{keywordflow}{return} m\_runner;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10307}10307         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10308}10308 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10309}10309         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& getConfig()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10310}10310             \textcolor{keywordflow}{return} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10311}10311         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10312}10312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10313}10313         \string~Context() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10314}10314 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10315}10315     \textcolor{keyword}{public}: \textcolor{comment}{// IMutableContext}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10316}10316         \textcolor{keywordtype}{void} setResultCapture( IResultCapture* resultCapture )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10317}10317             m\_resultCapture = resultCapture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10318}10318         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10319}10319         \textcolor{keywordtype}{void} setRunner( IRunner* runner )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10320}10320             m\_runner = runner;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10321}10321         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10322}10322         \textcolor{keywordtype}{void} setConfig( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10323}10323             m\_config = config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10324}10324         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10325}10325 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10326}10326         \textcolor{keyword}{friend} IMutableContext\& \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10327}10327 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10328}10328     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10329}10329         \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10330}10330         IRunner* m\_runner = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10331}10331         IResultCapture* m\_resultCapture = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10332}10332     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10333}10333 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10334}10334     IMutableContext *IMutableContext::currentContext = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10335}10335 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10336}10336     \textcolor{keywordtype}{void} IMutableContext::createContext()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10337}10337     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10338}10338         currentContext = \textcolor{keyword}{new} Context();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10339}10339     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10340}10340 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10341}10341     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_ae50508f10ffc4ed873a31a4db4caea16}{cleanUpContext}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10342}10342         \textcolor{keyword}{delete} IMutableContext::currentContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10343}10343         IMutableContext::currentContext = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10344}10344     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10345}10345     \mbox{\hyperlink{struct_catch_1_1_i_context_aeb17355c1be6c2ced5407cad7202628d}{IContext::\string~IContext}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10346}10346     \mbox{\hyperlink{struct_catch_1_1_i_mutable_context_a93f32b2ab6d0fb83637059240be799ab}{IMutableContext::\string~IMutableContext}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10347}10347     Context::\string~Context() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10348}10348 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10349}10349     SimplePcg32\& \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10350}10350         \textcolor{keyword}{static} SimplePcg32 s\_rng;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10351}10351         \textcolor{keywordflow}{return} s\_rng;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10352}10352     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10353}10353 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10354}10354 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10355}10355 \textcolor{comment}{// end catch\_context.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10356}10356 \textcolor{comment}{// start catch\_debug\_console.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10357}10357 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10358}10358 \textcolor{comment}{// start catch\_debug\_console.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10359}10359 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10360}10360 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10361}10361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10362}10362 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10363}10363     \textcolor{keywordtype}{void} writeToDebugConsole( std::string \textcolor{keyword}{const}\& text );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10364}10364 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10365}10365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10366}10366 \textcolor{comment}{// end catch\_debug\_console.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10367}10367 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ANDROID\_LOGWRITE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10368}10368 \textcolor{preprocessor}{\#include <android/log.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10369}10369 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10370}10370     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10371}10371         \textcolor{keywordtype}{void} writeToDebugConsole( std::string \textcolor{keyword}{const}\& text ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10372}10372             \_\_android\_log\_write( ANDROID\_LOG\_DEBUG, \textcolor{stringliteral}{"{}Catch"{}}, text.c\_str() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10373}10373         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10374}10374     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10375}10375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10376}10376 \textcolor{preprocessor}{\#elif defined(CATCH\_PLATFORM\_WINDOWS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10377}10377 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10378}10378     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10379}10379         \textcolor{keywordtype}{void} writeToDebugConsole( std::string \textcolor{keyword}{const}\& text ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10380}10380             ::OutputDebugStringA( text.c\_str() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10381}10381         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10382}10382     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10383}10383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10384}10384 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10385}10385 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10386}10386     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10387}10387         \textcolor{keywordtype}{void} writeToDebugConsole( std::string \textcolor{keyword}{const}\& text ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10388}10388             \textcolor{comment}{// !TBD: Need a version for Mac/ XCode and other IDEs}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10389}10389             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << text;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10390}10390         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10391}10391     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10392}10392 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10393}10393 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// Platform}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10394}10394 \textcolor{comment}{// end catch\_debug\_console.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10395}10395 \textcolor{comment}{// start catch\_debugger.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10396}10396 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10397}10397 \textcolor{preprocessor}{\#if defined(CATCH\_PLATFORM\_MAC) || defined(CATCH\_PLATFORM\_IPHONE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10398}10398 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10399}10399 \textcolor{preprocessor}{\#  include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10400}10400 \textcolor{preprocessor}{\#  include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10401}10401 \textcolor{preprocessor}{\#  include <unistd.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10402}10402 \textcolor{preprocessor}{\#  include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10403}10403 \textcolor{preprocessor}{\#  include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10404}10404 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10405}10405 \textcolor{preprocessor}{\#ifdef \_\_apple\_build\_version\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10406}10406     \textcolor{comment}{// These headers will only compile with AppleClang (XCode)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10407}10407     \textcolor{comment}{// For other compilers (Clang, GCC, ... ) we need to exclude them}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10408}10408 \textcolor{preprocessor}{\#  include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10409}10409 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10410}10410 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10411}10411     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10412}10412 \textcolor{preprocessor}{        \#ifdef \_\_apple\_build\_version\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10413}10413         \textcolor{comment}{// The following function is taken directly from the following technical note:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10414}10414         \textcolor{comment}{// https://developer.apple.com/library/archive/qa/qa1361/\_index.html}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10415}10415 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10416}10416         \textcolor{comment}{// Returns true if the current process is being debugged (either}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10417}10417         \textcolor{comment}{// running under the debugger or has a debugger attached post facto).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10418}10418         \textcolor{keywordtype}{bool} isDebuggerActive()\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10419}10419             \textcolor{keywordtype}{int}                 mib[4];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10420}10420             \textcolor{keyword}{struct }kinfo\_proc   info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10421}10421             std::size\_t         \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10422}10422 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10423}10423             \textcolor{comment}{// Initialize the flags so that, if sysctl fails for some bizarre}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10424}10424             \textcolor{comment}{// reason, we get a predictable result.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10425}10425 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10426}10426             info.kp\_proc.p\_flag = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10427}10427 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10428}10428             \textcolor{comment}{// Initialize mib, which tells sysctl the info we want, in this case}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10429}10429             \textcolor{comment}{// we're looking for information about a specific process ID.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10430}10430 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10431}10431             mib[0] = CTL\_KERN;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10432}10432             mib[1] = KERN\_PROC;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10433}10433             mib[2] = KERN\_PROC\_PID;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10434}10434             mib[3] = getpid();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10435}10435 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10436}10436             \textcolor{comment}{// Call sysctl.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10437}10437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10438}10438             \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} = \textcolor{keyword}{sizeof}(info);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10439}10439             \textcolor{keywordflow}{if}( sysctl(mib, \textcolor{keyword}{sizeof}(mib) / \textcolor{keyword}{sizeof}(*mib), \&info, \&\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, \textcolor{keyword}{nullptr}, 0) != 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10440}10440                 \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << \textcolor{stringliteral}{"{}\(\backslash\)n** Call to sysctl failed -\/ unable to determine if debugger is active **\(\backslash\)n"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10441}10441                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10442}10442             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10443}10443 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10444}10444             \textcolor{comment}{// We're being debugged if the P\_TRACED flag is set.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10445}10445 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10446}10446             \textcolor{keywordflow}{return} ( (info.kp\_proc.p\_flag \& P\_TRACED) != 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10447}10447         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10448}10448 \textcolor{preprocessor}{        \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10449}10449         \textcolor{keywordtype}{bool} isDebuggerActive() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10450}10450             \textcolor{comment}{// We need to find another way to determine this for non-\/appleclang compilers on macOS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10451}10451             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10452}10452         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10453}10453 \textcolor{preprocessor}{        \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10454}10454     \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10455}10455 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10456}10456 \textcolor{preprocessor}{\#elif defined(CATCH\_PLATFORM\_LINUX)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10457}10457 \textcolor{preprocessor}{    \#include <fstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10458}10458 \textcolor{preprocessor}{    \#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10459}10459 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10460}10460     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10461}10461         \textcolor{comment}{// The standard POSIX way of detecting a debugger is to attempt to}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10462}10462         \textcolor{comment}{// ptrace() the process, but this needs to be done from a child and not}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10463}10463         \textcolor{comment}{// this process itself to still allow attaching to this process later}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10464}10464         \textcolor{comment}{// if wanted, so is rather heavy. Under Linux we have the PID of the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10465}10465         \textcolor{comment}{// "{}debugger"{} (which doesn't need to be gdb, of course, it could also}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10466}10466         \textcolor{comment}{// be strace, for example) in /proc/\$PID/status, so just get it from}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10467}10467         \textcolor{comment}{// there instead.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10468}10468         \textcolor{keywordtype}{bool} isDebuggerActive()\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10469}10469             \textcolor{comment}{// Libstdc++ has a bug, where std::ifstream sets errno to 0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10470}10470             \textcolor{comment}{// This way our users can properly assert over errno values}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10471}10471             ErrnoGuard guard;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10472}10472             std::ifstream in(\textcolor{stringliteral}{"{}/proc/self/status"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10473}10473             \textcolor{keywordflow}{for}( std::string line; \mbox{\hyperlink{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}{std::getline}}(in, line); ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10474}10474                 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{int} PREFIX\_LEN = 11;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10475}10475                 \textcolor{keywordflow}{if}( line.compare(0, PREFIX\_LEN, \textcolor{stringliteral}{"{}TracerPid:\(\backslash\)t"{}}) == 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10476}10476                     \textcolor{comment}{// We're traced if the PID is not 0 and no other PID starts}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10477}10477                     \textcolor{comment}{// with 0 digit, so it's enough to check for just a single}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10478}10478                     \textcolor{comment}{// character.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10479}10479                     \textcolor{keywordflow}{return} line.length() > PREFIX\_LEN \&\& line[PREFIX\_LEN] != \textcolor{charliteral}{'0'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10480}10480                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10481}10481             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10482}10482 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10483}10483             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10484}10484         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10485}10485     \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10486}10486 \textcolor{preprocessor}{\#elif defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10487}10487     \textcolor{keyword}{extern} \textcolor{stringliteral}{"{}C"{}} \_\_declspec(dllimport) \textcolor{keywordtype}{int} \_\_stdcall IsDebuggerPresent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10488}10488     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10489}10489         \textcolor{keywordtype}{bool} isDebuggerActive() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10490}10490             \textcolor{keywordflow}{return} IsDebuggerPresent() != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10491}10491         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10492}10492     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10493}10493 \textcolor{preprocessor}{\#elif defined(\_\_MINGW32\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10494}10494     \textcolor{keyword}{extern} \textcolor{stringliteral}{"{}C"{}} \_\_declspec(dllimport) \textcolor{keywordtype}{int} \_\_stdcall IsDebuggerPresent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10495}10495     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10496}10496         \textcolor{keywordtype}{bool} isDebuggerActive() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10497}10497             \textcolor{keywordflow}{return} IsDebuggerPresent() != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10498}10498         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10499}10499     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10500}10500 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10501}10501     \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10502}10502        \textcolor{keywordtype}{bool} isDebuggerActive() \{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10503}10503     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10504}10504 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// Platform}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10505}10505 \textcolor{comment}{// end catch\_debugger.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10506}10506 \textcolor{comment}{// start catch\_decomposer.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10507}10507 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10508}10508 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10509}10509 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10510}10510     \mbox{\hyperlink{struct_catch_1_1_i_transient_expression_aeadf426de589938c4964fe4068eeee77}{ITransientExpression::\string~ITransientExpression}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10511}10511 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10512}10512     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a520110c31f26cf9892595772ab814fc0}{formatReconstructedExpression}}( std::ostream \&os, std::string \textcolor{keyword}{const}\& lhs, StringRef op, std::string \textcolor{keyword}{const}\& rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10513}10513         \textcolor{keywordflow}{if}( lhs.size() + rhs.size() < 40 \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10514}10514                 lhs.find(\textcolor{charliteral}{'\(\backslash\)n'}) == std::string::npos \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10515}10515                 rhs.find(\textcolor{charliteral}{'\(\backslash\)n'}) == std::string::npos )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10516}10516             os << lhs << \textcolor{stringliteral}{"{} "{}} << op << \textcolor{stringliteral}{"{} "{}} << rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10517}10517         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10518}10518             os << lhs << \textcolor{stringliteral}{"{}\(\backslash\)n"{}} << op << \textcolor{stringliteral}{"{}\(\backslash\)n"{}} << rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10519}10519     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10520}10520 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10521}10521 \textcolor{comment}{// end catch\_decomposer.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10522}10522 \textcolor{comment}{// start catch\_enforce.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10523}10523 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10524}10524 \textcolor{preprocessor}{\#include <stdexcept>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10525}10525 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10526}10526 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10527}10527 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS) \&\& !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS\_CUSTOM\_HANDLER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10528}10528     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10529}10529     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(std::exception \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10530}10530         \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << \textcolor{stringliteral}{"{}Catch will terminate because it needed to throw an exception.\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10531}10531                       << \textcolor{stringliteral}{"{}The message was: "{}} << \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.what() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10532}10532         std::terminate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10533}10533     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10534}10534 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10535}10535 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10536}10536     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10537}10537     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a707884e681203fef6bf7dbf752532fa5}{throw\_logic\_error}}(std::string \textcolor{keyword}{const}\& msg) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10538}10538         \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(std::logic\_error(msg));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10539}10539     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10540}10540 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10541}10541     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10542}10542     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_ae67297c3e265b0fcd55de371bf408e4e}{throw\_domain\_error}}(std::string \textcolor{keyword}{const}\& msg) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10543}10543         \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(std::domain\_error(msg));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10544}10544     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10545}10545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10546}10546     [[noreturn]]}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10547}10547     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a48d2c35022dd9d56a1b7ee78ad581eea}{throw\_runtime\_error}}(std::string \textcolor{keyword}{const}\& msg) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10548}10548         \mbox{\hyperlink{namespace_catch_a3cbceeab9252d1b752f66a2826e92548}{throw\_exception}}(std::runtime\_error(msg));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10549}10549     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10550}10550 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10551}10551 \} \textcolor{comment}{// namespace Catch;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10552}10552 \textcolor{comment}{// end catch\_enforce.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10553}10553 \textcolor{comment}{// start catch\_enum\_values\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10554}10554 \textcolor{comment}{// start catch\_enum\_values\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10555}10555 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10556}10556 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10557}10557 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10558}10558 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10559}10559 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10560}10560 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10561}10561     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10562}10562 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10563}10563         std::unique\_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRef allValueNames, std::vector<int> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10564}10564 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10565}10565         \textcolor{keyword}{class }EnumValuesRegistry : \textcolor{keyword}{public} IMutableEnumValuesRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10566}10566 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10567}10567             std::vector<std::unique\_ptr<EnumInfo>> m\_enumInfos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10568}10568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10569}10569             EnumInfo \textcolor{keyword}{const}\& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10570}10570         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10571}10571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10572}10572         std::vector<StringRef> parseEnums( StringRef enums );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10573}10573 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10574}10574     \} \textcolor{comment}{// Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10575}10575 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10576}10576 \} \textcolor{comment}{// Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10577}10577 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10578}10578 \textcolor{comment}{// end catch\_enum\_values\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10579}10579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10580}10580 \textcolor{preprocessor}{\#include <map>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10581}10581 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10582}10582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10583}10583 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10584}10584 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10585}10585     \mbox{\hyperlink{struct_catch_1_1_i_mutable_enum_values_registry_aebd423693128987c89ac732478d74673}{IMutableEnumValuesRegistry::\string~IMutableEnumValuesRegistry}}() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10586}10586 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10587}10587     \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10588}10588 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10589}10589         \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10590}10590             \textcolor{comment}{// Extracts the actual name part of an enum instance}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10591}10591             \textcolor{comment}{// In other words, it returns the Blue part of Bikeshed::Colour::Blue}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10592}10592             StringRef extractInstanceName(StringRef enumInstance) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10593}10593                 \textcolor{comment}{// Find last occurrence of "{}:"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10594}10594                 \textcolor{keywordtype}{size\_t} name\_start = enumInstance.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10595}10595                 \textcolor{keywordflow}{while} (name\_start > 0 \&\& enumInstance[name\_start -\/ 1] != \textcolor{charliteral}{':'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10596}10596                     -\/-\/name\_start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10597}10597                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10598}10598                 \textcolor{keywordflow}{return} enumInstance.substr(name\_start, enumInstance.size() -\/ name\_start);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10599}10599             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10600}10600         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10601}10601 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10602}10602         std::vector<StringRef> parseEnums( StringRef enums ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10603}10603             \textcolor{keyword}{auto} enumValues = \mbox{\hyperlink{namespace_catch_a678e3c779388970bb3ec5802245f93d7}{splitStringRef}}( enums, \textcolor{charliteral}{','} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10604}10604             std::vector<StringRef> parsed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10605}10605             parsed.reserve( enumValues.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10606}10606             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& enumValue : enumValues ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10607}10607                 parsed.push\_back(\mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(extractInstanceName(enumValue)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10608}10608             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10609}10609             \textcolor{keywordflow}{return} parsed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10610}10610         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10611}10611 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10612}10612         \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_ab6608593c00614a688045fe8d911258d}{EnumInfo::\string~EnumInfo}}() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10613}10613 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10614}10614         StringRef \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_a2fdfacc411d7afb1cb690366e5e49cb3}{EnumInfo::lookup}}( \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10615}10615             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& valueToName : \mbox{\hyperlink{struct_catch_1_1_detail_1_1_enum_info_ad0e5192faeffe49ef749ea64678adc5e}{m\_values}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10616}10616                 \textcolor{keywordflow}{if}( valueToName.first == \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10617}10617                     \textcolor{keywordflow}{return} valueToName.second;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10618}10618             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10619}10619             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}\{** unexpected enum value **\}"{}}\_sr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10620}10620         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10621}10621 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10622}10622         std::unique\_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRef allValueNames, std::vector<int> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10623}10623             std::unique\_ptr<EnumInfo> enumInfo( \textcolor{keyword}{new} EnumInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10624}10624             enumInfo-\/>m\_name = enumName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10625}10625             enumInfo-\/>m\_values.reserve( \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10626}10626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10627}10627             \textcolor{keyword}{const} \textcolor{keyword}{auto} valueNames = Catch::Detail::parseEnums( allValueNames );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10628}10628             assert( valueNames.size() == \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10629}10629             std::size\_t i = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10630}10630             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} : \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10631}10631                 enumInfo-\/>m\_values.emplace\_back(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, valueNames[i++]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10632}10632 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10633}10633             \textcolor{keywordflow}{return} enumInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10634}10634         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10635}10635 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10636}10636         EnumInfo \textcolor{keyword}{const}\& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef allValueNames, std::vector<int> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10637}10637             m\_enumInfos.push\_back(makeEnumInfo(enumName, allValueNames, \mbox{\hyperlink{namespace_catch_1_1_generators_aff55717239311a0e8352a4de5d29967f}{values}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10638}10638             \textcolor{keywordflow}{return} *m\_enumInfos.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10639}10639         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10640}10640 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10641}10641     \} \textcolor{comment}{// Detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10642}10642 \} \textcolor{comment}{// Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10643}10643 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10644}10644 \textcolor{comment}{// end catch\_enum\_values\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10645}10645 \textcolor{comment}{// start catch\_errno\_guard.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10646}10646 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10647}10647 \textcolor{preprocessor}{\#include <cerrno>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10648}10648 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10649}10649 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10650}10650         ErrnoGuard::ErrnoGuard():m\_oldErrno(errno)\{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10651}10651         ErrnoGuard::\string~ErrnoGuard() \{ errno = m\_oldErrno; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10652}10652 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10653}10653 \textcolor{comment}{// end catch\_errno\_guard.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10654}10654 \textcolor{comment}{// start catch\_exception\_translator\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10655}10655 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10656}10656 \textcolor{comment}{// start catch\_exception\_translator\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10657}10657 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10658}10658 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10659}10659 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10660}10660 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10661}10661 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10662}10662 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10663}10663 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10664}10664     \textcolor{keyword}{class }ExceptionTranslatorRegistry : \textcolor{keyword}{public} IExceptionTranslatorRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10665}10665     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10666}10666         \string~ExceptionTranslatorRegistry();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10667}10667         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} registerTranslator( \textcolor{keyword}{const} IExceptionTranslator* translator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10668}10668         std::string \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10669}10669         std::string tryTranslators() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10670}10670 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10671}10671     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10672}10672         std::vector<std::unique\_ptr<IExceptionTranslator const>> m\_translators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10673}10673     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10674}10674 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10675}10675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10676}10676 \textcolor{comment}{// end catch\_exception\_translator\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10677}10677 \textcolor{preprocessor}{\#ifdef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10678}10678 \textcolor{preprocessor}{\#import "{}Foundation/Foundation.h"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10679}10679 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10680}10680 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10681}10681 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10682}10682 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10683}10683     ExceptionTranslatorRegistry::\string~ExceptionTranslatorRegistry() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10684}10684     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10685}10685 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10686}10686     \textcolor{keywordtype}{void} ExceptionTranslatorRegistry::registerTranslator( \textcolor{keyword}{const} IExceptionTranslator* translator ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10687}10687         m\_translators.push\_back( std::unique\_ptr<const IExceptionTranslator>( translator ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10688}10688     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10689}10689 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10690}10690 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10691}10691     std::string \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{ExceptionTranslatorRegistry::translateActiveException}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10692}10692         \textcolor{keywordflow}{try} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10693}10693 \textcolor{preprocessor}{\#ifdef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10694}10694             \textcolor{comment}{// In Objective-\/C try objective-\/c exceptions first}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10695}10695             \textcolor{keywordflow}{@try} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10696}10696                 \textcolor{keywordflow}{return} tryTranslators();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10697}10697             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10698}10698             \textcolor{keywordflow}{@catch} (NSException *exception) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10699}10699                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( [exception description] );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10700}10700             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10701}10701 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10702}10702             \textcolor{comment}{// Compiling a mixed mode project with MSVC means that CLR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10703}10703             \textcolor{comment}{// exceptions will be caught in (...) as well. However, these}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10704}10704             \textcolor{comment}{// do not fill-\/in std::current\_exception and thus lead to crash}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10705}10705             \textcolor{comment}{// when attempting rethrow.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10706}10706             \textcolor{comment}{// /EHa switch also causes structured exceptions to be caught}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10707}10707             \textcolor{comment}{// here, but they fill-\/in current\_exception properly, so}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10708}10708             \textcolor{comment}{// at worst the output should be a little weird, instead of}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10709}10709             \textcolor{comment}{// causing a crash.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10710}10710             \textcolor{keywordflow}{if} (std::current\_exception() == \textcolor{keyword}{nullptr}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10711}10711                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Non C++ exception. Possibly a CLR exception."{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10712}10712             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10713}10713             \textcolor{keywordflow}{return} tryTranslators();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10714}10714 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10715}10715         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10716}10716         \textcolor{keywordflow}{catch}( TestFailureException\& ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10717}10717             std::rethrow\_exception(std::current\_exception());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10718}10718         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10719}10719         \textcolor{keywordflow}{catch}( std::exception\& ex ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10720}10720             \textcolor{keywordflow}{return} ex.what();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10721}10721         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10722}10722         \textcolor{keywordflow}{catch}( std::string\& msg ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10723}10723             \textcolor{keywordflow}{return} msg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10724}10724         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10725}10725         \textcolor{keywordflow}{catch}( \textcolor{keyword}{const} \textcolor{keywordtype}{char}* msg ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10726}10726             \textcolor{keywordflow}{return} msg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10727}10727         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10728}10728         \textcolor{keywordflow}{catch}(...) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10729}10729             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Unknown exception"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10730}10730         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10731}10731     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10732}10732 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10733}10733     std::string ExceptionTranslatorRegistry::tryTranslators()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10734}10734         \textcolor{keywordflow}{if} (m\_translators.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10735}10735             std::rethrow\_exception(std::current\_exception());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10736}10736         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10737}10737             \textcolor{keywordflow}{return} m\_translators[0]-\/>translate(m\_translators.begin() + 1, m\_translators.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10738}10738         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10739}10739     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10740}10740 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10741}10741 \textcolor{preprocessor}{\#else }\textcolor{comment}{// \string^\string^ Exceptions are enabled // Exceptions are disabled vv}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10742}10742     std::string \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{ExceptionTranslatorRegistry::translateActiveException}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10743}10743         \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}Attempted to translate active exception under CATCH\_CONFIG\_DISABLE\_EXCEPTIONS!"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10744}10744     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10745}10745 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10746}10746     std::string ExceptionTranslatorRegistry::tryTranslators()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10747}10747         \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}Attempted to use exception translators under CATCH\_CONFIG\_DISABLE\_EXCEPTIONS!"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10748}10748     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10749}10749 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10750}10750 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10751}10751 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10752}10752 \textcolor{comment}{// end catch\_exception\_translator\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10753}10753 \textcolor{comment}{// start catch\_fatal\_condition.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10754}10754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10755}10755 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10756}10756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10757}10757 \textcolor{preprocessor}{\#if !defined( CATCH\_CONFIG\_WINDOWS\_SEH ) \&\& !defined( CATCH\_CONFIG\_POSIX\_SIGNALS )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10758}10758 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10759}10759 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10760}10760 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10761}10761     \textcolor{comment}{// If neither SEH nor signal handling is required, the handler impls}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10762}10762     \textcolor{comment}{// do not have to do anything, and can be empty.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10763}10763     \textcolor{keywordtype}{void} FatalConditionHandler::engage\_platform() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10764}10764     \textcolor{keywordtype}{void} FatalConditionHandler::disengage\_platform() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10765}10765     FatalConditionHandler::FatalConditionHandler() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10766}10766     FatalConditionHandler::\string~FatalConditionHandler() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10767}10767 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10768}10768 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10769}10769 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10770}10770 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// !CATCH\_CONFIG\_WINDOWS\_SEH \&\& !CATCH\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10771}10771 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10772}10772 \textcolor{preprocessor}{\#if defined( CATCH\_CONFIG\_WINDOWS\_SEH ) \&\& defined( CATCH\_CONFIG\_POSIX\_SIGNALS )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10773}10773 \textcolor{preprocessor}{\#error "{}Inconsistent configuration: Windows' SEH handling and POSIX signals cannot be enabled at the same time"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10774}10774 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_WINDOWS\_SEH \&\& CATCH\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10775}10775 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10776}10776 \textcolor{preprocessor}{\#if defined( CATCH\_CONFIG\_WINDOWS\_SEH ) || defined( CATCH\_CONFIG\_POSIX\_SIGNALS )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10777}10777 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10778}10778 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10780}10780     \textcolor{keywordtype}{void} reportFatal( \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} message ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10781}10781         \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{Catch::getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_a950f10a5f6d3c9385f9493ba6298b174}{getResultCapture}}()-\/>\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a48559e6598ba9474b903697b69c769b2}{handleFatalErrorCondition}}( message );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10782}10782     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10783}10783 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10787}10787     \textcolor{keyword}{constexpr} std::size\_t minStackSizeForErrors = 32 * 1024;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10788}10788 \} \textcolor{comment}{// end unnamed namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10789}10789 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10790}10790 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_WINDOWS\_SEH || CATCH\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10791}10791 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10792}10792 \textcolor{preprocessor}{\#if defined( CATCH\_CONFIG\_WINDOWS\_SEH )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10793}10793 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10794}10794 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10795}10795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10796}10796     \textcolor{keyword}{struct }SignalDefs \{ DWORD id; \textcolor{keyword}{const} \textcolor{keywordtype}{char}* name; \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10797}10797 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10798}10798     \textcolor{comment}{// There is no 1-\/1 mapping between signals and windows exceptions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10799}10799     \textcolor{comment}{// Windows can easily distinguish between SO and SigSegV,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10800}10800     \textcolor{comment}{// but SigInt, SigTerm, etc are handled differently.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10801}10801     \textcolor{keyword}{static} SignalDefs signalDefs[] = \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10802}10802         \{ \textcolor{keyword}{static\_cast<}DWORD\textcolor{keyword}{>}(EXCEPTION\_ILLEGAL\_INSTRUCTION),  \textcolor{stringliteral}{"{}SIGILL -\/ Illegal instruction signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10803}10803         \{ \textcolor{keyword}{static\_cast<}DWORD\textcolor{keyword}{>}(EXCEPTION\_STACK\_OVERFLOW), \textcolor{stringliteral}{"{}SIGSEGV -\/ Stack overflow"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10804}10804         \{ \textcolor{keyword}{static\_cast<}DWORD\textcolor{keyword}{>}(EXCEPTION\_ACCESS\_VIOLATION), \textcolor{stringliteral}{"{}SIGSEGV -\/ Segmentation violation signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10805}10805         \{ \textcolor{keyword}{static\_cast<}DWORD\textcolor{keyword}{>}(EXCEPTION\_INT\_DIVIDE\_BY\_ZERO), \textcolor{stringliteral}{"{}Divide by zero error"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10806}10806     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10807}10807 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10808}10808     \textcolor{keyword}{static} LONG CALLBACK handleVectoredException(PEXCEPTION\_POINTERS ExceptionInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10809}10809         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& def : signalDefs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10810}10810             \textcolor{keywordflow}{if} (ExceptionInfo-\/>ExceptionRecord-\/>ExceptionCode == def.id) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10811}10811                 reportFatal(def.name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10812}10812             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10813}10813         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10814}10814         \textcolor{comment}{// If its not an exception we care about, pass it along.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10815}10815         \textcolor{comment}{// This stops us from eating debugger breaks etc.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10816}10816         \textcolor{keywordflow}{return} EXCEPTION\_CONTINUE\_SEARCH;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10817}10817     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10818}10818 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10819}10819     \textcolor{comment}{// Since we do not support multiple instantiations, we put these}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10820}10820     \textcolor{comment}{// into global variables and rely on cleaning them up in outlined}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10821}10821     \textcolor{comment}{// constructors/destructors}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10822}10822     \textcolor{keyword}{static} PVOID exceptionHandlerHandle = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10823}10823 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10824}10824     \textcolor{comment}{// For MSVC, we reserve part of the stack memory for handling}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10825}10825     \textcolor{comment}{// memory overflow structured exception.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10826}10826     FatalConditionHandler::FatalConditionHandler() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10827}10827         ULONG guaranteeSize = \textcolor{keyword}{static\_cast<}ULONG\textcolor{keyword}{>}(minStackSizeForErrors);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10828}10828         \textcolor{keywordflow}{if} (!SetThreadStackGuarantee(\&guaranteeSize)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10829}10829             \textcolor{comment}{// We do not want to fully error out, because needing}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10830}10830             \textcolor{comment}{// the stack reserve should be rare enough anyway.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10831}10831             \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10832}10832                 << \textcolor{stringliteral}{"{}Failed to reserve piece of stack."{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10833}10833                 << \textcolor{stringliteral}{"{} Stack overflows will not be reported successfully."{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10834}10834         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10835}10835     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10836}10836 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10837}10837     \textcolor{comment}{// We do not attempt to unset the stack guarantee, because}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10838}10838     \textcolor{comment}{// Windows does not support lowering the stack size guarantee.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10839}10839     FatalConditionHandler::\string~FatalConditionHandler() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10840}10840 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10841}10841     \textcolor{keywordtype}{void} FatalConditionHandler::engage\_platform() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10842}10842         \textcolor{comment}{// Register as first handler in current chain}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10843}10843         exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10844}10844         \textcolor{keywordflow}{if} (!exceptionHandlerHandle) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10845}10845             \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not register vectored exception handler"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10846}10846         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10847}10847     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10848}10848 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10849}10849     \textcolor{keywordtype}{void} FatalConditionHandler::disengage\_platform() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10850}10850         \textcolor{keywordflow}{if} (!RemoveVectoredExceptionHandler(exceptionHandlerHandle)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10851}10851             \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not unregister vectored exception handler"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10852}10852         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10853}10853         exceptionHandlerHandle = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10854}10854     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10855}10855 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10856}10856 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10857}10857 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10858}10858 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_WINDOWS\_SEH}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10859}10859 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10860}10860 \textcolor{preprocessor}{\#if defined( CATCH\_CONFIG\_POSIX\_SIGNALS )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10861}10861 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10862}10862 \textcolor{preprocessor}{\#include <signal.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10863}10863 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10864}10864 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10865}10865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10866}10866     \textcolor{keyword}{struct }SignalDefs \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10867}10867         \textcolor{keywordtype}{int} id;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10868}10868         \textcolor{keyword}{const} \textcolor{keywordtype}{char}* name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10869}10869     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10870}10870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10871}10871     \textcolor{keyword}{static} SignalDefs signalDefs[] = \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10872}10872         \{ SIGINT,  \textcolor{stringliteral}{"{}SIGINT -\/ Terminal interrupt signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10873}10873         \{ SIGILL,  \textcolor{stringliteral}{"{}SIGILL -\/ Illegal instruction signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10874}10874         \{ SIGFPE,  \textcolor{stringliteral}{"{}SIGFPE -\/ Floating point error signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10875}10875         \{ SIGSEGV, \textcolor{stringliteral}{"{}SIGSEGV -\/ Segmentation violation signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10876}10876         \{ SIGTERM, \textcolor{stringliteral}{"{}SIGTERM -\/ Termination request signal"{}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10877}10877         \{ SIGABRT, \textcolor{stringliteral}{"{}SIGABRT -\/ Abort (abnormal termination) signal"{}} \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10878}10878     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10879}10879 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10880}10880 \textcolor{comment}{// Older GCCs trigger -\/Wmissing-\/field-\/initializers for T foo = \{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10881}10881 \textcolor{comment}{// which is zero initialization, but not explicit. We want to avoid}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10882}10882 \textcolor{comment}{// that.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10883}10883 \textcolor{preprocessor}{\#if defined(\_\_GNUC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10884}10884 \textcolor{preprocessor}{\#    pragma GCC diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10885}10885 \textcolor{preprocessor}{\#    pragma GCC diagnostic ignored "{}-\/Wmissing-\/field-\/initializers"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10886}10886 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10887}10887 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10888}10888     \textcolor{keyword}{static} \textcolor{keywordtype}{char}* altStackMem = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10889}10889     \textcolor{keyword}{static} std::size\_t altStackSize = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10890}10890     \textcolor{keyword}{static} stack\_t oldSigStack\{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10891}10891     \textcolor{keyword}{static} \textcolor{keyword}{struct }sigaction oldSigActions[sizeof(signalDefs) / sizeof(SignalDefs)]\{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10892}10892 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10893}10893     \textcolor{keyword}{static} \textcolor{keywordtype}{void} restorePreviousSignalHandlers() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10894}10894         \textcolor{comment}{// We set signal handlers back to the previous ones. Hopefully}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10895}10895         \textcolor{comment}{// nobody overwrote them in the meantime, and doesn't expect}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10896}10896         \textcolor{comment}{// their signal handlers to live past ours given that they}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10897}10897         \textcolor{comment}{// installed them after ours..}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10898}10898         \textcolor{keywordflow}{for} (std::size\_t i = 0; i < \textcolor{keyword}{sizeof}(signalDefs) / \textcolor{keyword}{sizeof}(SignalDefs); ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10899}10899             sigaction(signalDefs[i].\textcolor{keywordtype}{id}, \&oldSigActions[i], \textcolor{keyword}{nullptr});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10900}10900         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10901}10901         \textcolor{comment}{// Return the old stack}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10902}10902         sigaltstack(\&oldSigStack, \textcolor{keyword}{nullptr});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10903}10903     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10904}10904 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10905}10905     \textcolor{keyword}{static} \textcolor{keywordtype}{void} handleSignal( \textcolor{keywordtype}{int} sig ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10906}10906         \textcolor{keywordtype}{char} \textcolor{keyword}{const} * name = \textcolor{stringliteral}{"{}<unknown signal>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10907}10907         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& def : signalDefs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10908}10908             \textcolor{keywordflow}{if} (sig == def.id) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10909}10909                 name = def.name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10910}10910                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10911}10911             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10912}10912         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10913}10913         \textcolor{comment}{// We need to restore previous signal handlers and let them do}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10914}10914         \textcolor{comment}{// their thing, so that the users can have the debugger break}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10915}10915         \textcolor{comment}{// when a signal is raised, and so on.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10916}10916         restorePreviousSignalHandlers();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10917}10917         reportFatal( name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10918}10918         raise( sig );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10919}10919     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10920}10920 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10921}10921     FatalConditionHandler::FatalConditionHandler() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10922}10922         assert(!altStackMem \&\& \textcolor{stringliteral}{"{}Cannot initialize POSIX signal handler when one already exists"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10923}10923         \textcolor{keywordflow}{if} (altStackSize == 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10924}10924             altStackSize = \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{size\_t}\textcolor{keyword}{>}(SIGSTKSZ), minStackSizeForErrors);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10925}10925         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10926}10926         altStackMem = \textcolor{keyword}{new} \textcolor{keywordtype}{char}[altStackSize]();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10927}10927     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10928}10928 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10929}10929     FatalConditionHandler::\string~FatalConditionHandler() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10930}10930         \textcolor{keyword}{delete}[] altStackMem;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10931}10931         \textcolor{comment}{// We signal that another instance can be constructed by zeroing}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10932}10932         \textcolor{comment}{// out the pointer.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10933}10933         altStackMem = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10934}10934     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10935}10935 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10936}10936     \textcolor{keywordtype}{void} FatalConditionHandler::engage\_platform() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10937}10937         stack\_t sigStack;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10938}10938         sigStack.ss\_sp = altStackMem;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10939}10939         sigStack.ss\_size = altStackSize;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10940}10940         sigStack.ss\_flags = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10941}10941         sigaltstack(\&sigStack, \&oldSigStack);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10942}10942         \textcolor{keyword}{struct }sigaction sa = \{ \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10943}10943 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10944}10944         sa.sa\_handler = handleSignal;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10945}10945         sa.sa\_flags = SA\_ONSTACK;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10946}10946         \textcolor{keywordflow}{for} (std::size\_t i = 0; i < \textcolor{keyword}{sizeof}(signalDefs)/\textcolor{keyword}{sizeof}(SignalDefs); ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10947}10947             sigaction(signalDefs[i].\textcolor{keywordtype}{id}, \&sa, \&oldSigActions[i]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10948}10948         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10949}10949     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10950}10950 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10951}10951 \textcolor{preprocessor}{\#if defined(\_\_GNUC\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10952}10952 \textcolor{preprocessor}{\#    pragma GCC diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10953}10953 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10954}10954 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10955}10955     \textcolor{keywordtype}{void} FatalConditionHandler::disengage\_platform() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10956}10956         restorePreviousSignalHandlers();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10957}10957     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10958}10958 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10959}10959 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10960}10960 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10961}10961 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_POSIX\_SIGNALS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10962}10962 \textcolor{comment}{// end catch\_fatal\_condition.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10963}10963 \textcolor{comment}{// start catch\_generators.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10964}10964 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10965}10965 \textcolor{preprocessor}{\#include <limits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10966}10966 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10967}10967 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10968}10968 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10969}10969 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10970}10970 \mbox{\hyperlink{struct_catch_1_1_i_generator_tracker_a20b3c82baa68f821c180d6dac1234eb1}{IGeneratorTracker::\string~IGeneratorTracker}}() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10971}10971 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10972}10972 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \mbox{\hyperlink{class_catch_1_1_generator_exception_ac40705ff5da208ce3a7d3023d0d3f4c6}{GeneratorException::what}}() const noexcept \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10973}10973     \textcolor{keywordflow}{return} m\_msg;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10974}10974 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10975}10975 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10976}10976 \textcolor{keyword}{namespace }Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10977}10977 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10978}10978     \mbox{\hyperlink{class_catch_1_1_generators_1_1_generator_untyped_base_a6f05f8099fdc5744a7aff68aa8c09c7f}{GeneratorUntypedBase::\string~GeneratorUntypedBase}}() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10979}10979 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10980}10980     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_ac1fe3550c5f97370fc6729e04d7571b8}{acquireGeneratorTracker}}( StringRef generatorName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo ) -\/> IGeneratorTracker\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10981}10981         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a8f93a848e0a48b630ca9ecbf225e4817}{acquireGeneratorTracker}}( generatorName, lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10982}10982     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10983}10983 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10984}10984 \} \textcolor{comment}{// namespace Generators}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10985}10985 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10986}10986 \textcolor{comment}{// end catch\_generators.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10987}10987 \textcolor{comment}{// start catch\_interfaces\_capture.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10988}10988 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10989}10989 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10990}10990     \mbox{\hyperlink{struct_catch_1_1_i_result_capture_a3bd16719d6772b7470887fc36c6d0808}{IResultCapture::\string~IResultCapture}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10991}10991 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10992}10992 \textcolor{comment}{// end catch\_interfaces\_capture.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10993}10993 \textcolor{comment}{// start catch\_interfaces\_config.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10994}10994 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10995}10995 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10996}10996     \mbox{\hyperlink{struct_catch_1_1_i_config_adadf7c57478e4b0c83bea5b38d2dbc87}{IConfig::\string~IConfig}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10997}10997 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10998}10998 \textcolor{comment}{// end catch\_interfaces\_config.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l10999}10999 \textcolor{comment}{// start catch\_interfaces\_exception.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11000}11000 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11001}11001 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11002}11002     \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_afa00bb6258c07591df472aadae05783f}{IExceptionTranslator::\string~IExceptionTranslator}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11003}11003     \mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_acf7402e18789ea46d54ea8564ac358d3}{IExceptionTranslatorRegistry::\string~IExceptionTranslatorRegistry}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11004}11004 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11005}11005 \textcolor{comment}{// end catch\_interfaces\_exception.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11006}11006 \textcolor{comment}{// start catch\_interfaces\_registry\_hub.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11007}11007 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11008}11008 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11009}11009     \mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a050de0f27f96888c8b410992146c9a09}{IRegistryHub::\string~IRegistryHub}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11010}11010     \mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a759ca1e044e19f905fb4d306f1367193}{IMutableRegistryHub::\string~IMutableRegistryHub}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11011}11011 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11012}11012 \textcolor{comment}{// end catch\_interfaces\_registry\_hub.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11013}11013 \textcolor{comment}{// start catch\_interfaces\_reporter.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11014}11014 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11015}11015 \textcolor{comment}{// start catch\_reporter\_listening.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11016}11016 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11017}11017 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11018}11018 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11019}11019     \textcolor{keyword}{class }ListeningReporter : \textcolor{keyword}{public} IStreamingReporter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11020}11020         \textcolor{keyword}{using }Reporters = std::vector<IStreamingReporterPtr>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11021}11021         Reporters m\_listeners;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11022}11022         IStreamingReporterPtr m\_reporter = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11023}11023         ReporterPreferences m\_preferences;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11024}11024 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11025}11025     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11026}11026         ListeningReporter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11027}11027 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11028}11028         \textcolor{keywordtype}{void} addListener( IStreamingReporterPtr\&\& listener );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11029}11029         \textcolor{keywordtype}{void} addReporter( IStreamingReporterPtr\&\& reporter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11030}11030 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11031}11031     \textcolor{keyword}{public}: \textcolor{comment}{// IStreamingReporter}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11032}11032 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11033}11033         ReporterPreferences getPreferences() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11034}11034 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11035}11035         \textcolor{keywordtype}{void} noMatchingTestCases( std::string \textcolor{keyword}{const}\& spec ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11036}11036 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11037}11037         \textcolor{keywordtype}{void} reportInvalidArguments(std::string \textcolor{keyword}{const}\&arg) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11038}11038 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11039}11039         \textcolor{keyword}{static} std::set<Verbosity> getSupportedVerbosities();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11040}11040 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11041}11041 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11042}11042         \textcolor{keywordtype}{void} benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11043}11043         \textcolor{keywordtype}{void} benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& benchmarkInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11044}11044         \textcolor{keywordtype}{void} benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& benchmarkStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11045}11045         \textcolor{keywordtype}{void} benchmarkFailed(std::string \textcolor{keyword}{const}\&) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11046}11046 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11047}11047 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11048}11048         \textcolor{keywordtype}{void} testRunStarting( TestRunInfo \textcolor{keyword}{const}\& testRunInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11049}11049         \textcolor{keywordtype}{void} testGroupStarting( GroupInfo \textcolor{keyword}{const}\& groupInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11050}11050         \textcolor{keywordtype}{void} testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11051}11051         \textcolor{keywordtype}{void} sectionStarting( SectionInfo \textcolor{keyword}{const}\& sectionInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11052}11052         \textcolor{keywordtype}{void} assertionStarting( AssertionInfo \textcolor{keyword}{const}\& assertionInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11053}11053 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11054}11054         \textcolor{comment}{// The return value indicates if the messages buffer should be cleared:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11055}11055         \textcolor{keywordtype}{bool} assertionEnded( AssertionStats \textcolor{keyword}{const}\& assertionStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11056}11056         \textcolor{keywordtype}{void} sectionEnded( SectionStats \textcolor{keyword}{const}\& sectionStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11057}11057         \textcolor{keywordtype}{void} testCaseEnded( TestCaseStats \textcolor{keyword}{const}\& testCaseStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11058}11058         \textcolor{keywordtype}{void} testGroupEnded( TestGroupStats \textcolor{keyword}{const}\& testGroupStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11059}11059         \textcolor{keywordtype}{void} testRunEnded( TestRunStats \textcolor{keyword}{const}\& testRunStats ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11060}11060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11061}11061         \textcolor{keywordtype}{void} skipTest( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11062}11062         \textcolor{keywordtype}{bool} isMulti() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11063}11063 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11064}11064     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11065}11065 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11066}11066 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11067}11067 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11068}11068 \textcolor{comment}{// end catch\_reporter\_listening.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11069}11069 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11070}11070 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11071}11071     ReporterConfig::ReporterConfig( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_fullConfig )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11072}11072     :   m\_stream( \&\_fullConfig-\/>stream() ), m\_fullConfig( \_fullConfig ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11073}11073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11074}11074     ReporterConfig::ReporterConfig( \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_fullConfig, std::ostream\& \_stream )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11075}11075     :   m\_stream( \&\_stream ), m\_fullConfig( \_fullConfig ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11076}11076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11077}11077     std::ostream\& ReporterConfig::stream()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} *m\_stream; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11078}11078     \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} ReporterConfig::fullConfig()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} m\_fullConfig; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11079}11079 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11080}11080     TestRunInfo::TestRunInfo( std::string \textcolor{keyword}{const}\& \_name ) : name( \_name ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11081}11081 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11082}11082     GroupInfo::GroupInfo(  std::string \textcolor{keyword}{const}\& \_name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11083}11083                            std::size\_t \_groupIndex,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11084}11084                            std::size\_t \_groupsCount )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11085}11085     :   name( \_name ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11086}11086         groupIndex( \_groupIndex ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11087}11087         groupsCounts( \_groupsCount )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11088}11088     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11089}11089 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11090}11090      AssertionStats::AssertionStats( AssertionResult \textcolor{keyword}{const}\& \_assertionResult,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11091}11091                                      std::vector<MessageInfo> \textcolor{keyword}{const}\& \_infoMessages,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11092}11092                                      Totals \textcolor{keyword}{const}\& \_totals )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11093}11093     :   assertionResult( \_assertionResult ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11094}11094         infoMessages( \_infoMessages ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11095}11095         totals( \_totals )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11096}11096     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11097}11097         assertionResult.m\_resultData.lazyExpression.m\_transientExpression = \_assertionResult.m\_resultData.lazyExpression.m\_transientExpression;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11098}11098 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11099}11099         \textcolor{keywordflow}{if}( assertionResult.hasMessage() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11100}11100             \textcolor{comment}{// Copy message into messages list.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11101}11101             \textcolor{comment}{// !TBD This should have been done earlier, somewhere}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11102}11102             MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11103}11103             builder << assertionResult.getMessage();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11104}11104             builder.m\_info.message = builder.m\_stream.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11105}11105 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11106}11106             infoMessages.push\_back( builder.m\_info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11107}11107         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11108}11108     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11109}11109 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11110}11110      AssertionStats::\string~AssertionStats() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11111}11111 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11112}11112     SectionStats::SectionStats(  SectionInfo \textcolor{keyword}{const}\& \_sectionInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11113}11113                                  Counts \textcolor{keyword}{const}\& \_assertions,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11114}11114                                  \textcolor{keywordtype}{double} \_durationInSeconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11115}11115                                  \textcolor{keywordtype}{bool} \_missingAssertions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11116}11116     :   sectionInfo( \_sectionInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11117}11117         assertions( \_assertions ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11118}11118         durationInSeconds( \_durationInSeconds ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11119}11119         missingAssertions( \_missingAssertions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11120}11120     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11121}11121 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11122}11122     SectionStats::\string~SectionStats() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11123}11123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11124}11124     TestCaseStats::TestCaseStats(  TestCaseInfo \textcolor{keyword}{const}\& \_testInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11125}11125                                    Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11126}11126                                    std::string \textcolor{keyword}{const}\& \_stdOut,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11127}11127                                    std::string \textcolor{keyword}{const}\& \_stdErr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11128}11128                                    \textcolor{keywordtype}{bool} \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11129}11129     : testInfo( \_testInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11130}11130         totals( \_totals ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11131}11131         stdOut( \_stdOut ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11132}11132         stdErr( \_stdErr ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11133}11133         aborting( \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11134}11134     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11135}11135 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11136}11136     TestCaseStats::\string~TestCaseStats() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11137}11137 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11138}11138     TestGroupStats::TestGroupStats( GroupInfo \textcolor{keyword}{const}\& \_groupInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11139}11139                                     Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11140}11140                                     \textcolor{keywordtype}{bool} \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11141}11141     :   groupInfo( \_groupInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11142}11142         totals( \_totals ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11143}11143         aborting( \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11144}11144     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11145}11145 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11146}11146     TestGroupStats::TestGroupStats( GroupInfo \textcolor{keyword}{const}\& \_groupInfo )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11147}11147     :   groupInfo( \_groupInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11148}11148         aborting( false )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11149}11149     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11150}11150 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11151}11151     TestGroupStats::\string~TestGroupStats() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11152}11152 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11153}11153     TestRunStats::TestRunStats(   TestRunInfo \textcolor{keyword}{const}\& \_runInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11154}11154                     Totals \textcolor{keyword}{const}\& \_totals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11155}11155                     \textcolor{keywordtype}{bool} \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11156}11156     :   runInfo( \_runInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11157}11157         totals( \_totals ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11158}11158         aborting( \_aborting )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11159}11159     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11160}11160 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11161}11161     TestRunStats::\string~TestRunStats() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11162}11162 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11163}11163     \textcolor{keywordtype}{void} IStreamingReporter::fatalErrorEncountered( StringRef ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11164}11164     \textcolor{keywordtype}{bool} IStreamingReporter::isMulti()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11165}11165 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11166}11166     IReporterFactory::\string~IReporterFactory() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11167}11167     IReporterRegistry::\string~IReporterRegistry() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11168}11168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11169}11169 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11170}11170 \textcolor{comment}{// end catch\_interfaces\_reporter.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11171}11171 \textcolor{comment}{// start catch\_interfaces\_runner.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11172}11172 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11173}11173 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11174}11174     \mbox{\hyperlink{struct_catch_1_1_i_runner_a5f539a88a7772d68de8a2e4028774209}{IRunner::\string~IRunner}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11175}11175 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11176}11176 \textcolor{comment}{// end catch\_interfaces\_runner.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11177}11177 \textcolor{comment}{// start catch\_interfaces\_testcase.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11178}11178 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11179}11179 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11180}11180     \mbox{\hyperlink{struct_catch_1_1_i_test_invoker_a2c89f3eece5b1b677243766e409bd831}{ITestInvoker::\string~ITestInvoker}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11181}11181     \mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_ae14798f05ac8e2b18cff532849a4da81}{ITestCaseRegistry::\string~ITestCaseRegistry}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11182}11182 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11183}11183 \textcolor{comment}{// end catch\_interfaces\_testcase.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11184}11184 \textcolor{comment}{// start catch\_leak\_detector.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11185}11185 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11186}11186 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_WINDOWS\_CRTDBG}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11187}11187 \textcolor{preprocessor}{\#include <crtdbg.h>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11188}11188 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11189}11189 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11190}11190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11191}11191     LeakDetector::LeakDetector() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11192}11192         \textcolor{keywordtype}{int} flag = \_CrtSetDbgFlag(\_CRTDBG\_REPORT\_FLAG);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11193}11193         flag |= \_CRTDBG\_LEAK\_CHECK\_DF;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11194}11194         flag |= \_CRTDBG\_ALLOC\_MEM\_DF;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11195}11195         \_CrtSetDbgFlag(flag);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11196}11196         \_CrtSetReportMode(\_CRT\_WARN, \_CRTDBG\_MODE\_FILE | \_CRTDBG\_MODE\_DEBUG);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11197}11197         \_CrtSetReportFile(\_CRT\_WARN, \_CRTDBG\_FILE\_STDERR);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11198}11198         \textcolor{comment}{// Change this to leaking allocation's number to break there}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11199}11199         \_CrtSetBreakAlloc(-\/1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11200}11200     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11201}11201 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11202}11202 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11203}11203 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11204}11204 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11205}11205     Catch::LeakDetector::LeakDetector() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11206}11206 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11207}11207 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11208}11208 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11209}11209 Catch::LeakDetector::\string~LeakDetector() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11210}11210     \mbox{\hyperlink{namespace_catch_a0f78e9afdebc6d4512d18e76fbf54b8c}{Catch::cleanUp}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11211}11211 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11212}11212 \textcolor{comment}{// end catch\_leak\_detector.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11213}11213 \textcolor{comment}{// start catch\_list.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11214}11214 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11215}11215 \textcolor{comment}{// start catch\_list.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11216}11216 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11217}11217 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11218}11218 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11219}11219 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11220}11220 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11221}11221     std::size\_t listTests( Config \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11222}11222 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11223}11223     std::size\_t listTestsNamesOnly( Config \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11224}11224 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11225}11225     \textcolor{keyword}{struct }TagInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11226}11226         \textcolor{keywordtype}{void} add( std::string \textcolor{keyword}{const}\& spelling );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11227}11227         std::string all() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11228}11228 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11229}11229         std::set<std::string> spellings;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11230}11230         std::size\_t count = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11231}11231     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11232}11232 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11233}11233     std::size\_t listTags( Config \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11234}11234 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11235}11235     std::size\_t listReporters();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11236}11236 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11237}11237     Option<std::size\_t> list( std::shared\_ptr<Config> \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11238}11238 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11239}11239 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11240}11240 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11241}11241 \textcolor{comment}{// end catch\_list.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11242}11242 \textcolor{comment}{// start catch\_text.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11243}11243 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11244}11244 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11245}11245     \textcolor{keyword}{using namespace }clara::TextFlow;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11246}11246 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11247}11247 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11248}11248 \textcolor{comment}{// end catch\_text.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11249}11249 \textcolor{preprocessor}{\#include <limits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11250}11250 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11251}11251 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11252}11252 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11253}11253 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11254}11254 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11255}11255     std::size\_t listTests( Config \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11256}11256         TestSpec \textcolor{keyword}{const}\& testSpec = config.testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11257}11257         \textcolor{keywordflow}{if}( config.hasTestFilters() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11258}11258             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}Matching test cases:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11259}11259         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11260}11260             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}All available test cases:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11261}11261         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11262}11262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11263}11263         \textcolor{keyword}{auto} matchedTestCases = \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( config ), testSpec, config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11264}11264         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCaseInfo : matchedTestCases ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11265}11265             Colour::Code colour = testCaseInfo.isHidden()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11266}11266                 ? Colour::SecondaryText}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11267}11267                 : Colour::None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11268}11268             Colour colourGuard( colour );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11269}11269 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11270}11270             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << Column( testCaseInfo.name ).initialIndent( 2 ).indent( 4 ) << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11271}11271             \textcolor{keywordflow}{if}( config.verbosity() >= \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35}{Verbosity::High}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11272}11272                 \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << Column( \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{Catch::Detail::stringify}}( testCaseInfo.lineInfo ) ).indent(4) << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11273}11273                 std::string description = testCaseInfo.description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11274}11274                 \textcolor{keywordflow}{if}( description.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11275}11275                     description = \textcolor{stringliteral}{"{}(NO DESCRIPTION)"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11276}11276                 \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << Column( description ).indent(4) << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11277}11277             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11278}11278             \textcolor{keywordflow}{if}( !testCaseInfo.tags.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11279}11279                 \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << Column( testCaseInfo.tagsAsString() ).indent( 6 ) << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11280}11280         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11281}11281 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11282}11282         \textcolor{keywordflow}{if}( !config.hasTestFilters() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11283}11283             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << pluralise( matchedTestCases.size(), \textcolor{stringliteral}{"{}test case"{}} ) << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11284}11284         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11285}11285             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << pluralise( matchedTestCases.size(), \textcolor{stringliteral}{"{}matching test case"{}} ) << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11286}11286         \textcolor{keywordflow}{return} matchedTestCases.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11287}11287     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11288}11288 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11289}11289     std::size\_t listTestsNamesOnly( Config \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11290}11290         TestSpec \textcolor{keyword}{const}\& testSpec = config.testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11291}11291         std::size\_t matchedTests = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11292}11292         std::vector<TestCase> matchedTestCases = \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( config ), testSpec, config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11293}11293         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCaseInfo : matchedTestCases ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11294}11294             matchedTests++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11295}11295             \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( testCaseInfo.name, \textcolor{charliteral}{'\#'} ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11296}11296                \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{charliteral}{'"{}'} << testCaseInfo.name << \textcolor{charliteral}{'"{}'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11297}11297             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11298}11298                \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << testCaseInfo.name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11299}11299             \textcolor{keywordflow}{if} ( config.verbosity() >= \mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35}{Verbosity::High}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11300}11300                 \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}\(\backslash\)t@"{}} << testCaseInfo.lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11301}11301             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11302}11302         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11303}11303         \textcolor{keywordflow}{return} matchedTests;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11304}11304     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11305}11305 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11306}11306     \textcolor{keywordtype}{void} TagInfo::add( std::string \textcolor{keyword}{const}\& spelling ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11307}11307         ++count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11308}11308         spellings.insert( spelling );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11309}11309     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11310}11310 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11311}11311     std::string TagInfo::all()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11312}11312         \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11313}11313         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& spelling : spellings) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11314}11314             \textcolor{comment}{// Add 2 for the brackes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11315}11315             \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} += spelling.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() + 2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11316}11316         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11317}11317 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11318}11318         std::string out; out.reserve(\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11319}11319         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& spelling : spellings) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11320}11320             out += '[';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11321}11321             out += spelling;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11322}11322             out += ']';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11323}11323         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11324}11324         \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11325}11325     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11326}11326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11327}11327     std::size\_t listTags( Config \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11328}11328         TestSpec \textcolor{keyword}{const}\& testSpec = config.testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11329}11329         \textcolor{keywordflow}{if}( config.hasTestFilters() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11330}11330             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}Tags for matching test cases:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11331}11331         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11332}11332             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}All available tags:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11333}11333         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11334}11334 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11335}11335         std::map<std::string, TagInfo> tagCounts;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11336}11336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11337}11337         std::vector<TestCase> matchedTestCases = \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( config ), testSpec, config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11338}11338         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCase : matchedTestCases ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11339}11339             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& tagName : testCase.getTestCaseInfo().tags ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11340}11340                 std::string lcaseTagName = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( tagName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11341}11341                 \textcolor{keyword}{auto} countIt = tagCounts.find( lcaseTagName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11342}11342                 \textcolor{keywordflow}{if}( countIt == tagCounts.end() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11343}11343                     countIt = tagCounts.insert( std::make\_pair( lcaseTagName, TagInfo() ) ).first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11344}11344                 countIt-\/>second.add( tagName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11345}11345             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11346}11346         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11347}11347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11348}11348         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& tagCount : tagCounts ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11349}11349             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11350}11350             rss << \textcolor{stringliteral}{"{}  "{}} << std::setw(2) << tagCount.second.count << \textcolor{stringliteral}{"{}  "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11351}11351             \textcolor{keyword}{auto} str = rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11352}11352             \textcolor{keyword}{auto} wrapper = Column( tagCount.second.all() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11353}11353                                                     .initialIndent( 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11354}11354                                                     .indent( str.size() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11355}11355                                                     .width( CATCH\_CONFIG\_CONSOLE\_WIDTH-\/10 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11356}11356             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << str << wrapper << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11357}11357         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11358}11358         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << pluralise( tagCounts.size(), \textcolor{stringliteral}{"{}tag"{}} ) << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11359}11359         \textcolor{keywordflow}{return} tagCounts.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11360}11360     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11361}11361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11362}11362     std::size\_t listReporters() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11363}11363         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}Available reporters:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11364}11364         IReporterRegistry::FactoryMap \textcolor{keyword}{const}\& factories = \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{getReporterRegistry}}().getFactories();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11365}11365         std::size\_t maxNameLen = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11366}11366         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& factoryKvp : factories )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11367}11367             maxNameLen = (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}})( maxNameLen, factoryKvp.first.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11368}11368 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11369}11369         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& factoryKvp : factories ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11370}11370             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11371}11371                     << Column( factoryKvp.first + \textcolor{stringliteral}{"{}:"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11372}11372                             .indent(2)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11373}11373                             .width( 5+maxNameLen )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11374}11374                     +  Column( factoryKvp.second-\/>getDescription() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11375}11375                             .initialIndent(0)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11376}11376                             .indent(2)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11377}11377                             .width( CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ maxNameLen-\/8 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11378}11378                     << "{}\(\backslash\)n"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11379}11379         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11380}11380         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11381}11381         \textcolor{keywordflow}{return} factories.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11382}11382     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11383}11383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11384}11384     Option<std::size\_t> list( std::shared\_ptr<Config> \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11385}11385         Option<std::size\_t> listedCount;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11386}11386         \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_aa81ba080fce084e9482f20338bc88531}{setConfig}}( config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11387}11387         \textcolor{keywordflow}{if}( config-\/>listTests() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11388}11388             listedCount = listedCount.valueOr(0) + listTests( *config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11389}11389         \textcolor{keywordflow}{if}( config-\/>listTestNamesOnly() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11390}11390             listedCount = listedCount.valueOr(0) + listTestsNamesOnly( *config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11391}11391         \textcolor{keywordflow}{if}( config-\/>listTags() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11392}11392             listedCount = listedCount.valueOr(0) + listTags( *config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11393}11393         \textcolor{keywordflow}{if}( config-\/>listReporters() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11394}11394             listedCount = listedCount.valueOr(0) + listReporters();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11395}11395         \textcolor{keywordflow}{return} listedCount;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11396}11396     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11397}11397 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11398}11398 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11399}11399 \textcolor{comment}{// end catch\_list.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11400}11400 \textcolor{comment}{// start catch\_matchers.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11401}11401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11402}11402 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11403}11403 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11404}11404     \textcolor{keyword}{namespace }Impl \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11405}11405 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11406}11406         std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a5982c7c80ca71dfe2298babadad7a453}{MatcherUntypedBase::toString}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11407}11407             \textcolor{keywordflow}{if}( \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a951095c462657e7097a9a6dc4dde813f}{m\_cachedToString}}.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11408}11408                 \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a951095c462657e7097a9a6dc4dde813f}{m\_cachedToString}} = \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a91d3a907dbfcbb596077df24f6e11fe2}{describe}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11409}11409             \textcolor{keywordflow}{return} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a951095c462657e7097a9a6dc4dde813f}{m\_cachedToString}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11410}11410         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11411}11411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11412}11412         \mbox{\hyperlink{class_catch_1_1_matchers_1_1_impl_1_1_matcher_untyped_base_a853be93ce33f71b5abede38081c79e9d}{MatcherUntypedBase::\string~MatcherUntypedBase}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11413}11413 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11414}11414     \} \textcolor{comment}{// namespace Impl}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11415}11415 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11416}11416 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11417}11417 \textcolor{keyword}{using namespace }Matchers;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11418}11418 \textcolor{keyword}{using }Matchers::Impl::MatcherBase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11419}11419 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11420}11420 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11421}11421 \textcolor{comment}{// end catch\_matchers.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11422}11422 \textcolor{comment}{// start catch\_matchers\_exception.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11423}11423 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11424}11424 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11425}11425 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11426}11426 \textcolor{keyword}{namespace }Exception \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11427}11427 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11428}11428 \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_aa0566d24990d69e96495360b8f79593d}{ExceptionMessageMatcher::match}}(std::exception \textcolor{keyword}{const}\& ex)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11429}11429     \textcolor{keywordflow}{return} ex.what() == m\_message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11430}11430 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11431}11431 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11432}11432 std::string \mbox{\hyperlink{class_catch_1_1_matchers_1_1_exception_1_1_exception_message_matcher_a3543441985ec877a781e660a403b1bae}{ExceptionMessageMatcher::describe}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11433}11433     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}exception message matches \(\backslash\)"{}"{}} + m\_message + "{}\(\backslash\)"{}"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11434}11434 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11435}11435 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11436}11436 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11437}11437 Exception::ExceptionMessageMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_a0fcd8bd126bb510a6bb99e6360aa270a}{Message}}(std::string \textcolor{keyword}{const}\& message) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11438}11438     \textcolor{keywordflow}{return} Exception::ExceptionMessageMatcher(message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11439}11439 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11440}11440 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11441}11441 \textcolor{comment}{// namespace Exception}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11442}11442 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11443}11443 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11444}11444 \textcolor{comment}{// end catch\_matchers\_exception.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11445}11445 \textcolor{comment}{// start catch\_matchers\_floating.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11446}11446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11447}11447 \textcolor{comment}{// start catch\_polyfills.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11448}11448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11449}11449 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11450}11450     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{float} f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11451}11451     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{double} d);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11452}11452 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11453}11453 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11454}11454 \textcolor{comment}{// end catch\_polyfills.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11455}11455 \textcolor{comment}{// start catch\_to\_string.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11456}11456 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11457}11457 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11458}11458 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11459}11459 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11460}11460     \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11461}11461     std::string \mbox{\hyperlink{namespacekblib_a7e5282c0d49c09a8dce3bd2ba6a33ec6}{to\_string}}(T \textcolor{keyword}{const}\& t) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11462}11462 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_CPP11\_TO\_STRING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11463}11463         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a7e5282c0d49c09a8dce3bd2ba6a33ec6}{std::to\_string}}(t);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11464}11464 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11465}11465         ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11466}11466         rss << t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11467}11467         \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11468}11468 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11469}11469     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11470}11470 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11471}11471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11472}11472 \textcolor{comment}{// end catch\_to\_string.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11473}11473 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11474}11474 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11475}11475 \textcolor{preprocessor}{\#include <cstdlib>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11476}11476 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11477}11477 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11478}11478 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11479}11479 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11480}11480 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11481}11481 \textcolor{preprocessor}{\#include <limits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11482}11482 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11483}11483 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11484}11484 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11485}11485 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11486}11486     int32\_t convert(\textcolor{keywordtype}{float} f) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11487}11487         \textcolor{keyword}{static\_assert}(\textcolor{keyword}{sizeof}(float) == \textcolor{keyword}{sizeof}(int32\_t), \textcolor{stringliteral}{"{}Important ULP matcher assumption violated"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11488}11488         int32\_t i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11489}11489         std::memcpy(\&i, \&f, \textcolor{keyword}{sizeof}(f));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11490}11490         \textcolor{keywordflow}{return} i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11491}11491     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11492}11492 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11493}11493     int64\_t convert(\textcolor{keywordtype}{double} d) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11494}11494         \textcolor{keyword}{static\_assert}(\textcolor{keyword}{sizeof}(double) == \textcolor{keyword}{sizeof}(int64\_t), \textcolor{stringliteral}{"{}Important ULP matcher assumption violated"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11495}11495         int64\_t i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11496}11496         std::memcpy(\&i, \&d, \textcolor{keyword}{sizeof}(d));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11497}11497         \textcolor{keywordflow}{return} i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11498}11498     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11499}11499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11500}11500     \textcolor{keyword}{template} <\textcolor{keyword}{typename} FP>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11501}11501     \textcolor{keywordtype}{bool} almostEqualUlps(FP lhs, FP rhs, uint64\_t maxUlpDiff) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11502}11502         \textcolor{comment}{// Comparison with NaN should always be false.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11503}11503         \textcolor{comment}{// This way we can rule it out before getting into the ugly details}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11504}11504         \textcolor{keywordflow}{if} (Catch::isnan(lhs) || Catch::isnan(rhs)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11505}11505             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11506}11506         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11507}11507 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11508}11508         \textcolor{keyword}{auto} lc = convert(lhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11509}11509         \textcolor{keyword}{auto} rc = convert(rhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11510}11510 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11511}11511         \textcolor{keywordflow}{if} ((lc < 0) != (rc < 0)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11512}11512             \textcolor{comment}{// Potentially we can have +0 and -\/0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11513}11513             \textcolor{keywordflow}{return} lhs == rhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11514}11514         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11515}11515 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11516}11516         \textcolor{comment}{// static cast as a workaround for IBM XLC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11517}11517         \textcolor{keyword}{auto} ulpDiff = std::abs(\textcolor{keyword}{static\_cast<}FP\textcolor{keyword}{>}(lc -\/ rc));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11518}11518         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}uint64\_t\textcolor{keyword}{>}(ulpDiff) <= maxUlpDiff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11519}11519     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11520}11520 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11521}11521 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_GLOBAL\_NEXTAFTER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11522}11522 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11523}11523     \textcolor{keywordtype}{float} nextafter(\textcolor{keywordtype}{float} x, \textcolor{keywordtype}{float} y) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11524}11524         return ::nextafterf(x, y);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11525}11525     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11526}11526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11527}11527     \textcolor{keywordtype}{double} nextafter(\textcolor{keywordtype}{double} x, \textcolor{keywordtype}{double} y) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11528}11528         return ::nextafter(x, y);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11529}11529     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11530}11530 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11531}11531 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \string^\string^\string^ CATCH\_CONFIG\_GLOBAL\_NEXTAFTER \string^\string^\string^}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11532}11532 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11533}11533 \textcolor{keyword}{template} <\textcolor{keyword}{typename} FP>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11534}11534 FP step(FP start, FP direction, uint64\_t steps) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11535}11535     \textcolor{keywordflow}{for} (uint64\_t i = 0; i < steps; ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11536}11536 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_GLOBAL\_NEXTAFTER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11537}11537         start = Catch::nextafter(start, direction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11538}11538 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11539}11539         start = std::nextafter(start, direction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11540}11540 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11541}11541     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11542}11542     \textcolor{keywordflow}{return} start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11543}11543 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11544}11544 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11545}11545 \textcolor{comment}{// Performs equivalent check of std::fabs(lhs -\/ rhs) <= margin}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11546}11546 \textcolor{comment}{// But without the subtraction to allow for INFINITY in comparison}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11547}11547 \textcolor{keywordtype}{bool} marginComparison(\textcolor{keywordtype}{double} lhs, \textcolor{keywordtype}{double} rhs, \textcolor{keywordtype}{double} margin) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11548}11548     \textcolor{keywordflow}{return} (lhs + margin >= rhs) \&\& (rhs + margin >= lhs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11549}11549 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11550}11550 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11551}11551 \textcolor{keyword}{template} <\textcolor{keyword}{typename} FloatingPo\textcolor{keywordtype}{int}>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11552}11552 \textcolor{keywordtype}{void} write(std::ostream\& out, FloatingPoint num) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11553}11553     out << std::scientific}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11554}11554         << std::setprecision(std::numeric\_limits<FloatingPoint>::max\_digits10 -\/ 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11555}11555         << num;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11556}11556 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11557}11557 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11558}11558 \} \textcolor{comment}{// end anonymous namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11559}11559 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11560}11560 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11561}11561 \textcolor{keyword}{namespace }Floating \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11562}11562 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11563}11563     \textcolor{keyword}{enum class} FloatingPointKind : uint8\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11564}11564         Float,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11565}11565         Double}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11566}11566     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11567}11567 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11568}11568     WithinAbsMatcher::WithinAbsMatcher(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} margin)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11569}11569         :m\_target\{ target \}, m\_margin\{ margin \} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11570}11570         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(margin >= 0, \textcolor{stringliteral}{"{}Invalid margin: "{}} << margin << \textcolor{charliteral}{'.'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11571}11571             << \textcolor{stringliteral}{"{} Margin has to be non-\/negative."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11572}11572     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11573}11573 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11574}11574     \textcolor{comment}{// Performs equivalent check of std::fabs(lhs -\/ rhs) <= margin}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11575}11575     \textcolor{comment}{// But without the subtraction to allow for INFINITY in comparison}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11576}11576     \textcolor{keywordtype}{bool} WithinAbsMatcher::match(\textcolor{keywordtype}{double} \textcolor{keyword}{const}\& matchee)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11577}11577         \textcolor{keywordflow}{return} (matchee + m\_margin >= m\_target) \&\& (m\_target + m\_margin >= matchee);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11578}11578     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11579}11579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11580}11580     std::string WithinAbsMatcher::describe()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11581}11581         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}is within "{}} + ::Catch::Detail::stringify(m\_margin) + "{} of "{} + ::Catch::Detail::stringify(m\_target);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11582}11582     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11583}11583 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11584}11584     WithinUlpsMatcher::WithinUlpsMatcher(\textcolor{keywordtype}{double} target, uint64\_t ulps, FloatingPointKind baseType)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11585}11585         :m\_target\{ target \}, m\_ulps\{ ulps \}, m\_type\{ baseType \} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11586}11586         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(m\_type == FloatingPointKind::Double}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11587}11587                    || m\_ulps < (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::numeric\_limits<uint32\_t>::max}})(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11588}11588             \textcolor{stringliteral}{"{}Provided ULP is impossibly large for a float comparison."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11589}11589     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11590}11590 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11591}11591 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11592}11592 \textcolor{preprocessor}{\#pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11593}11593 \textcolor{comment}{// Clang <3.5 reports on the default branch in the switch below}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11594}11594 \textcolor{preprocessor}{\#pragma clang diagnostic ignored "{}-\/Wunreachable-\/code"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11595}11595 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11596}11596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11597}11597     \textcolor{keywordtype}{bool} WithinUlpsMatcher::match(\textcolor{keywordtype}{double} \textcolor{keyword}{const}\& matchee)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11598}11598         \textcolor{keywordflow}{switch} (m\_type) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11599}11599         \textcolor{keywordflow}{case} FloatingPointKind::Float:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11600}11600             \textcolor{keywordflow}{return} almostEqualUlps<float>(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(matchee), \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(m\_target), m\_ulps);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11601}11601         \textcolor{keywordflow}{case} FloatingPointKind::Double:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11602}11602             \textcolor{keywordflow}{return} almostEqualUlps<double>(matchee, m\_target, m\_ulps);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11603}11603         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11604}11604             \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Unknown FloatingPointKind value"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11605}11605         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11606}11606     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11607}11607 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11608}11608 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11609}11609 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11610}11610 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11611}11611 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11612}11612     std::string WithinUlpsMatcher::describe()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11613}11613         std::stringstream ret;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11614}11614 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11615}11615         ret << \textcolor{stringliteral}{"{}is within "{}} << m\_ulps << \textcolor{stringliteral}{"{} ULPs of "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11616}11616 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11617}11617         \textcolor{keywordflow}{if} (m\_type == FloatingPointKind::Float) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11618}11618             write(ret, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(m\_target));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11619}11619             ret << \textcolor{charliteral}{'f'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11620}11620         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11621}11621             write(ret, m\_target);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11622}11622         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11623}11623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11624}11624         ret << \textcolor{stringliteral}{"{} (["{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11625}11625         \textcolor{keywordflow}{if} (m\_type == FloatingPointKind::Double) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11626}11626             write(ret, step(m\_target, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(-\/INFINITY), m\_ulps));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11627}11627             ret << \textcolor{stringliteral}{"{}, "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11628}11628             write(ret, step(m\_target, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}( INFINITY), m\_ulps));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11629}11629         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11630}11630             \textcolor{comment}{// We have to cast INFINITY to float because of MinGW, see \#1782}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11631}11631             write(ret, step(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(m\_target), \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(-\/INFINITY), m\_ulps));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11632}11632             ret << \textcolor{stringliteral}{"{}, "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11633}11633             write(ret, step(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}(m\_target), \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{float}\textcolor{keyword}{>}( INFINITY), m\_ulps));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11634}11634         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11635}11635         ret << \textcolor{stringliteral}{"{}])"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11636}11636 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11637}11637         \textcolor{keywordflow}{return} ret.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11638}11638     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11639}11639 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11640}11640     WithinRelMatcher::WithinRelMatcher(\textcolor{keywordtype}{double} target, \textcolor{keywordtype}{double} epsilon):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11641}11641         m\_target(target),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11642}11642         m\_epsilon(epsilon)\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11643}11643         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(m\_epsilon >= 0., \textcolor{stringliteral}{"{}Relative comparison with epsilon <  0 does not make sense."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11644}11644         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(m\_epsilon  < 1., "{}Relative comparison with epsilon >= 1 does not make sense.\textcolor{stringliteral}{"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11645}11645 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11646}11646 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11647}11647 \textcolor{stringliteral}{    bool WithinRelMatcher::match(double const\& matchee) const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11648}11648 \textcolor{stringliteral}{        const auto relMargin = m\_epsilon * (std::max)(std::fabs(matchee), std::fabs(m\_target));}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11649}11649 \textcolor{stringliteral}{        return marginComparison(matchee, m\_target,}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11650}11650 \textcolor{stringliteral}{                                std::isinf(relMargin)? 0 : relMargin);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11651}11651 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11652}11652 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11653}11653 \textcolor{stringliteral}{    std::string WithinRelMatcher::describe() const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11654}11654 \textcolor{stringliteral}{        Catch::ReusableStringStream sstr;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11655}11655 \textcolor{stringliteral}{        sstr << "{}}and \textcolor{stringliteral}{"{} << m\_target << "{}} are within \textcolor{stringliteral}{"{} << m\_epsilon * 100. << "{}}\% of each other\textcolor{stringliteral}{"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11656}11656 \textcolor{stringliteral}{        return sstr.str();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11657}11657 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11658}11658 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11659}11659 \textcolor{stringliteral}{\}// namespace Floating}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11660}11660 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11661}11661 \textcolor{stringliteral}{Floating::WithinUlpsMatcher WithinULP(double target, uint64\_t maxUlpDiff) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11662}11662 \textcolor{stringliteral}{    return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Double);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11663}11663 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11664}11664 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11665}11665 \textcolor{stringliteral}{Floating::WithinUlpsMatcher WithinULP(float target, uint64\_t maxUlpDiff) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11666}11666 \textcolor{stringliteral}{    return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Float);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11667}11667 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11668}11668 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11669}11669 \textcolor{stringliteral}{Floating::WithinAbsMatcher WithinAbs(double target, double margin) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11670}11670 \textcolor{stringliteral}{    return Floating::WithinAbsMatcher(target, margin);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11671}11671 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11672}11672 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11673}11673 \textcolor{stringliteral}{Floating::WithinRelMatcher WithinRel(double target, double eps) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11674}11674 \textcolor{stringliteral}{    return Floating::WithinRelMatcher(target, eps);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11675}11675 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11676}11676 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11677}11677 \textcolor{stringliteral}{Floating::WithinRelMatcher WithinRel(double target) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11678}11678 \textcolor{stringliteral}{    return Floating::WithinRelMatcher(target, std::numeric\_limits<double>::epsilon() * 100);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11679}11679 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11680}11680 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11681}11681 \textcolor{stringliteral}{Floating::WithinRelMatcher WithinRel(float target, float eps) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11682}11682 \textcolor{stringliteral}{    return Floating::WithinRelMatcher(target, eps);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11683}11683 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11684}11684 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11685}11685 \textcolor{stringliteral}{Floating::WithinRelMatcher WithinRel(float target) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11686}11686 \textcolor{stringliteral}{    return Floating::WithinRelMatcher(target, std::numeric\_limits<float>::epsilon() * 100);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11687}11687 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11688}11688 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11689}11689 \textcolor{stringliteral}{\} // namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11690}11690 \textcolor{stringliteral}{\} // namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11691}11691 \textcolor{stringliteral}{// end catch\_matchers\_floating.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11692}11692 \textcolor{stringliteral}{// start catch\_matchers\_generic.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11693}11693 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11694}11694 \textcolor{stringliteral}{std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string\& desc) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11695}11695 \textcolor{stringliteral}{    if (desc.empty()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11696}11696 \textcolor{stringliteral}{        return "{}}matches undescribed predicate\textcolor{stringliteral}{"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11697}11697 \textcolor{stringliteral}{    \} else \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11698}11698 \textcolor{stringliteral}{        return "{}}matches predicate: \(\backslash\)\textcolor{stringliteral}{"{}"{}} + desc + \textcolor{charliteral}{'"{}'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11699}11699     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11700}11700 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11701}11701 \textcolor{comment}{// end catch\_matchers\_generic.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11702}11702 \textcolor{comment}{// start catch\_matchers\_string.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11703}11703 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11704}11704 \textcolor{preprocessor}{\#include <regex>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11705}11705 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11706}11706 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11707}11707 \textcolor{keyword}{namespace }Matchers \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11708}11708 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11709}11709     \textcolor{keyword}{namespace }StdString \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11710}11710 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11711}11711         \mbox{\hyperlink{struct_catch_1_1_matchers_1_1_std_string_1_1_cased_string_aa88bbc5acd2bff22351d8d4b1816b561}{CasedString::CasedString}}( std::string \textcolor{keyword}{const}\& str, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11712}11712         :   m\_caseSensitivity( caseSensitivity ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11713}11713             m\_str( adjustString( str ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11714}11714         \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11715}11715         std::string CasedString::adjustString( std::string \textcolor{keyword}{const}\& str )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11716}11716             \textcolor{keywordflow}{return} m\_caseSensitivity == \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aaeabe15dea2b2d0ea0847e88a9b2a99eb}{CaseSensitive::No}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11717}11717                    ? \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( str )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11718}11718                    : str;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11719}11719         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11720}11720         std::string CasedString::caseSensitivitySuffix()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11721}11721             \textcolor{keywordflow}{return} m\_caseSensitivity == \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aaeabe15dea2b2d0ea0847e88a9b2a99eb}{CaseSensitive::No}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11722}11722                    ? \textcolor{stringliteral}{"{} (case insensitive)"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11723}11723                    : std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11724}11724         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11725}11725 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11726}11726         StringMatcherBase::StringMatcherBase( std::string \textcolor{keyword}{const}\& operation, CasedString \textcolor{keyword}{const}\& comparator )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11727}11727         : m\_comparator( comparator ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11728}11728           m\_operation( operation ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11729}11729         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11730}11730 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11731}11731         std::string StringMatcherBase::describe()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11732}11732             std::string description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11733}11733             description.reserve(5 + m\_operation.size() + m\_comparator.m\_str.size() +}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11734}11734                                         m\_comparator.caseSensitivitySuffix().size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11735}11735             description += m\_operation;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11736}11736             description += "{}: \(\backslash\)"{}"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11737}11737             description += m\_comparator.m\_str;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11738}11738             description += "{}\(\backslash\)"{}"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11739}11739             description += m\_comparator.caseSensitivitySuffix();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11740}11740             \textcolor{keywordflow}{return} description;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11741}11741         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11742}11742 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11743}11743         EqualsMatcher::EqualsMatcher( CasedString \textcolor{keyword}{const}\& comparator ) : StringMatcherBase( \textcolor{stringliteral}{"{}equals"{}}, comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11744}11744 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11745}11745         \textcolor{keywordtype}{bool} EqualsMatcher::match( std::string \textcolor{keyword}{const}\& source )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11746}11746             \textcolor{keywordflow}{return} m\_comparator.adjustString( source ) == m\_comparator.m\_str;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11747}11747         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11748}11748 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11749}11749         ContainsMatcher::ContainsMatcher( CasedString \textcolor{keyword}{const}\& comparator ) : StringMatcherBase( \textcolor{stringliteral}{"{}contains"{}}, comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11750}11750 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11751}11751         \textcolor{keywordtype}{bool} ContainsMatcher::match( std::string \textcolor{keyword}{const}\& source )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11752}11752             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_aa52974b0e426e7e2fbd725a900e9c36e}{contains}}( m\_comparator.adjustString( source ), m\_comparator.m\_str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11753}11753         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11754}11754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11755}11755         StartsWithMatcher::StartsWithMatcher( CasedString \textcolor{keyword}{const}\& comparator ) : StringMatcherBase( \textcolor{stringliteral}{"{}starts with"{}}, comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11756}11756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11757}11757         \textcolor{keywordtype}{bool} StartsWithMatcher::match( std::string \textcolor{keyword}{const}\& source )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11758}11758             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( m\_comparator.adjustString( source ), m\_comparator.m\_str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11759}11759         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11760}11760 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11761}11761         EndsWithMatcher::EndsWithMatcher( CasedString \textcolor{keyword}{const}\& comparator ) : StringMatcherBase( \textcolor{stringliteral}{"{}ends with"{}}, comparator ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11762}11762 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11763}11763         \textcolor{keywordtype}{bool} EndsWithMatcher::match( std::string \textcolor{keyword}{const}\& source )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11764}11764             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( m\_comparator.adjustString( source ), m\_comparator.m\_str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11765}11765         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11766}11766 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11767}11767         RegexMatcher::RegexMatcher(std::string regex, \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity): m\_regex(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(regex)), m\_caseSensitivity(caseSensitivity) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11768}11768 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11769}11769         \textcolor{keywordtype}{bool} RegexMatcher::match(std::string \textcolor{keyword}{const}\& matchee)\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11770}11770             \textcolor{keyword}{auto} flags = std::regex::ECMAScript; \textcolor{comment}{// ECMAScript is the default syntax option anyway}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11771}11771             \textcolor{keywordflow}{if} (m\_caseSensitivity == CaseSensitive::Choice::No) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11772}11772                 flags |= std::regex::icase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11773}11773             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11774}11774             \textcolor{keyword}{auto} reg = std::regex(m\_regex, flags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11775}11775             \textcolor{keywordflow}{return} std::regex\_match(matchee, reg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11776}11776         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11777}11777 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11778}11778         std::string RegexMatcher::describe()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11779}11779             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}matches "{}} + ::Catch::Detail::stringify(m\_regex) + ((m\_caseSensitivity == CaseSensitive::Choice::Yes)? "{} case sensitively"{} : "{} case insensitively"{});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11780}11780         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11781}11781 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11782}11782     \} \textcolor{comment}{// namespace StdString}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11783}11783 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11784}11784     StdString::EqualsMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_a5b76944eeb2b65329fabbac487a31d66}{Equals}}( std::string \textcolor{keyword}{const}\& str, CaseSensitive::Choice caseSensitivity ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11785}11785         \textcolor{keywordflow}{return} StdString::EqualsMatcher( StdString::CasedString( str, caseSensitivity) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11786}11786     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11787}11787     StdString::ContainsMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_a0eacc3d8729e9a1dcf76387ec60195ce}{Contains}}( std::string \textcolor{keyword}{const}\& str, CaseSensitive::Choice caseSensitivity ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11788}11788         \textcolor{keywordflow}{return} StdString::ContainsMatcher( StdString::CasedString( str, caseSensitivity) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11789}11789     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11790}11790     StdString::EndsWithMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_ae5a45efb4538c57c43e04f3f9043ad6e}{EndsWith}}( std::string \textcolor{keyword}{const}\& str, CaseSensitive::Choice caseSensitivity ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11791}11791         \textcolor{keywordflow}{return} StdString::EndsWithMatcher( StdString::CasedString( str, caseSensitivity) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11792}11792     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11793}11793     StdString::StartsWithMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_a97c9ee09a70378ca7e8c6f9f01b0d6d1}{StartsWith}}( std::string \textcolor{keyword}{const}\& str, CaseSensitive::Choice caseSensitivity ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11794}11794         \textcolor{keywordflow}{return} StdString::StartsWithMatcher( StdString::CasedString( str, caseSensitivity) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11795}11795     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11796}11796 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11797}11797     StdString::RegexMatcher \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{Matches}}(std::string \textcolor{keyword}{const}\& regex, CaseSensitive::Choice caseSensitivity) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11798}11798         \textcolor{keywordflow}{return} StdString::RegexMatcher(regex, caseSensitivity);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11799}11799     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11800}11800 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11801}11801 \} \textcolor{comment}{// namespace Matchers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11802}11802 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11803}11803 \textcolor{comment}{// end catch\_matchers\_string.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11804}11804 \textcolor{comment}{// start catch\_message.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11805}11805 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11806}11806 \textcolor{comment}{// start catch\_uncaught\_exceptions.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11807}11807 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11808}11808 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11809}11809     \textcolor{keywordtype}{bool} uncaught\_exceptions();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11810}11810 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11811}11811 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11812}11812 \textcolor{comment}{// end catch\_uncaught\_exceptions.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11813}11813 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11814}11814 \textcolor{preprocessor}{\#include <stack>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11815}11815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11816}11816 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11817}11817 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11818}11818     \mbox{\hyperlink{struct_catch_1_1_message_info_afac7a84a9e8655428035a3c5418044f0}{MessageInfo::MessageInfo}}(   StringRef \textcolor{keyword}{const}\& \_macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11819}11819                                 SourceLineInfo \textcolor{keyword}{const}\& \_lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11820}11820                                 \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} \_type )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11821}11821     :   macroName( \_macroName ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11822}11822         lineInfo( \_lineInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11823}11823         type( \_type ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11824}11824         sequence( ++globalCount )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11825}11825     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11826}11826 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11827}11827     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_message_info_af4b37f2172ba55395813b4bb6bbbde1a}{MessageInfo::operator==}}( MessageInfo \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11828}11828         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_message_info_a7f4f57ea21e50160adefce7b68a781d6}{sequence}} == other.sequence;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11829}11829     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11830}11830 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11831}11831     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_message_info_a8254cb8fca2da02a29a9843cdcb79df1}{MessageInfo::operator<}}( MessageInfo \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11832}11832         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_message_info_a7f4f57ea21e50160adefce7b68a781d6}{sequence}} < other.sequence;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11833}11833     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11834}11834 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11835}11835     \textcolor{comment}{// This may need protecting if threading support is added}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11836}11836     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} MessageInfo::globalCount = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11837}11837 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11839}11839 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11840}11840     \mbox{\hyperlink{struct_catch_1_1_message_builder_ac34832ca527a758f000ac233d32dd068}{Catch::MessageBuilder::MessageBuilder}}( StringRef \textcolor{keyword}{const}\& macroName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11841}11841                                            SourceLineInfo \textcolor{keyword}{const}\& lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11842}11842                                            \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} type )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11843}11843         :m\_info(macroName, lineInfo, type) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11844}11844 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11846}11846 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11847}11847     \mbox{\hyperlink{class_catch_1_1_scoped_message_a5cc59f0f2ebe840e6607f83004d49a17}{ScopedMessage::ScopedMessage}}( MessageBuilder \textcolor{keyword}{const}\& builder )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11848}11848     : m\_info( builder.m\_info ), m\_moved()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11849}11849     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11850}11850         m\_info.message = builder.m\_stream.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11851}11851         \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a91d154c1e087e383dcde5aad95cb6a05}{pushScopedMessage}}( m\_info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11852}11852     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11853}11853 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11854}11854     \mbox{\hyperlink{class_catch_1_1_scoped_message_a5cc59f0f2ebe840e6607f83004d49a17}{ScopedMessage::ScopedMessage}}( ScopedMessage\&\& old )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11855}11855     : m\_info( old.m\_info ), m\_moved()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11856}11856     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11857}11857         old.m\_moved = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11858}11858     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11859}11859 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11860}11860     \mbox{\hyperlink{class_catch_1_1_scoped_message_a43190843f9eeb84a0b42b0bc95fdf93a}{ScopedMessage::\string~ScopedMessage}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11861}11861         \textcolor{keywordflow}{if} ( !uncaught\_exceptions() \&\& !\mbox{\hyperlink{class_catch_1_1_scoped_message_a4fe5607c1f7407240a0da8405b1c12e7}{m\_moved}} )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11862}11862             \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a42bcb13276706bf8c3ce081ce16d37fd}{popScopedMessage}}(\mbox{\hyperlink{class_catch_1_1_scoped_message_ae6e1476f389cc6e1586f033b3747b27b}{m\_info}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11863}11863         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11864}11864     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11865}11865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11866}11866     \mbox{\hyperlink{class_catch_1_1_capturer_a86b0b27acc803a4e1310c10820f3038f}{Capturer::Capturer}}( StringRef macroName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType, StringRef names ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11867}11867         \textcolor{keyword}{auto} trimmed = [\&] (\textcolor{keywordtype}{size\_t} start, \textcolor{keywordtype}{size\_t} end) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11868}11868             \textcolor{keywordflow}{while} (names[start] == \textcolor{charliteral}{','} || \mbox{\hyperlink{namespacekblib_a6d802ca6fd796b130c39c124a4d6a4a6}{isspace}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}\textcolor{keyword}{>}(names[start]))) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11869}11869                 ++start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11870}11870             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11871}11871             \textcolor{keywordflow}{while} (names[end] == \textcolor{charliteral}{','} || \mbox{\hyperlink{namespacekblib_a6d802ca6fd796b130c39c124a4d6a4a6}{isspace}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}\textcolor{keyword}{>}(names[end]))) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11872}11872                 -\/-\/end;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11873}11873             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11874}11874             \textcolor{keywordflow}{return} names.substr(start, end -\/ start + 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11875}11875         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11876}11876         \textcolor{keyword}{auto} skipq = [\&] (\textcolor{keywordtype}{size\_t} start, \textcolor{keywordtype}{char} quote) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11877}11877             \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} i = start + 1; i < names.size() ; ++i) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11878}11878                 \textcolor{keywordflow}{if} (names[i] == quote)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11879}11879                     \textcolor{keywordflow}{return} i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11880}11880                 \textcolor{keywordflow}{if} (names[i] == \textcolor{charliteral}{'\(\backslash\)\(\backslash\)'})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11881}11881                     ++i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11882}11882             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11883}11883             \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}CAPTURE parsing encountered unmatched quote"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11884}11884         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11885}11885 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11886}11886         \textcolor{keywordtype}{size\_t} start = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11887}11887         std::stack<char> openings;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11888}11888         \textcolor{keywordflow}{for} (\textcolor{keywordtype}{size\_t} pos = 0; pos < names.size(); ++pos) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11889}11889             \textcolor{keywordtype}{char} c = names[pos];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11890}11890             \textcolor{keywordflow}{switch} (c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11891}11891             \textcolor{keywordflow}{case} \textcolor{charliteral}{'['}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11892}11892             \textcolor{keywordflow}{case} \textcolor{charliteral}{'\{'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11893}11893             \textcolor{keywordflow}{case} \textcolor{charliteral}{'('}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11894}11894             \textcolor{comment}{// It is basically impossible to disambiguate between}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11895}11895             \textcolor{comment}{// comparison and start of template args in this context}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11896}11896 \textcolor{comment}{//            case '<':}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11897}11897                 openings.push(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11898}11898                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11899}11899             \textcolor{keywordflow}{case} \textcolor{charliteral}{']'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11900}11900             \textcolor{keywordflow}{case} \textcolor{charliteral}{'\}'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11901}11901             \textcolor{keywordflow}{case} \textcolor{charliteral}{')'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11902}11902 \textcolor{comment}{//           case '>':}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11903}11903                 openings.pop();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11904}11904                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11905}11905             \textcolor{keywordflow}{case} \textcolor{charliteral}{'"{}'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11906}11906             \textcolor{keywordflow}{case} \textcolor{charliteral}{'\(\backslash\)''}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11907}11907                 pos = skipq(pos, c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11908}11908                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11909}11909             \textcolor{keywordflow}{case} \textcolor{charliteral}{','}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11910}11910                 \textcolor{keywordflow}{if} (start != pos \&\& openings.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11911}11911                     m\_messages.emplace\_back(macroName, lineInfo, resultType);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11912}11912                     m\_messages.back().message = \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(trimmed(start, pos));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11913}11913                     m\_messages.back().message += "{} := "{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11914}11914                     start = pos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11915}11915                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11916}11916             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11917}11917         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11918}11918         assert(openings.empty() \&\& \textcolor{stringliteral}{"{}Mismatched openings"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11919}11919         m\_messages.emplace\_back(macroName, lineInfo, resultType);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11920}11920         m\_messages.back().message = \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(trimmed(start, names.size() -\/ 1));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11921}11921         m\_messages.back().message += "{} := "{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11922}11922     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11923}11923     Capturer::\string~Capturer() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11924}11924         \textcolor{keywordflow}{if} ( !uncaught\_exceptions() )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11925}11925             assert( m\_captured == m\_messages.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11926}11926             \textcolor{keywordflow}{for}( \textcolor{keywordtype}{size\_t} i = 0; i < m\_captured; ++i  )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11927}11927                 m\_resultCapture.popScopedMessage( m\_messages[i] );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11928}11928         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11929}11929     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11930}11930 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11931}11931     \textcolor{keywordtype}{void} Capturer::captureValue( \textcolor{keywordtype}{size\_t} index, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11932}11932         assert( index < m\_messages.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11933}11933         m\_messages[index].message += \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11934}11934         m\_resultCapture.pushScopedMessage( m\_messages[index] );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11935}11935         m\_captured++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11936}11936     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11937}11937 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11938}11938 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11939}11939 \textcolor{comment}{// end catch\_message.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11940}11940 \textcolor{comment}{// start catch\_output\_redirect.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11941}11941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11942}11942 \textcolor{comment}{// start catch\_output\_redirect.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11943}11943 \textcolor{preprocessor}{\#ifndef TWOBLUECUBES\_CATCH\_OUTPUT\_REDIRECT\_H}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11944}11944 \textcolor{preprocessor}{\#define TWOBLUECUBES\_CATCH\_OUTPUT\_REDIRECT\_H}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11945}11945 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11946}11946 \textcolor{preprocessor}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11947}11947 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11948}11948 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11949}11949 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11950}11950 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11951}11951 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11952}11952     \textcolor{keyword}{class }RedirectedStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11953}11953         std::ostream\& m\_originalStream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11954}11954         std::ostream\& m\_redirectionStream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11955}11955         std::streambuf* m\_prevBuf;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11956}11956 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11957}11957     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11958}11958         RedirectedStream( std::ostream\& originalStream, std::ostream\& redirectionStream );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11959}11959         \string~RedirectedStream();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11960}11960     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11961}11961 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11962}11962     \textcolor{keyword}{class }RedirectedStdOut \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11963}11963         ReusableStringStream m\_rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11964}11964         RedirectedStream m\_cout;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11965}11965     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11966}11966         RedirectedStdOut();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11967}11967         \textcolor{keyword}{auto} str() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11968}11968     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11969}11969 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11970}11970     \textcolor{comment}{// StdErr has two constituent streams in C++, std::cerr and std::clog}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11971}11971     \textcolor{comment}{// This means that we need to redirect 2 streams into 1 to keep proper}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11972}11972     \textcolor{comment}{// order of writes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11973}11973     class RedirectedStdErr \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11974}11974         ReusableStringStream m\_rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11975}11975         RedirectedStream m\_cerr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11976}11976         RedirectedStream m\_clog;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11977}11977     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11978}11978         RedirectedStdErr();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11979}11979         \textcolor{keyword}{auto} str() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11980}11980     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11981}11981 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11982}11982     class RedirectedStreams \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11983}11983     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11984}11984         RedirectedStreams(RedirectedStreams \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11985}11985         RedirectedStreams\& operator=(RedirectedStreams \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11986}11986         RedirectedStreams(RedirectedStreams\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11987}11987         RedirectedStreams\& operator=(RedirectedStreams\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11988}11988 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11989}11989         RedirectedStreams(std::string\& redirectedCout, std::string\& redirectedCerr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11990}11990         \string~RedirectedStreams();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11991}11991     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11992}11992         std::string\& m\_redirectedCout;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11993}11993         std::string\& m\_redirectedCerr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11994}11994         RedirectedStdOut m\_redirectedStdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11995}11995         RedirectedStdErr m\_redirectedStdErr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11996}11996     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11997}11997 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11998}11998 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_NEW\_CAPTURE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l11999}11999 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12000}12000     \textcolor{comment}{// Windows's implementation of std::tmpfile is terrible (it tries}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12001}12001     \textcolor{comment}{// to create a file inside system folder, thus requiring elevated}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12002}12002     \textcolor{comment}{// privileges for the binary), so we have to use tmpnam(\_s) and}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12003}12003     \textcolor{comment}{// create the file ourselves there.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12004}12004     \textcolor{keyword}{class }TempFile \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12005}12005     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12006}12006         TempFile(TempFile \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12007}12007         TempFile\& operator=(TempFile \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12008}12008         TempFile(TempFile\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12009}12009         TempFile\& operator=(TempFile\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12010}12010 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12011}12011         TempFile();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12012}12012         \string~TempFile();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12013}12013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12014}12014         std::FILE* getFile();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12015}12015         std::string getContents();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12016}12016 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12017}12017     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12018}12018         std::FILE* m\_file = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12019}12019 \textcolor{preprocessor}{    \#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12020}12020         \textcolor{keywordtype}{char} m\_buffer[L\_tmpnam] = \{ 0 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12021}12021 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12022}12022     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12023}12023 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12024}12024     \textcolor{keyword}{class }OutputRedirect \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12025}12025     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12026}12026         OutputRedirect(OutputRedirect \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12027}12027         OutputRedirect\& operator=(OutputRedirect \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12028}12028         OutputRedirect(OutputRedirect\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12029}12029         OutputRedirect\& operator=(OutputRedirect\&\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12030}12030 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12031}12031         OutputRedirect(std::string\& stdout\_dest, std::string\& stderr\_dest);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12032}12032         \string~OutputRedirect();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12033}12033 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12034}12034     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12035}12035         \textcolor{keywordtype}{int} m\_originalStdout = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12036}12036         \textcolor{keywordtype}{int} m\_originalStderr = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12037}12037         TempFile m\_stdoutFile;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12038}12038         TempFile m\_stderrFile;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12039}12039         std::string\& m\_stdoutDest;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12040}12040         std::string\& m\_stderrDest;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12041}12041     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12042}12042 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12043}12043 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12044}12044 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12045}12045 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12046}12046 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12047}12047 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// TWOBLUECUBES\_CATCH\_OUTPUT\_REDIRECT\_H}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12048}12048 \textcolor{comment}{// end catch\_output\_redirect.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12049}12049 \textcolor{preprocessor}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12050}12050 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12051}12051 \textcolor{preprocessor}{\#include <fstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12052}12052 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12053}12053 \textcolor{preprocessor}{\#include <stdexcept>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12054}12054 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12055}12055 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_NEW\_CAPTURE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12056}12056 \textcolor{preprocessor}{    \#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12057}12057 \textcolor{preprocessor}{    \#include <\mbox{\hyperlink{io_8h}{io.h}}>}      \textcolor{comment}{//\_dup and \_dup2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12058}12058 \textcolor{preprocessor}{    \#define dup \_dup}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12059}12059 \textcolor{preprocessor}{    \#define dup2 \_dup2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12060}12060 \textcolor{preprocessor}{    \#define fileno \_fileno}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12061}12061 \textcolor{preprocessor}{    \#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12062}12062 \textcolor{preprocessor}{    \#include <unistd.h>}  \textcolor{comment}{// dup and dup2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12063}12063 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12064}12064 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12065}12065 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12066}12066 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12067}12067 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12068}12068     RedirectedStream::RedirectedStream( std::ostream\& originalStream, std::ostream\& redirectionStream )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12069}12069     :   m\_originalStream( originalStream ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12070}12070         m\_redirectionStream( redirectionStream ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12071}12071         m\_prevBuf( m\_originalStream.rdbuf() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12072}12072     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12073}12073         m\_originalStream.rdbuf( m\_redirectionStream.rdbuf() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12074}12074     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12075}12075 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12076}12076     RedirectedStream::\string~RedirectedStream() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12077}12077         m\_originalStream.rdbuf( m\_prevBuf );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12078}12078     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12079}12079 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12080}12080     RedirectedStdOut::RedirectedStdOut() : m\_cout( \mbox{\hyperlink{namespace_catch}{Catch}}::\mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{cout}}(), m\_rss.\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12081}12081     \textcolor{keyword}{auto} RedirectedStdOut::str() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{ \textcolor{keywordflow}{return} m\_rss.str(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12082}12082 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12083}12083     RedirectedStdErr::RedirectedStdErr()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12084}12084     :   m\_cerr( \mbox{\hyperlink{namespace_catch}{Catch}}::\mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{cerr}}(), m\_rss.\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12085}12085         m\_clog( \mbox{\hyperlink{namespace_catch}{Catch}}::\mbox{\hyperlink{namespace_catch_a1b2213f54e4d31a659db49827e81856b}{clog}}(), m\_rss.\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12086}12086     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12087}12087     \textcolor{keyword}{auto} RedirectedStdErr::str() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{ \textcolor{keywordflow}{return} m\_rss.str(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12088}12088 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12089}12089     RedirectedStreams::RedirectedStreams(std::string\& redirectedCout, std::string\& redirectedCerr)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12090}12090     :   m\_redirectedCout(redirectedCout),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12091}12091         m\_redirectedCerr(redirectedCerr)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12092}12092     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12093}12093 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12094}12094     RedirectedStreams::\string~RedirectedStreams() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12095}12095         m\_redirectedCout += m\_redirectedStdOut.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12096}12096         m\_redirectedCerr += m\_redirectedStdErr.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12097}12097     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12098}12098 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12099}12099 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_NEW\_CAPTURE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12100}12100 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12101}12101 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12102}12102     TempFile::TempFile() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12103}12103         \textcolor{keywordflow}{if} (tmpnam\_s(m\_buffer)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12104}12104             \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not get a temp filename"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12105}12105         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12106}12106         \textcolor{keywordflow}{if} (fopen\_s(\&m\_file, m\_buffer, \textcolor{stringliteral}{"{}w+"{}})) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12107}12107             \textcolor{keywordtype}{char} \mbox{\hyperlink{structbuffer}{buffer}}[100];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12108}12108             \textcolor{keywordflow}{if} (strerror\_s(\mbox{\hyperlink{structbuffer}{buffer}}, errno)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12109}12109                 \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not translate errno to a string"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12110}12110             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12111}12111             \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not open the temp file: '"{}} << m\_buffer << \textcolor{stringliteral}{"{}' because: "{}} << \mbox{\hyperlink{structbuffer}{buffer}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12112}12112         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12113}12113     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12114}12114 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12115}12115     TempFile::TempFile() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12116}12116         m\_file = \mbox{\hyperlink{namespacekblib_aa2ab36dcd40fe0308a4df9359b90fb6f}{std::tmpfile}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12117}12117         \textcolor{keywordflow}{if} (!m\_file) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12118}12118             \mbox{\hyperlink{catch2_2catch_8hpp_a834a24a39cf448d5a0f812e716be1c76}{CATCH\_RUNTIME\_ERROR}}(\textcolor{stringliteral}{"{}Could not create a temp file."{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12119}12119         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12120}12120     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12121}12121 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12122}12122 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12123}12123 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12124}12124     TempFile::\string~TempFile() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12125}12125          \textcolor{comment}{// TBD: What to do about errors here?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12126}12126          std::fclose(m\_file);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12127}12127          \textcolor{comment}{// We manually create the file on Windows only, on Linux}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12128}12128          \textcolor{comment}{// it will be autodeleted}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12129}12129 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12130}12130          std::remove(m\_buffer);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12131}12131 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12132}12132     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12133}12133 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12134}12134     FILE* TempFile::getFile() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12135}12135         \textcolor{keywordflow}{return} m\_file;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12136}12136     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12137}12137 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12138}12138     std::string TempFile::getContents() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12139}12139         std::stringstream sstr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12140}12140         \textcolor{keywordtype}{char} \mbox{\hyperlink{structbuffer}{buffer}}[100] = \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12141}12141         std::rewind(m\_file);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12142}12142         \textcolor{keywordflow}{while} (std::fgets(\mbox{\hyperlink{structbuffer}{buffer}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{structbuffer}{buffer}}), m\_file)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12143}12143             sstr << \mbox{\hyperlink{structbuffer}{buffer}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12144}12144         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12145}12145         \textcolor{keywordflow}{return} sstr.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12146}12146     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12147}12147 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12148}12148     OutputRedirect::OutputRedirect(std::string\& stdout\_dest, std::string\& stderr\_dest) :}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12149}12149         m\_originalStdout(dup(1)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12150}12150         m\_originalStderr(dup(2)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12151}12151         m\_stdoutDest(stdout\_dest),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12152}12152         m\_stderrDest(stderr\_dest) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12153}12153         dup2(fileno(m\_stdoutFile.getFile()), 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12154}12154         dup2(fileno(m\_stderrFile.getFile()), 2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12155}12155     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12156}12156 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12157}12157     OutputRedirect::\string~OutputRedirect() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12158}12158         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << std::flush;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12159}12159         fflush(stdout);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12160}12160         \textcolor{comment}{// Since we support overriding these streams, we flush cerr}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12161}12161         \textcolor{comment}{// even though std::cerr is unbuffered}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12162}12162         \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << std::flush;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12163}12163         \mbox{\hyperlink{namespace_catch_a1b2213f54e4d31a659db49827e81856b}{Catch::clog}}() << std::flush;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12164}12164         fflush(stderr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12165}12165 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12166}12166         dup2(m\_originalStdout, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12167}12167         dup2(m\_originalStderr, 2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12168}12168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12169}12169         m\_stdoutDest += m\_stdoutFile.getContents();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12170}12170         m\_stderrDest += m\_stderrFile.getContents();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12171}12171     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12172}12172 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12173}12173 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_NEW\_CAPTURE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12174}12174 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12175}12175 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12176}12176 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12177}12177 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_NEW\_CAPTURE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12178}12178 \textcolor{preprocessor}{    \#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12179}12179 \textcolor{preprocessor}{    \#undef dup}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12180}12180 \textcolor{preprocessor}{    \#undef dup2}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12181}12181 \textcolor{preprocessor}{    \#undef fileno}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12182}12182 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12183}12183 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12184}12184 \textcolor{comment}{// end catch\_output\_redirect.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12185}12185 \textcolor{comment}{// start catch\_polyfills.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12186}12186 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12187}12187 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12188}12188 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12189}12189 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12190}12190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12191}12191 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_POLYFILL\_ISNAN)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12192}12192     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{float} f) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12193}12193         \textcolor{keywordflow}{return} std::isnan(f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12194}12194     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12195}12195     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{double} d) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12196}12196         \textcolor{keywordflow}{return} std::isnan(d);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12197}12197     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12198}12198 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12199}12199     \textcolor{comment}{// For now we only use this for embarcadero}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12200}12200     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{float} f) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12201}12201         \textcolor{keywordflow}{return} std::\_isnan(f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12202}12202     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12203}12203     \textcolor{keywordtype}{bool} isnan(\textcolor{keywordtype}{double} d) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12204}12204         \textcolor{keywordflow}{return} std::\_isnan(d);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12205}12205     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12206}12206 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12207}12207 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12208}12208 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12209}12209 \textcolor{comment}{// end catch\_polyfills.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12210}12210 \textcolor{comment}{// start catch\_random\_number\_generator.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12211}12211 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12212}12212 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12213}12213 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12214}12214 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12215}12215 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12216}12216 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12217}12217 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12218}12218 \textcolor{preprocessor}{\#pragma warning(disable:4146) }\textcolor{comment}{// we negate uint32 during the rotate}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12219}12219 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12220}12220         \textcolor{comment}{// Safe rotr implementation thanks to John Regehr}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12221}12221         uint32\_t rotate\_right(uint32\_t val, uint32\_t count) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12222}12222             \textcolor{keyword}{const} uint32\_t mask = 31;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12223}12223             count \&= mask;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12224}12224             \textcolor{keywordflow}{return} (val >> count) | (val << (-\/count \& mask));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12225}12225         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12226}12226 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12227}12227 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12228}12228 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12229}12229 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12230}12230 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12231}12231 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12232}12232 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12233}12233     \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a045c99a96f9b0faf384e22f871576282}{SimplePcg32::SimplePcg32}}(result\_type seed\_) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12234}12234         \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a215dac93c384973353a2b4f87f68c8bc}{seed}}(seed\_);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12235}12235     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12236}12236 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12237}12237     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a215dac93c384973353a2b4f87f68c8bc}{SimplePcg32::seed}}(result\_type seed\_) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12238}12238         m\_state = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12239}12239         (*this)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12240}12240         m\_state += seed\_;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12241}12241         (*this)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12242}12242     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12243}12243 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12244}12244     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_simple_pcg32_a877e7a9c14d378af729ad19a0e959178}{SimplePcg32::discard}}(uint64\_t skip) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12245}12245         \textcolor{comment}{// We could implement this to run in O(log n) steps, but this}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12246}12246         \textcolor{comment}{// should suffice for our use case.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12247}12247         \textcolor{keywordflow}{for} (uint64\_t s = 0; s < skip; ++s) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12248}12248             \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}((*this)());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12249}12249         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12250}12250     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12251}12251 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12252}12252     SimplePcg32::result\_type SimplePcg32::operator()() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12253}12253         \textcolor{comment}{// prepare the output value}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12254}12254         \textcolor{keyword}{const} uint32\_t xorshifted = \textcolor{keyword}{static\_cast<}uint32\_t\textcolor{keyword}{>}(((m\_state >> 18u) \string^ m\_state) >> 27u);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12255}12255         \textcolor{keyword}{const} \textcolor{keyword}{auto} output = rotate\_right(xorshifted, m\_state >> 59u);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12256}12256 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12257}12257         \textcolor{comment}{// advance state}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12258}12258         m\_state = m\_state * 6364136223846793005ULL + s\_inc;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12259}12259 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12260}12260         \textcolor{keywordflow}{return} output;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12261}12261     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12262}12262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12263}12263     \textcolor{keywordtype}{bool} operator==(SimplePcg32 \textcolor{keyword}{const}\& lhs, SimplePcg32 \textcolor{keyword}{const}\& rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12264}12264         \textcolor{keywordflow}{return} lhs.m\_state == rhs.m\_state;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12265}12265     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12266}12266 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12267}12267     \textcolor{keywordtype}{bool} operator!=(SimplePcg32 \textcolor{keyword}{const}\& lhs, SimplePcg32 \textcolor{keyword}{const}\& rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12268}12268         \textcolor{keywordflow}{return} lhs.m\_state != rhs.m\_state;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12269}12269     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12270}12270 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12271}12271 \textcolor{comment}{// end catch\_random\_number\_generator.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12272}12272 \textcolor{comment}{// start catch\_registry\_hub.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12273}12273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12274}12274 \textcolor{comment}{// start catch\_test\_case\_registry\_impl.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12275}12275 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12276}12276 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12277}12277 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12278}12278 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12279}12279 \textcolor{preprocessor}{\#include <ios>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12280}12280 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12281}12281 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12282}12282 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12283}12283     \textcolor{keyword}{class }TestCase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12284}12284     \textcolor{keyword}{struct }IConfig;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12285}12285 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12286}12286     std::vector<TestCase> sortTests( IConfig \textcolor{keyword}{const}\& config, std::vector<TestCase> \textcolor{keyword}{const}\& unsortedTestCases );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12287}12287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12288}12288     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_af3e820574c7a0b38d71328c5bd54b0e0}{isThrowSafe}}( TestCase \textcolor{keyword}{const}\& testCase, IConfig \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12289}12289     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_aadef80fbc6bc84589777a462770cef49}{matchTest}}( TestCase \textcolor{keyword}{const}\& testCase, TestSpec \textcolor{keyword}{const}\& testSpec, IConfig \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12290}12290 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12291}12291     \textcolor{keywordtype}{void} enforceNoDuplicateTestCases( std::vector<TestCase> \textcolor{keyword}{const}\& functions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12292}12292 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12293}12293     std::vector<TestCase> \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( std::vector<TestCase> \textcolor{keyword}{const}\& testCases, TestSpec \textcolor{keyword}{const}\& testSpec, IConfig \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12294}12294     std::vector<TestCase> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( IConfig \textcolor{keyword}{const}\& config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12295}12295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12296}12296     \textcolor{keyword}{class }TestRegistry : \textcolor{keyword}{public} ITestCaseRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12297}12297     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12298}12298         \textcolor{keyword}{virtual} \string~TestRegistry() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12299}12299 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12300}12300         \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} registerTest( TestCase \textcolor{keyword}{const}\& testCase );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12301}12301 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12302}12302         std::vector<TestCase> \textcolor{keyword}{const}\& getAllTests() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12303}12303         std::vector<TestCase> \textcolor{keyword}{const}\& getAllTestsSorted( IConfig \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12304}12304 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12305}12305     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12306}12306         std::vector<TestCase> m\_functions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12307}12307         \textcolor{keyword}{mutable} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5d}{RunTests::InWhatOrder}} m\_currentSortOrder = \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5da2d560e5cdf23ef60d728a816e9b01c61}{RunTests::InDeclarationOrder}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12308}12308         \textcolor{keyword}{mutable} std::vector<TestCase> m\_sortedFunctions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12309}12309         std::size\_t m\_unnamedCount = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12310}12310         std::ios\_base::Init m\_ostreamInit; \textcolor{comment}{// Forces cout/ cerr to be initialised}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12311}12311     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12312}12312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12314}12314 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12315}12315     \textcolor{keyword}{class }TestInvokerAsFunction : \textcolor{keyword}{public} ITestInvoker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12316}12316         void(*m\_testAsFunction)();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12317}12317     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12318}12318         TestInvokerAsFunction( \textcolor{keywordtype}{void}(*testAsFunction)() ) noexcept;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12319}12319 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12320}12320         \textcolor{keywordtype}{void} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}}() const override;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12321}12321     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12322}12322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12323}12323     \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} extractClassName( StringRef const\& classOrQualifiedMethodName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12324}12324 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12326}12326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12327}12327 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12328}12328 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12329}12329 \textcolor{comment}{// end catch\_test\_case\_registry\_impl.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12330}12330 \textcolor{comment}{// start catch\_reporter\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12331}12331 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12332}12332 \textcolor{preprocessor}{\#include <map>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12333}12333 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12334}12334 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12335}12335 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12336}12336     \textcolor{keyword}{class }ReporterRegistry : \textcolor{keyword}{public} IReporterRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12337}12337 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12338}12338     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12339}12339 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12340}12340         \string~ReporterRegistry() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12341}12341 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12342}12342         IStreamingReporterPtr create( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12343}12343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12344}12344         \textcolor{keywordtype}{void} registerReporter( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12345}12345         \textcolor{keywordtype}{void} registerListener( \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12346}12346 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12347}12347         FactoryMap \textcolor{keyword}{const}\& getFactories() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12348}12348         Listeners \textcolor{keyword}{const}\& getListeners() \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12349}12349 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12350}12350     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12351}12351         FactoryMap m\_factories;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12352}12352         Listeners m\_listeners;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12353}12353     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12354}12354 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12355}12355 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12356}12356 \textcolor{comment}{// end catch\_reporter\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12357}12357 \textcolor{comment}{// start catch\_tag\_alias\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12358}12358 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12359}12359 \textcolor{comment}{// start catch\_tag\_alias.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12360}12360 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12361}12361 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12362}12362 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12363}12363 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12364}12364 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12365}12365     \textcolor{keyword}{struct }TagAlias \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12366}12366         TagAlias(std::string \textcolor{keyword}{const}\& \_tag, SourceLineInfo \_lineInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12367}12367 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12368}12368         std::string \mbox{\hyperlink{structtag}{tag}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12369}12369         SourceLineInfo lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12370}12370     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12371}12371 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12372}12372 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12373}12373 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12374}12374 \textcolor{comment}{// end catch\_tag\_alias.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12375}12375 \textcolor{preprocessor}{\#include <map>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12376}12376 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12377}12377 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12378}12378 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12379}12379     \textcolor{keyword}{class }TagAliasRegistry : \textcolor{keyword}{public} ITagAliasRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12380}12380     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12381}12381         \string~TagAliasRegistry() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12382}12382         TagAlias \textcolor{keyword}{const}* \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{find}}( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12383}12383         std::string expandAliases( std::string \textcolor{keyword}{const}\& unexpandedTestSpec ) \textcolor{keyword}{const override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12384}12384         \textcolor{keywordtype}{void} add( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, SourceLineInfo \textcolor{keyword}{const}\& lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12385}12385 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12386}12386     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12387}12387         std::map<std::string, TagAlias> m\_registry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12388}12388     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12389}12389 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12390}12390 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12391}12391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12392}12392 \textcolor{comment}{// end catch\_tag\_alias\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12393}12393 \textcolor{comment}{// start catch\_startup\_exception\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12394}12394 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12395}12395 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12396}12396 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12397}12397 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12398}12398 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12399}12399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12400}12400     \textcolor{keyword}{class }StartupExceptionRegistry \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12401}12401 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12402}12402     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12403}12403         \textcolor{keywordtype}{void} add(std::exception\_ptr \textcolor{keyword}{const}\& exception) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12404}12404         std::vector<std::exception\_ptr> \textcolor{keyword}{const}\& getExceptions() const noexcept;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12405}12405     private:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12406}12406         \mbox{\hyperlink{namespacestd}{std}}::vector<\mbox{\hyperlink{namespacestd}{std}}::exception\_ptr> m\_exceptions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12407}12407 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12408}12408     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12409}12409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12410}12410 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12411}12411 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12412}12412 \textcolor{comment}{// end catch\_startup\_exception\_registry.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12413}12413 \textcolor{comment}{// start catch\_singletons.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12414}12414 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12415}12415 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12416}12416 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12417}12417     \textcolor{keyword}{struct }ISingleton \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12418}12418         \textcolor{keyword}{virtual} \string~ISingleton();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12419}12419     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12420}12420 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12421}12421     \textcolor{keywordtype}{void} addSingleton( ISingleton* singleton );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12422}12422     \textcolor{keywordtype}{void} cleanupSingletons();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12423}12423 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12424}12424     \textcolor{keyword}{template}<\textcolor{keyword}{typename} SingletonImplT, \textcolor{keyword}{typename} InterfaceT = SingletonImplT, \textcolor{keyword}{typename} MutableInterfaceT = InterfaceT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12425}12425     \textcolor{keyword}{class }Singleton : SingletonImplT, \textcolor{keyword}{public} ISingleton \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12426}12426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12427}12427         \textcolor{keyword}{static} \textcolor{keyword}{auto} getInternal() -\/> Singleton* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12428}12428             \textcolor{keyword}{static} Singleton* s\_instance = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12429}12429             \textcolor{keywordflow}{if}( !s\_instance ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12430}12430                 s\_instance = \textcolor{keyword}{new} Singleton;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12431}12431                 addSingleton( s\_instance );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12432}12432             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12433}12433             \textcolor{keywordflow}{return} s\_instance;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12434}12434         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12435}12435 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12436}12436     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12437}12437         \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() -\/> InterfaceT \textcolor{keyword}{const}\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12438}12438             \textcolor{keywordflow}{return} *getInternal();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12439}12439         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12440}12440         \textcolor{keyword}{static} \textcolor{keyword}{auto} getMutable() -\/> MutableInterfaceT\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12441}12441             \textcolor{keywordflow}{return} *getInternal();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12442}12442         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12443}12443     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12444}12444 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12445}12445 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12446}12446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12447}12447 \textcolor{comment}{// end catch\_singletons.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12448}12448 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12449}12449 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12450}12450     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12451}12451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12452}12452         \textcolor{keyword}{class }RegistryHub : \textcolor{keyword}{public} IRegistryHub, \textcolor{keyword}{public} IMutableRegistryHub,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12453}12453                             \textcolor{keyword}{private} NonCopyable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12454}12454 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12455}12455         \textcolor{keyword}{public}: \textcolor{comment}{// IRegistryHub}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12456}12456             RegistryHub() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12457}12457             IReporterRegistry \textcolor{keyword}{const}\& getReporterRegistry()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12458}12458                 \textcolor{keywordflow}{return} m\_reporterRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12459}12459             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12460}12460             ITestCaseRegistry \textcolor{keyword}{const}\& getTestCaseRegistry()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12461}12461                 \textcolor{keywordflow}{return} m\_testCaseRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12462}12462             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12463}12463             IExceptionTranslatorRegistry \textcolor{keyword}{const}\& getExceptionTranslatorRegistry()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12464}12464                 \textcolor{keywordflow}{return} m\_exceptionTranslatorRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12465}12465             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12466}12466             ITagAliasRegistry \textcolor{keyword}{const}\& getTagAliasRegistry()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12467}12467                 \textcolor{keywordflow}{return} m\_tagAliasRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12468}12468             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12469}12469             StartupExceptionRegistry \textcolor{keyword}{const}\& getStartupExceptionRegistry()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12470}12470                 \textcolor{keywordflow}{return} m\_exceptionRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12471}12471             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12472}12472 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12473}12473         \textcolor{keyword}{public}: \textcolor{comment}{// IMutableRegistryHub}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12474}12474             \textcolor{keywordtype}{void} registerReporter( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12475}12475                 m\_reporterRegistry.registerReporter( name, factory );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12476}12476             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12477}12477             \textcolor{keywordtype}{void} registerListener( \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12478}12478                 m\_reporterRegistry.registerListener( factory );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12479}12479             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12480}12480             \textcolor{keywordtype}{void} registerTest( TestCase \textcolor{keyword}{const}\& testInfo )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12481}12481                 m\_testCaseRegistry.registerTest( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12482}12482             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12483}12483             \textcolor{keywordtype}{void} registerTranslator( \textcolor{keyword}{const} IExceptionTranslator* translator )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12484}12484                 m\_exceptionTranslatorRegistry.registerTranslator( translator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12485}12485             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12486}12486             \textcolor{keywordtype}{void} registerTagAlias( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, SourceLineInfo \textcolor{keyword}{const}\& lineInfo )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12487}12487                 m\_tagAliasRegistry.add( \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \mbox{\hyperlink{structtag}{tag}}, lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12488}12488             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12489}12489             \textcolor{keywordtype}{void} registerStartupException() noexcept\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12490}12490 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12491}12491                 m\_exceptionRegistry.add(std::current\_exception());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12492}12492 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12493}12493                 \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}Attempted to register active exception under CATCH\_CONFIG\_DISABLE\_EXCEPTIONS!"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12494}12494 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12495}12495             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12496}12496             IMutableEnumValuesRegistry\& getMutableEnumValuesRegistry()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12497}12497                 \textcolor{keywordflow}{return} m\_enumValuesRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12498}12498             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12499}12499 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12500}12500         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12501}12501             TestRegistry m\_testCaseRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12502}12502             ReporterRegistry m\_reporterRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12503}12503             ExceptionTranslatorRegistry m\_exceptionTranslatorRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12504}12504             TagAliasRegistry m\_tagAliasRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12505}12505             StartupExceptionRegistry m\_exceptionRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12506}12506             Detail::EnumValuesRegistry m\_enumValuesRegistry;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12507}12507         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12508}12508     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12509}12509 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12510}12510     \textcolor{keyword}{using }RegistryHubSingleton = Singleton<RegistryHub, IRegistryHub, IMutableRegistryHub>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12511}12511 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12512}12512     IRegistryHub \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12513}12513         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{RegistryHubSingleton::get}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12514}12514     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12515}12515     IMutableRegistryHub\& \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12516}12516         \textcolor{keywordflow}{return} RegistryHubSingleton::getMutable();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12517}12517     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12518}12518     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a0f78e9afdebc6d4512d18e76fbf54b8c}{cleanUp}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12519}12519         cleanupSingletons();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12520}12520         \mbox{\hyperlink{namespace_catch_ae50508f10ffc4ed873a31a4db4caea16}{cleanUpContext}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12521}12521     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12522}12522     std::string \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12523}12523         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_aa97defa756fe28dd6249b19c12bbbec1}{getExceptionTranslatorRegistry}}().\mbox{\hyperlink{struct_catch_1_1_i_exception_translator_registry_af76ae8c331a17f2a94c9720bc0d686bb}{translateActiveException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12524}12524     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12525}12525 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12526}12526 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12527}12527 \textcolor{comment}{// end catch\_registry\_hub.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12528}12528 \textcolor{comment}{// start catch\_reporter\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12529}12529 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12530}12530 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12531}12531 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12532}12532     ReporterRegistry::\string~ReporterRegistry() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12533}12533 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12534}12534     IStreamingReporterPtr ReporterRegistry::create( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12535}12535         \textcolor{keyword}{auto} it =  m\_factories.find( name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12536}12536         \textcolor{keywordflow}{if}( it == m\_factories.end() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12537}12537             \textcolor{keywordflow}{return} \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12538}12538         \textcolor{keywordflow}{return} it-\/>second-\/>create( ReporterConfig( config ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12539}12539     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12540}12540 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12541}12541     \textcolor{keywordtype}{void} ReporterRegistry::registerReporter( std::string \textcolor{keyword}{const}\& name, \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12542}12542         m\_factories.emplace(name, factory);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12543}12543     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12544}12544     \textcolor{keywordtype}{void} ReporterRegistry::registerListener( \mbox{\hyperlink{namespace_catch_a6b5bdcf05f6ac139bcd868aef44f4a43}{IReporterFactoryPtr}} \textcolor{keyword}{const}\& factory ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12545}12545         m\_listeners.push\_back( factory );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12546}12546     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12547}12547 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12548}12548     IReporterRegistry::FactoryMap \textcolor{keyword}{const}\& ReporterRegistry::getFactories()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12549}12549         \textcolor{keywordflow}{return} m\_factories;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12550}12550     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12551}12551     IReporterRegistry::Listeners \textcolor{keyword}{const}\& ReporterRegistry::getListeners()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12552}12552         \textcolor{keywordflow}{return} m\_listeners;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12553}12553     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12554}12554 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12555}12555 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12556}12556 \textcolor{comment}{// end catch\_reporter\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12557}12557 \textcolor{comment}{// start catch\_result\_type.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12558}12558 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12559}12559 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12560}12560 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12561}12561     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a5205869c81c06d3460759cb86676ae68}{isOk}}( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12562}12562         \textcolor{keywordflow}{return} ( resultType \& \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{ResultWas::FailureBit}} ) == 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12563}12563     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12564}12564     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a54b01af61673a3e1f21f31713639b180}{isJustInfo}}( \textcolor{keywordtype}{int} flags ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12565}12565         \textcolor{keywordflow}{return} flags == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12566}12566     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12567}12567 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12568}12568     \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator | }}( \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} lhs, \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}} rhs ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12569}12569         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8}{ResultDisposition::Flags}}\textcolor{keyword}{>}( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}( lhs ) | \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}( rhs ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12570}12570     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12571}12571 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12572}12572     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a7f7480b15d74965459c844f0d393ed87}{shouldContinueOnFailure}}( \textcolor{keywordtype}{int} flags )    \{ \textcolor{keywordflow}{return} ( flags \& \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8a5adbb8bdfe4bf14bf37cb297d8b18b64}{ResultDisposition::ContinueOnFailure}} ) != 0; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12573}12573     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ab91eb13081203d634fe48d3d2ab386d7}{shouldSuppressFailure}}( \textcolor{keywordtype}{int} flags )      \{ \textcolor{keywordflow}{return} ( flags \& \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8ac6212775ec7a943e9c49e451f5ff5467}{ResultDisposition::SuppressFail}} ) != 0; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12574}12574 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12575}12575 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12576}12576 \textcolor{comment}{// end catch\_result\_type.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12577}12577 \textcolor{comment}{// start catch\_run\_context.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12578}12578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12579}12579 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12580}12580 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12581}12581 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12582}12582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12583}12583 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12584}12584 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12585}12585     \textcolor{keyword}{namespace }Generators \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12586}12586         \textcolor{keyword}{struct }GeneratorTracker : TestCaseTracking::TrackerBase, IGeneratorTracker \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12587}12587             \mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}} m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12588}12588 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12589}12589             GeneratorTracker( TestCaseTracking::NameAndLocation \textcolor{keyword}{const}\& nameAndLocation, TrackerContext\& ctx, ITracker* parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12590}12590             :   TrackerBase( nameAndLocation, ctx, parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12591}12591             \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12592}12592             \string~GeneratorTracker();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12593}12593 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12594}12594             \textcolor{keyword}{static} GeneratorTracker\& acquire( TrackerContext\& ctx, TestCaseTracking::NameAndLocation \textcolor{keyword}{const}\& nameAndLocation ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12595}12595                 std::shared\_ptr<GeneratorTracker> tracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12596}12596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12597}12597                 ITracker\& currentTracker = ctx.currentTracker();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12598}12598                 \textcolor{comment}{// Under specific circumstances, the generator we want}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12599}12599                 \textcolor{comment}{// to acquire is also the current tracker. If this is}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12600}12600                 \textcolor{comment}{// the case, we have to avoid looking through current}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12601}12601                 \textcolor{comment}{// tracker's children, and instead return the current}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12602}12602                 \textcolor{comment}{// tracker.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12603}12603                 \textcolor{comment}{// A case where this check is important is e.g.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12604}12604                 \textcolor{comment}{//     for (int i = 0; i < 5; ++i) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12605}12605                 \textcolor{comment}{//         int n = GENERATE(1, 2);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12606}12606                 \textcolor{comment}{//     \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12607}12607                 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12608}12608                 \textcolor{comment}{// without it, the code above creates 5 nested generators.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12609}12609                 \textcolor{keywordflow}{if} (currentTracker.nameAndLocation() == nameAndLocation) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12610}12610                     \textcolor{keyword}{auto} thisTracker = currentTracker.parent().findChild(nameAndLocation);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12611}12611                     assert(thisTracker);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12612}12612                     assert(thisTracker-\/>isGeneratorTracker());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12613}12613                     tracker = std::static\_pointer\_cast<GeneratorTracker>(thisTracker);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12614}12614                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( TestCaseTracking::ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12615}12615                     assert( childTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12616}12616                     assert( childTracker-\/>isGeneratorTracker() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12617}12617                     tracker = std::static\_pointer\_cast<GeneratorTracker>( childTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12618}12618                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12619}12619                     tracker = std::make\_shared<GeneratorTracker>( nameAndLocation, ctx, \&currentTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12620}12620                     currentTracker.addChild( tracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12621}12621                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12622}12622 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12623}12623                 \textcolor{keywordflow}{if}( !tracker-\/>isComplete() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12624}12624                     tracker-\/>open();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12625}12625                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12626}12626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12627}12627                 \textcolor{keywordflow}{return} *tracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12628}12628             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12629}12629 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12630}12630             \textcolor{comment}{// TrackerBase interface}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12631}12631             \textcolor{keywordtype}{bool} isGeneratorTracker()\textcolor{keyword}{ const override }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{true}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12632}12632             \textcolor{keyword}{auto} hasGenerator() const -\/> \textcolor{keywordtype}{bool}\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12633}12633                 \textcolor{keywordflow}{return} !!m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12634}12634             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12635}12635             \textcolor{keywordtype}{void} close()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12636}12636                 TrackerBase::close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12637}12637                 \textcolor{comment}{// If a generator has a child (it is followed by a section)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12638}12638                 \textcolor{comment}{// and none of its children have started, then we must wait}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12639}12639                 \textcolor{comment}{// until later to start consuming its values.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12640}12640                 \textcolor{comment}{// This catches cases where `GENERATE` is placed between two}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12641}12641                 \textcolor{comment}{// `SECTION`s.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12642}12642                 \textcolor{comment}{// **The check for m\_children.empty cannot be removed**.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12643}12643                 \textcolor{comment}{// doing so would break `GENERATE` \_not\_ followed by `SECTION`s.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12644}12644                 \textcolor{keyword}{const} \textcolor{keywordtype}{bool} should\_wait\_for\_child = [\&]() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12645}12645                     \textcolor{comment}{// No children -\/> nobody to wait for}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12646}12646                     \textcolor{keywordflow}{if} ( m\_children.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12647}12647                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12648}12648                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12649}12649                     \textcolor{comment}{// If at least one child started executing, don't wait}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12650}12650                     \textcolor{keywordflow}{if} ( \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{std::find\_if}}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12651}12651                              m\_children.begin(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12652}12652                              m\_children.end(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12653}12653                              []( TestCaseTracking::ITrackerPtr tracker ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12654}12654                                  return tracker-\/>hasStarted();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12655}12655                              \} ) != m\_children.end() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12656}12656                         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12657}12657                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12658}12658 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12659}12659                     \textcolor{comment}{// No children have started. We need to check if they \_can\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12660}12660                     \textcolor{comment}{// start, and thus we should wait for them, or they cannot}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12661}12661                     \textcolor{comment}{// start (due to filters), and we shouldn't wait for them}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12662}12662                     \textcolor{keyword}{auto}* parent = m\_parent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12663}12663                     \textcolor{comment}{// This is safe: there is always at least one section}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12664}12664                     \textcolor{comment}{// tracker in a test case tracking tree}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12665}12665                     \textcolor{keywordflow}{while} ( !parent-\/>isSectionTracker() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12666}12666                         parent = \&( parent-\/>parent() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12667}12667                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12668}12668                     assert( parent \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12669}12669                             \textcolor{stringliteral}{"{}Missing root (test case) level section"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12670}12670 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12671}12671                     \textcolor{keyword}{auto} \textcolor{keyword}{const}\& parentSection =}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12672}12672                         \textcolor{keyword}{static\_cast<}SectionTracker\&\textcolor{keyword}{>}( *parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12673}12673                     \textcolor{keyword}{auto} \textcolor{keyword}{const}\& filters = parentSection.getFilters();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12674}12674                     \textcolor{comment}{// No filters -\/> no restrictions on running sections}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12675}12675                     \textcolor{keywordflow}{if} ( filters.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12676}12676                         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12677}12677                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12678}12678 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12679}12679                     \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& child : m\_children ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12680}12680                         \textcolor{keywordflow}{if} ( child-\/>isSectionTracker() \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12681}12681                              \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{std::find}}( filters.begin(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12682}12682                                         filters.end(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12683}12683                                         \textcolor{keyword}{static\_cast<}SectionTracker\&\textcolor{keyword}{>}( *child )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12684}12684                                             .trimmedName() ) !=}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12685}12685                                  filters.end() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12686}12686                             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12687}12687                         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12688}12688                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12689}12689                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12690}12690                 \}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12691}12691 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12692}12692                 \textcolor{comment}{// This check is a bit tricky, because m\_generator-\/>next()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12693}12693                 \textcolor{comment}{// has a side-\/effect, where it consumes generator's current}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12694}12694                 \textcolor{comment}{// value, but we do not want to invoke the side-\/effect if}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12695}12695                 \textcolor{comment}{// this generator is still waiting for any child to start.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12696}12696                 \textcolor{keywordflow}{if} ( should\_wait\_for\_child ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12697}12697                      ( m\_runState == CompletedSuccessfully \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12698}12698                        m\_generator-\/>next() ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12699}12699                     m\_children.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12700}12700                     m\_runState = Executing;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12701}12701                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12702}12702             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12703}12703 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12704}12704             \textcolor{comment}{// IGeneratorTracker interface}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12705}12705             \textcolor{keyword}{auto} getGenerator() const -\/> \mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}} const\&\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12706}12706                 \textcolor{keywordflow}{return} m\_generator;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12707}12707             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12708}12708             \textcolor{keywordtype}{void} setGenerator( \mbox{\hyperlink{namespace_catch_1_1_generators_a2f1eaef46ea5874056069085ef324516}{GeneratorBasePtr}}\&\& generator )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12709}12709                 m\_generator = std::move( generator );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12710}12710             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12711}12711         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12712}12712         GeneratorTracker::\string~GeneratorTracker() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12713}12713     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12714}12714 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12715}12715     RunContext::RunContext(\mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& \_config, IStreamingReporterPtr\&\& reporter)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12716}12716     :   m\_runInfo(\_config-\/>name()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12717}12717         m\_context(\mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12718}12718         m\_config(\_config),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12719}12719         m\_reporter(\mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(reporter)),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12720}12720         m\_lastAssertionInfo\{ StringRef(), SourceLineInfo(\textcolor{stringliteral}{"{}"{}},0), StringRef(), ResultDisposition::\mbox{\hyperlink{namespace_catch_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0}{Normal}} \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12721}12721         m\_includeSuccessfulResults( m\_config-\/>includeSuccessfulResults() || m\_reporter-\/>getPreferences().shouldReportAllAssertions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12722}12722     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12723}12723         m\_context.setRunner(\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12724}12724         m\_context.setConfig(m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12725}12725         m\_context.setResultCapture(\textcolor{keyword}{this});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12726}12726         m\_reporter-\/>testRunStarting(m\_runInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12727}12727     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12728}12728 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12729}12729     RunContext::\string~RunContext() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12730}12730         m\_reporter-\/>testRunEnded(TestRunStats(m\_runInfo, m\_totals, aborting()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12731}12731     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12732}12732 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12733}12733     \textcolor{keywordtype}{void} RunContext::testGroupStarting(std::string \textcolor{keyword}{const}\& testSpec, std::size\_t groupIndex, std::size\_t groupsCount) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12734}12734         m\_reporter-\/>testGroupStarting(GroupInfo(testSpec, groupIndex, groupsCount));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12735}12735     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12736}12736 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12737}12737     \textcolor{keywordtype}{void} RunContext::testGroupEnded(std::string \textcolor{keyword}{const}\& testSpec, Totals \textcolor{keyword}{const}\& totals, std::size\_t groupIndex, std::size\_t groupsCount) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12738}12738         m\_reporter-\/>testGroupEnded(TestGroupStats(GroupInfo(testSpec, groupIndex, groupsCount), totals, aborting()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12739}12739     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12740}12740 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12741}12741     Totals RunContext::runTest(TestCase \textcolor{keyword}{const}\& testCase) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12742}12742         Totals prevTotals = m\_totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12743}12743 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12744}12744         std::string redirectedCout;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12745}12745         std::string redirectedCerr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12746}12746 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12747}12747         \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testInfo = testCase.getTestCaseInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12748}12748 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12749}12749         m\_reporter-\/>testCaseStarting(testInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12750}12750 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12751}12751         m\_activeTestCase = \&testCase;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12752}12752 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12753}12753         ITracker\& rootTracker = m\_trackerContext.startRun();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12754}12754         assert(rootTracker.isSectionTracker());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12755}12755         \textcolor{keyword}{static\_cast<}SectionTracker\&\textcolor{keyword}{>}(rootTracker).addInitialFilters(m\_config-\/>getSectionsToRun());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12756}12756         \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12757}12757             m\_trackerContext.startCycle();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12758}12758             m\_testCaseTracker = \&SectionTracker::acquire(m\_trackerContext, TestCaseTracking::NameAndLocation(testInfo.name, testInfo.lineInfo));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12759}12759             runCurrentTest(redirectedCout, redirectedCerr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12760}12760         \} \textcolor{keywordflow}{while} (!m\_testCaseTracker-\/>isSuccessfullyCompleted() \&\& !aborting());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12761}12761 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12762}12762         Totals deltaTotals = m\_totals.delta(prevTotals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12763}12763         \textcolor{keywordflow}{if} (testInfo.expectedToFail() \&\& deltaTotals.testCases.passed > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12764}12764             deltaTotals.assertions.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12765}12765             deltaTotals.testCases.passed-\/-\/;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12766}12766             deltaTotals.testCases.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12767}12767         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12768}12768         m\_totals.testCases += deltaTotals.testCases;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12769}12769         m\_reporter-\/>testCaseEnded(TestCaseStats(testInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12770}12770                                   deltaTotals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12771}12771                                   redirectedCout,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12772}12772                                   redirectedCerr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12773}12773                                   aborting()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12774}12774 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12775}12775         m\_activeTestCase = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12776}12776         m\_testCaseTracker = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12777}12777 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12778}12778         \textcolor{keywordflow}{return} deltaTotals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12779}12779     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12780}12780 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12781}12781     \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} RunContext::config()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12782}12782         \textcolor{keywordflow}{return} m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12783}12783     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12784}12784 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12785}12785     IStreamingReporter\& RunContext::reporter()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12786}12786         \textcolor{keywordflow}{return} *m\_reporter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12787}12787     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12788}12788 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12789}12789     \textcolor{keywordtype}{void} RunContext::assertionEnded(AssertionResult \textcolor{keyword}{const} \& result) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12790}12790         \textcolor{keywordflow}{if} (result.getResultType() == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12791}12791             m\_totals.assertions.passed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12792}12792             m\_lastAssertionPassed = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12793}12793         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!result.isOk()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12794}12794             m\_lastAssertionPassed = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12795}12795             \textcolor{keywordflow}{if}( m\_activeTestCase-\/>getTestCaseInfo().okToFail() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12796}12796                 m\_totals.assertions.failedButOk++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12797}12797             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12798}12798                 m\_totals.assertions.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12799}12799         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12800}12800         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12801}12801             m\_lastAssertionPassed = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12802}12802         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12803}12803 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12804}12804         \textcolor{comment}{// We have no use for the return value (whether messages should be cleared), because messages were made scoped}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12805}12805         \textcolor{comment}{// and should be let to clear themselves out.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12806}12806         \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(m\_reporter-\/>assertionEnded(AssertionStats(result, m\_messages, m\_totals)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12807}12807 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12808}12808         \textcolor{keywordflow}{if} (result.getResultType() != \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12809}12809             m\_messageScopes.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12810}12810 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12811}12811         \textcolor{comment}{// Reset working state}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12812}12812         resetAssertionInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12813}12813         m\_lastResult = result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12814}12814     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12815}12815     \textcolor{keywordtype}{void} RunContext::resetAssertionInfo() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12816}12816         m\_lastAssertionInfo.macroName = StringRef();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12817}12817         m\_lastAssertionInfo.capturedExpression = \textcolor{stringliteral}{"{}\{Unknown expression after the reported line\}"{}}\_sr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12818}12818     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12819}12819 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12820}12820     \textcolor{keywordtype}{bool} RunContext::sectionStarted(SectionInfo \textcolor{keyword}{const} \& sectionInfo, Counts \& assertions) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12821}12821         ITracker\& sectionTracker = SectionTracker::acquire(m\_trackerContext, TestCaseTracking::NameAndLocation(sectionInfo.name, sectionInfo.lineInfo));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12822}12822         \textcolor{keywordflow}{if} (!sectionTracker.isOpen())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12823}12823             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12824}12824         m\_activeSections.push\_back(\&sectionTracker);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12825}12825 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12826}12826         m\_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12827}12827 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12828}12828         m\_reporter-\/>sectionStarting(sectionInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12829}12829 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12830}12830         assertions = m\_totals.assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12831}12831 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12832}12832         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12833}12833     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12834}12834     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_ac1fe3550c5f97370fc6729e04d7571b8}{RunContext::acquireGeneratorTracker}}( StringRef generatorName, SourceLineInfo \textcolor{keyword}{const}\& lineInfo ) -\/> IGeneratorTracker\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12835}12835         \textcolor{keyword}{using namespace }Generators;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12836}12836         GeneratorTracker\& tracker = GeneratorTracker::acquire(m\_trackerContext,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12837}12837                                                               TestCaseTracking::NameAndLocation( \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(generatorName), lineInfo ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12838}12838         m\_lastAssertionInfo.lineInfo = lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12839}12839         \textcolor{keywordflow}{return} tracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12840}12840     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12841}12841 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12842}12842     \textcolor{keywordtype}{bool} RunContext::testForMissingAssertions(Counts\& assertions) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12843}12843         \textcolor{keywordflow}{if} (assertions.total() != 0)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12844}12844             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12845}12845         \textcolor{keywordflow}{if} (!m\_config-\/>warnAboutMissingAssertions())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12846}12846             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12847}12847         \textcolor{keywordflow}{if} (m\_trackerContext.currentTracker().hasChildren())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12848}12848             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12849}12849         m\_totals.assertions.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12850}12850         assertions.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12851}12851         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12852}12852     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12853}12853 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12854}12854     \textcolor{keywordtype}{void} RunContext::sectionEnded(SectionEndInfo \textcolor{keyword}{const} \& endInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12855}12855         Counts assertions = m\_totals.assertions -\/ endInfo.prevAssertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12856}12856         \textcolor{keywordtype}{bool} missingAssertions = testForMissingAssertions(assertions);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12857}12857 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12858}12858         \textcolor{keywordflow}{if} (!m\_activeSections.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12859}12859             m\_activeSections.back()-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12860}12860             m\_activeSections.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12861}12861         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12862}12862 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12863}12863         m\_reporter-\/>sectionEnded(SectionStats(endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12864}12864         m\_messages.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12865}12865         m\_messageScopes.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12866}12866     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12867}12867 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12868}12868     \textcolor{keywordtype}{void} RunContext::sectionEndedEarly(SectionEndInfo \textcolor{keyword}{const} \& endInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12869}12869         \textcolor{keywordflow}{if} (m\_unfinishedSections.empty())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12870}12870             m\_activeSections.back()-\/>fail();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12871}12871         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12872}12872             m\_activeSections.back()-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12873}12873         m\_activeSections.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12874}12874 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12875}12875         m\_unfinishedSections.push\_back(endInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12876}12876     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12877}12877 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12878}12878 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12879}12879     \textcolor{keywordtype}{void} RunContext::benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12880}12880         m\_reporter-\/>benchmarkPreparing(name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12881}12881     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12882}12882     \textcolor{keywordtype}{void} RunContext::benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& info ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12883}12883         m\_reporter-\/>benchmarkStarting( info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12884}12884     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12885}12885     \textcolor{keywordtype}{void} RunContext::benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& stats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12886}12886         m\_reporter-\/>benchmarkEnded( stats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12887}12887     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12888}12888     \textcolor{keywordtype}{void} RunContext::benchmarkFailed(std::string \textcolor{keyword}{const} \& error) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12889}12889         m\_reporter-\/>benchmarkFailed(error);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12890}12890     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12891}12891 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12892}12892 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12893}12893     \textcolor{keywordtype}{void} RunContext::pushScopedMessage(MessageInfo \textcolor{keyword}{const} \& message) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12894}12894         m\_messages.push\_back(message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12895}12895     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12896}12896 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12897}12897     \textcolor{keywordtype}{void} RunContext::popScopedMessage(MessageInfo \textcolor{keyword}{const} \& message) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12898}12898         m\_messages.erase(std::remove(m\_messages.begin(), m\_messages.end(), message), m\_messages.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12899}12899     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12900}12900 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12901}12901     \textcolor{keywordtype}{void} RunContext::emplaceUnscopedMessage( MessageBuilder \textcolor{keyword}{const}\& builder ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12902}12902         m\_messageScopes.emplace\_back( builder );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12903}12903     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12904}12904 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12905}12905     std::string RunContext::getCurrentTestName()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12906}12906         \textcolor{keywordflow}{return} m\_activeTestCase}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12907}12907             ? m\_activeTestCase-\/>getTestCaseInfo().name}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12908}12908             : std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12909}12909     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12910}12910 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12911}12911     \textcolor{keyword}{const} AssertionResult * RunContext::getLastResult()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12912}12912         \textcolor{keywordflow}{return} \&(*m\_lastResult);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12913}12913     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12914}12914 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12915}12915     \textcolor{keywordtype}{void} RunContext::exceptionEarlyReported() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12916}12916         m\_shouldReportUnexpected = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12917}12917     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12918}12918 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12919}12919     \textcolor{keywordtype}{void} RunContext::handleFatalErrorCondition( StringRef message ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12920}12920         \textcolor{comment}{// First notify reporter that bad things happened}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12921}12921         m\_reporter-\/>fatalErrorEncountered(message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12922}12922 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12923}12923         \textcolor{comment}{// Don't rebuild the result -\/-\/ the stringification itself can cause more fatal errors}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12924}12924         \textcolor{comment}{// Instead, fake a result data.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12925}12925         AssertionResultData tempResult( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7f0c2afadf75d1d24bf8729ebd32cee}{ResultWas::FatalErrorCondition}}, \{ \textcolor{keyword}{false} \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12926}12926         tempResult.message = \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12927}12927         AssertionResult result(m\_lastAssertionInfo, tempResult);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12928}12928 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12929}12929         assertionEnded(result);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12930}12930 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12931}12931         handleUnfinishedSections();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12932}12932 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12933}12933         \textcolor{comment}{// Recreate section for test case (as we will lose the one that was in scope)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12934}12934         \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCaseInfo = m\_activeTestCase-\/>getTestCaseInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12935}12935         SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12936}12936 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12937}12937         Counts assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12938}12938         assertions.failed = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12939}12939         SectionStats testCaseSectionStats(testCaseSection, assertions, 0, \textcolor{keyword}{false});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12940}12940         m\_reporter-\/>sectionEnded(testCaseSectionStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12941}12941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12942}12942         \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testInfo = m\_activeTestCase-\/>getTestCaseInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12943}12943 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12944}12944         Totals deltaTotals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12945}12945         deltaTotals.testCases.failed = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12946}12946         deltaTotals.assertions.failed = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12947}12947         m\_reporter-\/>testCaseEnded(TestCaseStats(testInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12948}12948                                   deltaTotals,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12949}12949                                   std::string(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12950}12950                                   std::string(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12951}12951                                   \textcolor{keyword}{false}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12952}12952         m\_totals.testCases.failed++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12953}12953         testGroupEnded(std::string(), m\_totals, 1, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12954}12954         m\_reporter-\/>testRunEnded(TestRunStats(m\_runInfo, m\_totals, \textcolor{keyword}{false}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12955}12955     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12956}12956 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12957}12957     \textcolor{keywordtype}{bool} RunContext::lastAssertionPassed() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12958}12958          \textcolor{keywordflow}{return} m\_lastAssertionPassed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12959}12959     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12960}12960 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12961}12961     \textcolor{keywordtype}{void} RunContext::assertionPassed() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12962}12962         m\_lastAssertionPassed = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12963}12963         ++m\_totals.assertions.passed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12964}12964         resetAssertionInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12965}12965         m\_messageScopes.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12966}12966     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12967}12967 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12968}12968     \textcolor{keywordtype}{bool} RunContext::aborting()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12969}12969         \textcolor{keywordflow}{return} m\_totals.assertions.failed >= \textcolor{keyword}{static\_cast<}std::size\_t\textcolor{keyword}{>}(m\_config-\/>abortAfter());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12970}12970     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12971}12971 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12972}12972     \textcolor{keywordtype}{void} RunContext::runCurrentTest(std::string \& redirectedCout, std::string \& redirectedCerr) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12973}12973         \textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCaseInfo = m\_activeTestCase-\/>getTestCaseInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12974}12974         SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12975}12975         m\_reporter-\/>sectionStarting(testCaseSection);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12976}12976         Counts prevAssertions = m\_totals.assertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12977}12977         \textcolor{keywordtype}{double} duration = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12978}12978         m\_shouldReportUnexpected = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12979}12979         m\_lastAssertionInfo = \{ \textcolor{stringliteral}{"{}TEST\_CASE"{}}\_sr, testCaseInfo.lineInfo, StringRef(), \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8a3758aaf4ec26097b5fdfcc3fbfc76e46}{ResultDisposition::Normal}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12980}12980 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12981}12981         seedRng(*m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12982}12982 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12983}12983         Timer timer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12984}12984         \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12985}12985             \textcolor{keywordflow}{if} (m\_reporter-\/>getPreferences().shouldRedirectStdOut) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12986}12986 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_EXPERIMENTAL\_REDIRECT)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12987}12987                 RedirectedStreams redirectedStreams(redirectedCout, redirectedCerr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12988}12988 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12989}12989                 timer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12990}12990                 invokeActiveTestCase();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12991}12991 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12992}12992                 OutputRedirect r(redirectedCout, redirectedCerr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12993}12993                 timer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12994}12994                 invokeActiveTestCase();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12995}12995 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12996}12996             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12997}12997                 timer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12998}12998                 invokeActiveTestCase();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l12999}12999             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13000}13000             duration = timer.getElapsedSeconds();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13001}13001         \} \mbox{\hyperlink{catch2_2catch_8hpp_a3caecf3cbc55848423d744df50d84d5b}{CATCH\_CATCH\_ANON}} (TestFailureException\&) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13002}13002             \textcolor{comment}{// This just means the test was aborted due to failure}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13003}13003         \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13004}13004             \textcolor{comment}{// Under CATCH\_CONFIG\_FAST\_COMPILE, unexpected exceptions under REQUIRE assertions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13005}13005             \textcolor{comment}{// are reported without translation at the point of origin.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13006}13006             \textcolor{keywordflow}{if}( m\_shouldReportUnexpected ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13007}13007                 AssertionReaction dummyReaction;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13008}13008                 handleUnexpectedInflightException( m\_lastAssertionInfo, \mbox{\hyperlink{namespace_catch_adafff91485eeeeb9e9333f317cc0e3b1}{translateActiveException}}(), dummyReaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13009}13009             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13010}13010         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13011}13011         Counts assertions = m\_totals.assertions -\/ prevAssertions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13012}13012         \textcolor{keywordtype}{bool} missingAssertions = testForMissingAssertions(assertions);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13013}13013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13014}13014         m\_testCaseTracker-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13015}13015         handleUnfinishedSections();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13016}13016         m\_messages.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13017}13017         m\_messageScopes.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13018}13018 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13019}13019         SectionStats testCaseSectionStats(testCaseSection, assertions, duration, missingAssertions);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13020}13020         m\_reporter-\/>sectionEnded(testCaseSectionStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13021}13021     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13022}13022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13023}13023     \textcolor{keywordtype}{void} RunContext::invokeActiveTestCase() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13024}13024         FatalConditionHandlerGuard \_(\&m\_fatalConditionhandler);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13025}13025         m\_activeTestCase-\/>invoke();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13026}13026     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13027}13027 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13028}13028     \textcolor{keywordtype}{void} RunContext::handleUnfinishedSections() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13029}13029         \textcolor{comment}{// If sections ended prematurely due to an exception we stored their}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13030}13030         \textcolor{comment}{// infos here so we can tear them down outside the unwind process.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13031}13031         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} it = m\_unfinishedSections.rbegin(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13032}13032              itEnd = m\_unfinishedSections.rend();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13033}13033              it != itEnd;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13034}13034              ++it)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13035}13035             sectionEnded(*it);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13036}13036         m\_unfinishedSections.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13037}13037     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13038}13038 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13039}13039     \textcolor{keywordtype}{void} RunContext::handleExpr(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13040}13040         AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13041}13041         ITransientExpression \textcolor{keyword}{const}\& expr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13042}13042         AssertionReaction\& reaction}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13043}13043     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13044}13044         m\_reporter-\/>assertionStarting( info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13045}13045 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13046}13046         \textcolor{keywordtype}{bool} negated = \mbox{\hyperlink{namespace_catch_a93ef4e3e307a2021ca0d41b32c0e54b0}{isFalseTest}}( info.resultDisposition );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13047}13047         \textcolor{keywordtype}{bool} result = expr.getResult() != negated;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13048}13048 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13049}13049         \textcolor{keywordflow}{if}( result ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13050}13050             \textcolor{keywordflow}{if} (!m\_includeSuccessfulResults) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13051}13051                 assertionPassed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13052}13052             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13053}13053             \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13054}13054                 reportExpr(info, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}, \&expr, negated);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13055}13055             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13056}13056         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13057}13057         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13058}13058             reportExpr(info, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7062ac2bdea77a68bac4675c4315570}{ResultWas::ExpressionFailed}}, \&expr, negated );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13059}13059             populateReaction( reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13060}13060         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13061}13061     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13062}13062     \textcolor{keywordtype}{void} RunContext::reportExpr(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13063}13063             AssertionInfo \textcolor{keyword}{const} \&info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13064}13064             \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13065}13065             ITransientExpression \textcolor{keyword}{const} *expr,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13066}13066             \textcolor{keywordtype}{bool} negated ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13067}13067 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13068}13068         m\_lastAssertionInfo = info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13069}13069         AssertionResultData data( resultType, LazyExpression( negated ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13070}13070 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13071}13071         AssertionResult assertionResult\{ info, data \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13072}13072         assertionResult.m\_resultData.lazyExpression.m\_transientExpression = expr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13073}13073 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13074}13074         assertionEnded( assertionResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13075}13075     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13076}13076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13077}13077     \textcolor{keywordtype}{void} RunContext::handleMessage(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13078}13078             AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13079}13079             \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13080}13080             StringRef \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13081}13081             AssertionReaction\& reaction}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13082}13082     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13083}13083         m\_reporter-\/>assertionStarting( info );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13084}13084 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13085}13085         m\_lastAssertionInfo = info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13086}13086 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13087}13087         AssertionResultData data( resultType, LazyExpression( \textcolor{keyword}{false} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13088}13088         data.message = \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(message);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13089}13089         AssertionResult assertionResult\{ m\_lastAssertionInfo, data \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13090}13090         assertionEnded( assertionResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13091}13091         \textcolor{keywordflow}{if}( !assertionResult.isOk() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13092}13092             populateReaction( reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13093}13093     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13094}13094     \textcolor{keywordtype}{void} RunContext::handleUnexpectedExceptionNotThrown(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13095}13095             AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13096}13096             AssertionReaction\& reaction}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13097}13097     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13098}13098         handleNonExpr(info, \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa982f9c220de9fb76881da3bbf22b1a85}{Catch::ResultWas::DidntThrowException}}, reaction);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13099}13099     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13100}13100 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13101}13101     \textcolor{keywordtype}{void} RunContext::handleUnexpectedInflightException(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13102}13102             AssertionInfo \textcolor{keyword}{const}\& info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13103}13103             std::string \textcolor{keyword}{const}\& message,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13104}13104             AssertionReaction\& reaction}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13105}13105     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13106}13106         m\_lastAssertionInfo = info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13107}13107 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13108}13108         AssertionResultData data( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}}, LazyExpression( \textcolor{keyword}{false} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13109}13109         data.message = message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13110}13110         AssertionResult assertionResult\{ info, data \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13111}13111         assertionEnded( assertionResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13112}13112         populateReaction( reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13113}13113     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13114}13114 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13115}13115     \textcolor{keywordtype}{void} RunContext::populateReaction( AssertionReaction\& reaction ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13116}13116         reaction.shouldDebugBreak = m\_config-\/>shouldDebugBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13117}13117         reaction.shouldThrow = aborting() || (m\_lastAssertionInfo.resultDisposition \& \mbox{\hyperlink{struct_catch_1_1_result_disposition_a3396cad6e2259af326b3aae93e23e9d8a3758aaf4ec26097b5fdfcc3fbfc76e46}{ResultDisposition::Normal}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13118}13118     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13119}13119 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13120}13120     \textcolor{keywordtype}{void} RunContext::handleIncomplete(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13121}13121             AssertionInfo \textcolor{keyword}{const}\& info}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13122}13122     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13123}13123         m\_lastAssertionInfo = info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13124}13124 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13125}13125         AssertionResultData data( \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}}, LazyExpression( \textcolor{keyword}{false} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13126}13126         data.message = \textcolor{stringliteral}{"{}Exception translation was disabled by CATCH\_CONFIG\_FAST\_COMPILE"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13127}13127         AssertionResult assertionResult\{ info, data \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13128}13128         assertionEnded( assertionResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13129}13129     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13130}13130     \textcolor{keywordtype}{void} RunContext::handleNonExpr(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13131}13131             AssertionInfo \textcolor{keyword}{const} \&info,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13132}13132             \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601ef}{ResultWas::OfType}} resultType,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13133}13133             AssertionReaction \&reaction}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13134}13134     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13135}13135         m\_lastAssertionInfo = info;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13136}13136 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13137}13137         AssertionResultData data( resultType, LazyExpression( \textcolor{keyword}{false} ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13138}13138         AssertionResult assertionResult\{ info, data \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13139}13139         assertionEnded( assertionResult );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13140}13140 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13141}13141         \textcolor{keywordflow}{if}( !assertionResult.isOk() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13142}13142             populateReaction( reaction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13143}13143     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13144}13144 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13145}13145     IResultCapture\& \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13146}13146         \textcolor{keywordflow}{if} (\textcolor{keyword}{auto}* capture = \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13147}13147             \textcolor{keywordflow}{return} *capture;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13148}13148         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13149}13149             \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}No result capture instance"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13150}13150     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13151}13151 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13152}13152     \textcolor{keywordtype}{void} seedRng(IConfig \textcolor{keyword}{const}\& config) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13153}13153         \textcolor{keywordflow}{if} (config.rngSeed() != 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13154}13154             std::srand(config.rngSeed());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13155}13155             \mbox{\hyperlink{namespace_catch_a66ea553511cbbc59d99e1720d8da514e}{rng}}().\mbox{\hyperlink{class_catch_1_1_simple_pcg32_a215dac93c384973353a2b4f87f68c8bc}{seed}}(config.rngSeed());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13156}13156         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13157}13157     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13158}13158 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13159}13159     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_acf5ea05e942d2d7fe79111e12754ed76}{rngSeed}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13160}13160         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().\mbox{\hyperlink{struct_catch_1_1_i_context_ad72743ae753feab0a6f5505f26f79ced}{getConfig}}()-\/>rngSeed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13161}13161     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13162}13162 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13163}13163 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13164}13164 \textcolor{comment}{// end catch\_run\_context.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13165}13165 \textcolor{comment}{// start catch\_section.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13166}13166 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13167}13167 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13168}13168 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13169}13169     \mbox{\hyperlink{class_catch_1_1_section_a68fd4e51e8981aaa7ddb00d8a6abd099}{Section::Section}}( SectionInfo \textcolor{keyword}{const}\& info )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13170}13170     :   m\_info( info ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13171}13171         m\_sectionIncluded( \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().sectionStarted( m\_info, m\_assertions ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13172}13172     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13173}13173         m\_timer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13174}13174     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13175}13175 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13176}13176     \mbox{\hyperlink{class_catch_1_1_section_aa1422edd68a77aa578b5cc6b8b69f86f}{Section::\string~Section}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13177}13177         \textcolor{keywordflow}{if}( m\_sectionIncluded ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13178}13178             SectionEndInfo endInfo\{ m\_info, m\_assertions, m\_timer.\mbox{\hyperlink{class_catch_1_1_timer_a065e37e3c9eb16bd4dcf41971d8deedc}{getElapsedSeconds}}() \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13179}13179             \textcolor{keywordflow}{if}( uncaught\_exceptions() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13180}13180                 \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().\mbox{\hyperlink{struct_catch_1_1_i_result_capture_afcc71eef8ca821ae132cced4a2be6988}{sectionEndedEarly}}( endInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13181}13181             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13182}13182                 \mbox{\hyperlink{namespace_catch_af718eeab870712f292ed8dc6ee3f6488}{getResultCapture}}().\mbox{\hyperlink{struct_catch_1_1_i_result_capture_a4e152bc43dc0933684e31fa67a58195d}{sectionEnded}}( endInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13183}13183         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13184}13184     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13185}13185 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13186}13186     \textcolor{comment}{// This indicates whether the section should be executed or not}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13187}13187     Section::operator bool()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13188}13188         \textcolor{keywordflow}{return} m\_sectionIncluded;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13189}13189     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13190}13190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13191}13191 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13192}13192 \textcolor{comment}{// end catch\_section.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13193}13193 \textcolor{comment}{// start catch\_section\_info.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13194}13194 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13195}13195 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13196}13196 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13197}13197     \mbox{\hyperlink{struct_catch_1_1_section_info_a2808437ae7d4bc0830cee1c3995165a6}{SectionInfo::SectionInfo}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13198}13198         (   SourceLineInfo \textcolor{keyword}{const}\& \_lineInfo,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13199}13199             std::string \textcolor{keyword}{const}\& \_name )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13200}13200     :   name( \_name ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13201}13201         lineInfo( \_lineInfo )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13202}13202     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13203}13203 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13204}13204 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13205}13205 \textcolor{comment}{// end catch\_section\_info.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13206}13206 \textcolor{comment}{// start catch\_session.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13207}13207 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13208}13208 \textcolor{comment}{// start catch\_session.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13209}13209 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13210}13210 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13211}13211 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13212}13212 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13213}13213 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13214}13214     \textcolor{keyword}{class }Session : NonCopyable \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13215}13215     \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13216}13216 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13217}13217         Session();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13218}13218         \string~Session() \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13219}13219 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13220}13220         \textcolor{keywordtype}{void} showHelp() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13221}13221         \textcolor{keywordtype}{void} libIdentify();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13222}13222 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13223}13223         \textcolor{keywordtype}{int} applyCommandLine( \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} * argv );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13224}13224 \textcolor{preprocessor}{    \#if defined(CATCH\_CONFIG\_WCHAR) \&\& defined(\_WIN32) \&\& defined(UNICODE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13225}13225         \textcolor{keywordtype}{int} applyCommandLine( \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{wchar\_t} \textcolor{keyword}{const} * \textcolor{keyword}{const} * argv );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13226}13226 \textcolor{preprocessor}{    \#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13227}13227 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13228}13228         \textcolor{keywordtype}{void} useConfigData( ConfigData \textcolor{keyword}{const}\& configData );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13229}13229 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13230}13230         \textcolor{keyword}{template}<\textcolor{keyword}{typename} CharT>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13231}13231         \textcolor{keywordtype}{int} run(\textcolor{keywordtype}{int} argc, CharT \textcolor{keyword}{const} * \textcolor{keyword}{const} argv[]) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13232}13232             \textcolor{keywordflow}{if} (m\_startupExceptions)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13233}13233                 \textcolor{keywordflow}{return} 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13234}13234             \textcolor{keywordtype}{int} returnCode = applyCommandLine(argc, argv);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13235}13235             \textcolor{keywordflow}{if} (returnCode == 0)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13236}13236                 returnCode = run();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13237}13237             \textcolor{keywordflow}{return} returnCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13238}13238         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13239}13239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13240}13240         \textcolor{keywordtype}{int} run();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13241}13241 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13242}13242         clara::Parser \textcolor{keyword}{const}\& cli() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13243}13243         \textcolor{keywordtype}{void} cli( clara::Parser \textcolor{keyword}{const}\& newParser );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13244}13244         ConfigData\& configData();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13245}13245         Config\& config();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13246}13246     \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13247}13247         \textcolor{keywordtype}{int} runInternal();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13248}13248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13249}13249         clara::Parser m\_cli;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13250}13250         ConfigData m\_configData;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13251}13251         std::shared\_ptr<Config> m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13252}13252         \textcolor{keywordtype}{bool} m\_startupExceptions = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13253}13253     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13254}13254 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13255}13255 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13256}13256 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13257}13257 \textcolor{comment}{// end catch\_session.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13258}13258 \textcolor{comment}{// start catch\_version.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13259}13259 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13260}13260 \textcolor{preprocessor}{\#include <iosfwd>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13261}13261 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13262}13262 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13263}13263 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13264}13264     \textcolor{comment}{// Versioning information}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13265}13265     \textcolor{keyword}{struct }Version \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13266}13266         Version( Version \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13267}13267         Version\& operator=( Version \textcolor{keyword}{const}\& ) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13268}13268         Version(    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_majorVersion,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13269}13269                     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_minorVersion,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13270}13270                     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_patchNumber,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13271}13271                     \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} \_branchName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13272}13272                     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_buildNumber );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13273}13273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13274}13274         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \textcolor{keyword}{const} majorVersion;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13275}13275         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \textcolor{keyword}{const} minorVersion;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13276}13276         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \textcolor{keyword}{const} patchNumber;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13277}13277 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13278}13278         \textcolor{comment}{// buildNumber is only used if branchName is not null}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13279}13279         \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} branchName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13280}13280         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \textcolor{keyword}{const} buildNumber;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13281}13281 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13282}13282         \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, Version \textcolor{keyword}{const}\& version );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13283}13283     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13284}13284 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13285}13285     Version \textcolor{keyword}{const}\& libraryVersion();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13286}13286 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13287}13287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13288}13288 \textcolor{comment}{// end catch\_version.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13289}13289 \textcolor{preprocessor}{\#include <cstdlib>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13290}13290 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13291}13291 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13292}13292 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13293}13293 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13294}13294 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13295}13295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13296}13296     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13297}13297         \textcolor{keyword}{const} \textcolor{keywordtype}{int} MaxExitCode = 255;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13298}13298 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13299}13299         IStreamingReporterPtr createReporter(std::string \textcolor{keyword}{const}\& reporterName, \mbox{\hyperlink{namespace_catch_afd20a5d4f9d2f4d525db81a7765367b0}{IConfigPtr}} \textcolor{keyword}{const}\& config) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13300}13300             \textcolor{keyword}{auto} reporter = \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{Catch::getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{getReporterRegistry}}().create(reporterName, config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13301}13301             \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(reporter, \textcolor{stringliteral}{"{}No reporter registered with name: '"{}} << reporterName << \textcolor{stringliteral}{"{}'"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13302}13302 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13303}13303             \textcolor{keywordflow}{return} reporter;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13304}13304         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13305}13305 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13306}13306         IStreamingReporterPtr makeReporter(std::shared\_ptr<Config> \textcolor{keyword}{const}\& config) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13307}13307             \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{Catch::getRegistryHub}}().getReporterRegistry().getListeners().empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13308}13308                 \textcolor{keywordflow}{return} createReporter(config-\/>getReporterName(), config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13309}13309             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13310}13310 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13311}13311             \textcolor{comment}{// On older platforms, returning std::unique\_ptr<ListeningReporter>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13312}13312             \textcolor{comment}{// when the return type is std::unique\_ptr<IStreamingReporter>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13313}13313             \textcolor{comment}{// doesn't compile without a std::move call. However, this causes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13314}13314             \textcolor{comment}{// a warning on newer platforms. Thus, we have to work around}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13315}13315             \textcolor{comment}{// it a bit and downcast the pointer manually.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13316}13316             \textcolor{keyword}{auto} ret = std::unique\_ptr<IStreamingReporter>(\textcolor{keyword}{new} ListeningReporter);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13317}13317             \textcolor{keyword}{auto}\& multi = \textcolor{keyword}{static\_cast<}ListeningReporter\&\textcolor{keyword}{>}(*ret);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13318}13318             \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listeners = \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{Catch::getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_abbb3aafb58916d633ef959d724d4b82c}{getReporterRegistry}}().getListeners();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13319}13319             \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : listeners) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13320}13320                 multi.addListener(listener-\/>create(Catch::ReporterConfig(config)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13321}13321             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13322}13322             multi.addReporter(createReporter(config-\/>getReporterName(), config));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13323}13323             \textcolor{keywordflow}{return} ret;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13324}13324         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13325}13325 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13326}13326         \textcolor{keyword}{class }TestGroup \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13327}13327         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13328}13328             \textcolor{keyword}{explicit} TestGroup(std::shared\_ptr<Config> \textcolor{keyword}{const}\& config)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13329}13329             : m\_config\{config\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13330}13330             , m\_context\{config, makeReporter(config)\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13331}13331             \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13332}13332                 \textcolor{keyword}{auto} \textcolor{keyword}{const}\& allTestCases = \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}(*m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13333}13333                 m\_matches = m\_config-\/>testSpec().matchesByFilter(allTestCases, *m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13334}13334                 \textcolor{keyword}{auto} \textcolor{keyword}{const}\& invalidArgs = m\_config-\/>testSpec().getInvalidArgs();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13335}13335 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13336}13336                 \textcolor{keywordflow}{if} (m\_matches.empty() \&\& invalidArgs.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13337}13337                     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}} : allTestCases)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13338}13338                         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}.isHidden())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13339}13339                             m\_tests.emplace(\&\mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13340}13340                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13341}13341                     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& match : m\_matches)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13342}13342                         m\_tests.insert(match.tests.begin(), match.tests.end());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13343}13343                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13344}13344             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13345}13345 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13346}13346             Totals execute() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13347}13347                 \textcolor{keyword}{auto} \textcolor{keyword}{const}\& invalidArgs = m\_config-\/>testSpec().getInvalidArgs();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13348}13348                 Totals totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13349}13349                 m\_context.testGroupStarting(m\_config-\/>name(), 1, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13350}13350                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCase : m\_tests) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13351}13351                     \textcolor{keywordflow}{if} (!m\_context.aborting())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13352}13352                         totals += m\_context.runTest(*testCase);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13353}13353                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13354}13354                         m\_context.reporter().skipTest(*testCase);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13355}13355                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13356}13356 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13357}13357                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& match : m\_matches) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13358}13358                     \textcolor{keywordflow}{if} (match.tests.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13359}13359                         m\_context.reporter().noMatchingTestCases(match.name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13360}13360                         totals.error = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13361}13361                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13362}13362                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13363}13363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13364}13364                 \textcolor{keywordflow}{if} (!invalidArgs.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13365}13365                     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& invalidArg: invalidArgs)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13366}13366                          m\_context.reporter().reportInvalidArguments(invalidArg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13367}13367                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13368}13368 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13369}13369                 m\_context.testGroupEnded(m\_config-\/>name(), totals, 1, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13370}13370                 \textcolor{keywordflow}{return} totals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13371}13371             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13372}13372 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13373}13373         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13374}13374             \textcolor{keyword}{using }Tests = std::set<TestCase const*>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13375}13375 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13376}13376             std::shared\_ptr<Config> m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13377}13377             RunContext m\_context;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13378}13378             Tests m\_tests;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13379}13379             \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{TestSpec::Matches}} m\_matches;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13380}13380         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13381}13381 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13382}13382         \textcolor{keywordtype}{void} applyFilenamesAsTags(\mbox{\hyperlink{struct_catch_1_1_i_config}{Catch::IConfig}} \textcolor{keyword}{const}\& config) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13383}13383             \textcolor{keyword}{auto}\& tests = \textcolor{keyword}{const\_cast<}std::vector<TestCase>\&\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}(config));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13384}13384             \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& testCase : tests) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13385}13385                 \textcolor{keyword}{auto} tags = testCase.tags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13386}13386 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13387}13387                 std::string filename = testCase.lineInfo.file;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13388}13388                 \textcolor{keyword}{auto} lastSlash = filename.find\_last\_of(\textcolor{stringliteral}{"{}\(\backslash\)\(\backslash\)/"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13389}13389                 \textcolor{keywordflow}{if} (lastSlash != std::string::npos) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13390}13390                     filename.erase(0, lastSlash);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13391}13391                     filename[0] = \textcolor{charliteral}{'\#'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13392}13392                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13393}13393                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13394}13394                 \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13395}13395                     filename.insert(0, \textcolor{stringliteral}{"{}\#"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13396}13396                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13397}13397 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13398}13398                 \textcolor{keyword}{auto} lastDot = filename.find\_last\_of(\textcolor{charliteral}{'.'});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13399}13399                 \textcolor{keywordflow}{if} (lastDot != std::string::npos) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13400}13400                     filename.erase(lastDot);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13401}13401                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13402}13402 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13403}13403                 tags.push\_back(std::move(filename));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13404}13404                 setTags(testCase, tags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13405}13405             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13406}13406         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13407}13407 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13408}13408     \} \textcolor{comment}{// anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13409}13409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13410}13410     Session::Session() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13411}13411         \textcolor{keyword}{static} \textcolor{keywordtype}{bool} alreadyInstantiated = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13412}13412         \textcolor{keywordflow}{if}( alreadyInstantiated ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13413}13413             \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{ \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Only one instance of Catch::Session can ever be used"{}} ); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13414}13414             \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}} \{ \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a72a7d5386851ac3200f8da794a009c86}{registerStartupException}}(); \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13415}13415         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13416}13416 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13417}13417         \textcolor{comment}{// There cannot be exceptions at startup in no-\/exception mode.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13418}13418 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13419}13419         \textcolor{keyword}{const} \textcolor{keyword}{auto}\& exceptions = \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a6a1810bb78ba99c3be091958bcc12f29}{getStartupExceptionRegistry}}().getExceptions();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13420}13420         \textcolor{keywordflow}{if} ( !exceptions.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13421}13421             config();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13422}13422             \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_aa81ba080fce084e9482f20338bc88531}{setConfig}}(m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13423}13423 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13424}13424             m\_startupExceptions = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13425}13425             Colour colourGuard( Colour::Red );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13426}13426             \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << \textcolor{stringliteral}{"{}Errors occurred during startup!"{}} << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13427}13427             \textcolor{comment}{// iterate over all exceptions and notify user}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13428}13428             \textcolor{keywordflow}{for} ( \textcolor{keyword}{const} \textcolor{keyword}{auto}\& ex\_ptr : exceptions ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13429}13429                 \textcolor{keywordflow}{try} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13430}13430                     std::rethrow\_exception(ex\_ptr);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13431}13431                 \} \textcolor{keywordflow}{catch} ( std::exception \textcolor{keyword}{const}\& ex ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13432}13432                     \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << Column( ex.what() ).indent(2) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13433}13433                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13434}13434             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13435}13435         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13436}13436 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13437}13437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13438}13438         alreadyInstantiated = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13439}13439         m\_cli = makeCommandLineParser( m\_configData );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13440}13440     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13441}13441     Session::\string~Session() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13442}13442         \mbox{\hyperlink{namespace_catch_a0f78e9afdebc6d4512d18e76fbf54b8c}{Catch::cleanUp}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13443}13443     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13444}13444 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13445}13445     \textcolor{keywordtype}{void} Session::showHelp()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13446}13446         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13447}13447                 << \textcolor{stringliteral}{"{}\(\backslash\)nCatch v"{}} << libraryVersion() << \textcolor{stringliteral}{"{}\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13448}13448                 << m\_cli << std::endl}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13449}13449                 << \textcolor{stringliteral}{"{}For more detailed usage please see the project docs\(\backslash\)n"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13450}13450     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13451}13451     \textcolor{keywordtype}{void} Session::libIdentify() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13452}13452         \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13453}13453                 << std::left << std::setw(16) << \textcolor{stringliteral}{"{}description: "{}} << \textcolor{stringliteral}{"{}A Catch2 test executable\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13454}13454                 << std::left << std::setw(16) << \textcolor{stringliteral}{"{}category: "{}} << \textcolor{stringliteral}{"{}testframework\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13455}13455                 << std::left << std::setw(16) << \textcolor{stringliteral}{"{}framework: "{}} << \textcolor{stringliteral}{"{}Catch Test\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13456}13456                 << std::left << std::setw(16) << \textcolor{stringliteral}{"{}version: "{}} << libraryVersion() << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13457}13457     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13458}13458 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13459}13459     \textcolor{keywordtype}{int} Session::applyCommandLine( \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} * argv ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13460}13460         \textcolor{keywordflow}{if}( m\_startupExceptions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13461}13461             \textcolor{keywordflow}{return} 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13462}13462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13463}13463         \textcolor{keyword}{auto} result = m\_cli.parse( clara::Args( argc, argv ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13464}13464         \textcolor{keywordflow}{if}( !result ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13465}13465             config();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13466}13466             \mbox{\hyperlink{namespace_catch_a710841d4732b86c06f816bd4822bd425}{getCurrentMutableContext}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_context_aa81ba080fce084e9482f20338bc88531}{setConfig}}(m\_config);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13467}13467             \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13468}13468                 << Colour( Colour::Red )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13469}13469                 << \textcolor{stringliteral}{"{}\(\backslash\)nError(s) in input:\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13470}13470                 << Column( result.errorMessage() ).indent( 2 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13471}13471                 << \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13472}13472             \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << \textcolor{stringliteral}{"{}Run with -\/? for usage\(\backslash\)n"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13473}13473             \textcolor{keywordflow}{return} MaxExitCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13474}13474         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13475}13475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13476}13476         \textcolor{keywordflow}{if}( m\_configData.showHelp )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13477}13477             showHelp();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13478}13478         \textcolor{keywordflow}{if}( m\_configData.libIdentify )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13479}13479             libIdentify();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13480}13480         m\_config.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13481}13481         \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13482}13482     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13483}13483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13484}13484 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_WCHAR) \&\& defined(\_WIN32) \&\& defined(UNICODE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13485}13485     \textcolor{keywordtype}{int} Session::applyCommandLine( \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{wchar\_t} \textcolor{keyword}{const} * \textcolor{keyword}{const} * argv ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13486}13486 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13487}13487         \textcolor{keywordtype}{char} **utf8Argv = \textcolor{keyword}{new} \textcolor{keywordtype}{char} *[ argc ];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13488}13488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13489}13489         \textcolor{keywordflow}{for} ( \textcolor{keywordtype}{int} i = 0; i < argc; ++i ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13490}13490             \textcolor{keywordtype}{int} bufSize = WideCharToMultiByte( CP\_UTF8, 0, argv[i], -\/1, \textcolor{keyword}{nullptr}, 0, \textcolor{keyword}{nullptr}, \textcolor{keyword}{nullptr} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13491}13491 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13492}13492             utf8Argv[ i ] = \textcolor{keyword}{new} \textcolor{keywordtype}{char}[ bufSize ];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13493}13493 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13494}13494             WideCharToMultiByte( CP\_UTF8, 0, argv[i], -\/1, utf8Argv[i], bufSize, \textcolor{keyword}{nullptr}, \textcolor{keyword}{nullptr} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13495}13495         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13496}13496 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13497}13497         \textcolor{keywordtype}{int} returnCode = applyCommandLine( argc, utf8Argv );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13498}13498 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13499}13499         \textcolor{keywordflow}{for} ( \textcolor{keywordtype}{int} i = 0; i < argc; ++i )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13500}13500             delete [] utf8Argv[ i ];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13501}13501 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13502}13502         \textcolor{keyword}{delete} [] utf8Argv;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13503}13503 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13504}13504         \textcolor{keywordflow}{return} returnCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13505}13505     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13506}13506 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13507}13507 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13508}13508     \textcolor{keywordtype}{void} Session::useConfigData( ConfigData \textcolor{keyword}{const}\& configData ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13509}13509         m\_configData = configData;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13510}13510         m\_config.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13511}13511     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13512}13512 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13513}13513     \textcolor{keywordtype}{int} Session::run() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13514}13514         \textcolor{keywordflow}{if}( ( m\_configData.waitForKeypress \& WaitForKeypress::BeforeStart ) != 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13515}13515             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}...waiting for enter/ return before starting"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13516}13516             \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(std::getchar());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13517}13517         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13518}13518         \textcolor{keywordtype}{int} exitCode = runInternal();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13519}13519         \textcolor{keywordflow}{if}( ( m\_configData.waitForKeypress \& WaitForKeypress::BeforeExit ) != 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13520}13520             \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{Catch::cout}}() << \textcolor{stringliteral}{"{}...waiting for enter/ return before exiting, with code: "{}} << exitCode << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13521}13521             \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(std::getchar());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13522}13522         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13523}13523         \textcolor{keywordflow}{return} exitCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13524}13524     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13525}13525 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13526}13526     clara::Parser \textcolor{keyword}{const}\& Session::cli()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13527}13527         \textcolor{keywordflow}{return} m\_cli;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13528}13528     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13529}13529     \textcolor{keywordtype}{void} Session::cli( clara::Parser \textcolor{keyword}{const}\& newParser ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13530}13530         m\_cli = newParser;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13531}13531     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13532}13532     ConfigData\& Session::configData() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13533}13533         \textcolor{keywordflow}{return} m\_configData;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13534}13534     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13535}13535     Config\& Session::config() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13536}13536         \textcolor{keywordflow}{if}( !m\_config )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13537}13537             m\_config = std::make\_shared<Config>( m\_configData );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13538}13538         \textcolor{keywordflow}{return} *m\_config;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13539}13539     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13540}13540 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13541}13541     \textcolor{keywordtype}{int} Session::runInternal() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13542}13542         \textcolor{keywordflow}{if}( m\_startupExceptions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13543}13543             \textcolor{keywordflow}{return} 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13544}13544 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13545}13545         \textcolor{keywordflow}{if} (m\_configData.showHelp || m\_configData.libIdentify) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13546}13546             \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13547}13547         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13548}13548 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13549}13549         \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13550}13550             config(); \textcolor{comment}{// Force config to be constructed}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13551}13551 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13552}13552             seedRng( *m\_config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13553}13553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13554}13554             \textcolor{keywordflow}{if}( m\_configData.filenamesAsTags )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13555}13555                 applyFilenamesAsTags( *m\_config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13556}13556 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13557}13557             \textcolor{comment}{// Handle list request}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13558}13558             \textcolor{keywordflow}{if}( Option<std::size\_t> listed = list( m\_config ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13559}13559                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}}) (MaxExitCode, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(*listed));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13560}13560 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13561}13561             TestGroup tests \{ m\_config \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13562}13562             \textcolor{keyword}{auto} \textcolor{keyword}{const} totals = tests.execute();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13563}13563 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13564}13564             \textcolor{keywordflow}{if}( m\_config-\/>warnAboutNoTests() \&\& totals.error == -\/1 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13565}13565                 return 2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13566}13566 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13567}13567             \textcolor{comment}{// Note that on unices only the lower 8 bits are usually used, clamping}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13568}13568             \textcolor{comment}{// the return value to 255 prevents false negative when some multiple}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13569}13569             \textcolor{comment}{// of 256 tests has failed}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13570}13570             \textcolor{keywordflow}{return} (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}}) (MaxExitCode, (\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std::max}}) (totals.error, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(totals.assertions.failed)));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13571}13571         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13572}13572 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13573}13573         \textcolor{keywordflow}{catch}( std::exception\& ex ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13574}13574             \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{Catch::cerr}}() << ex.what() << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13575}13575             \textcolor{keywordflow}{return} MaxExitCode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13576}13576         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13577}13577 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13578}13578     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13579}13579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13580}13580 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13581}13581 \textcolor{comment}{// end catch\_session.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13582}13582 \textcolor{comment}{// start catch\_singletons.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13583}13583 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13584}13584 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13585}13585 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13586}13586 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13587}13587 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13588}13588     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13589}13589         \textcolor{keyword}{static} \textcolor{keyword}{auto} getSingletons() -\/> std::vector<ISingleton*>*\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13590}13590             \textcolor{keyword}{static} std::vector<ISingleton*>* g\_singletons = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13591}13591             \textcolor{keywordflow}{if}( !g\_singletons )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13592}13592                 g\_singletons = \textcolor{keyword}{new} std::vector<ISingleton*>();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13593}13593             \textcolor{keywordflow}{return} g\_singletons;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13594}13594         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13595}13595     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13596}13596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13597}13597     ISingleton::\string~ISingleton() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13598}13598 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13599}13599     \textcolor{keywordtype}{void} addSingleton(ISingleton* singleton ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13600}13600         getSingletons()-\/>push\_back( singleton );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13601}13601     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13602}13602     \textcolor{keywordtype}{void} cleanupSingletons() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13603}13603         \textcolor{keyword}{auto}\& singletons = getSingletons();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13604}13604         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} singleton : *singletons )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13605}13605             \textcolor{keyword}{delete} singleton;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13606}13606         \textcolor{keyword}{delete} singletons;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13607}13607         singletons = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13608}13608     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13609}13609 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13610}13610 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13611}13611 \textcolor{comment}{// end catch\_singletons.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13612}13612 \textcolor{comment}{// start catch\_startup\_exception\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13613}13613 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13614}13614 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13615}13615 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13616}13616 \textcolor{keywordtype}{void} StartupExceptionRegistry::add( std::exception\_ptr \textcolor{keyword}{const}\& exception ) \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13617}13617         \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13618}13618             m\_exceptions.push\_back(exception);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13619}13619         \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13620}13620             \textcolor{comment}{// If we run out of memory during start-\/up there's really not a lot more we can do about it}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13621}13621             std::terminate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13622}13622         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13623}13623     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13624}13624 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13625}13625     std::vector<std::exception\_ptr> \textcolor{keyword}{const}\& StartupExceptionRegistry::getExceptions() const noexcept \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13626}13626         \textcolor{keywordflow}{return} m\_exceptions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13627}13627     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13628}13628 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13629}13629 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13630}13630 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13631}13631 \textcolor{comment}{// end catch\_startup\_exception\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13632}13632 \textcolor{comment}{// start catch\_stream.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13633}13633 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13634}13634 \textcolor{preprocessor}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13635}13635 \textcolor{preprocessor}{\#include <iostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13636}13636 \textcolor{preprocessor}{\#include <fstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13637}13637 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13638}13638 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13639}13639 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13640}13640 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13641}13641 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13642}13642 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13643}13643     \mbox{\hyperlink{struct_catch_1_1_i_stream_a344a88d0e5fc1f727f5801c72b4a4e2a}{Catch::IStream::\string~IStream}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13644}13644 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13645}13645     \textcolor{keyword}{namespace }Detail \{ \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13646}13646         \textcolor{keyword}{template}<\textcolor{keyword}{typename} WriterF, std::\textcolor{keywordtype}{size\_t} bufferSize=256>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13647}13647         \textcolor{keyword}{class }StreamBufImpl : \textcolor{keyword}{public} std::streambuf \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13648}13648             \textcolor{keywordtype}{char} data[bufferSize];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13649}13649             WriterF m\_writer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13650}13650 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13651}13651         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13652}13652             StreamBufImpl() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13653}13653                 setp( data, data + \textcolor{keyword}{sizeof}(data) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13654}13654             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13655}13655 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13656}13656             \string~StreamBufImpl() noexcept \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13657}13657                 StreamBufImpl::sync();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13658}13658             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13659}13659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13660}13660         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13661}13661             \textcolor{keywordtype}{int} overflow( \textcolor{keywordtype}{int} c )\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13662}13662                 sync();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13663}13663 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13664}13664                 \textcolor{keywordflow}{if}( c != EOF ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13665}13665                     \textcolor{keywordflow}{if}( pbase() == epptr() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13666}13666                         m\_writer( std::string( 1, \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{char}\textcolor{keyword}{>}( c ) ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13667}13667                     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13668}13668                         sputc( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{char}\textcolor{keyword}{>}( c ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13669}13669                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13670}13670                 \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13671}13671             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13672}13672 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13673}13673             \textcolor{keywordtype}{int} sync()\textcolor{keyword}{ override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13674}13674                 \textcolor{keywordflow}{if}( pbase() != pptr() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13675}13675                     m\_writer( std::string( pbase(), \textcolor{keyword}{static\_cast<}std::string::size\_type\textcolor{keyword}{>}( pptr() -\/ pbase() ) ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13676}13676                     setp( pbase(), epptr() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13677}13677                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13678}13678                 \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13679}13679             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13680}13680         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13681}13681 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13683}13683 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13684}13684         \textcolor{keyword}{struct }OutputDebugWriter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13685}13685 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13686}13686             \textcolor{keywordtype}{void} operator()( std::string \textcolor{keyword}{const}\&str ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13687}13687                 writeToDebugConsole( str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13688}13688             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13689}13689         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13690}13690 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13692}13692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13693}13693         \textcolor{keyword}{class }FileStream : \textcolor{keyword}{public} IStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13694}13694             \textcolor{keyword}{mutable} std::ofstream m\_ofs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13695}13695         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13696}13696             FileStream( StringRef filename ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13697}13697                 m\_ofs.open( filename.c\_str() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13698}13698                 \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}( !m\_ofs.fail(), \textcolor{stringliteral}{"{}Unable to open file: '"{}} << filename << \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13699}13699             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13700}13700             \string~FileStream() \textcolor{keyword}{override} = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13701}13701         \textcolor{keyword}{public}: \textcolor{comment}{// IStream}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13702}13702             std::ostream\& stream()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13703}13703                 \textcolor{keywordflow}{return} m\_ofs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13704}13704             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13705}13705         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13706}13706 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13708}13708 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13709}13709         \textcolor{keyword}{class }CoutStream : \textcolor{keyword}{public} IStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13710}13710             \textcolor{keyword}{mutable} std::ostream m\_os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13711}13711         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13712}13712             \textcolor{comment}{// Store the streambuf from cout up-\/front because}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13713}13713             \textcolor{comment}{// cout may get redirected when running tests}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13714}13714             CoutStream() : m\_os( \mbox{\hyperlink{namespace_catch}{Catch}}::\mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{cout}}().rdbuf() ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13715}13715             \string~CoutStream() \textcolor{keyword}{override} = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13716}13716 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13717}13717         \textcolor{keyword}{public}: \textcolor{comment}{// IStream}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13718}13718             std::ostream\& stream()\textcolor{keyword}{ const override }\{ \textcolor{keywordflow}{return} m\_os; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13719}13719         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13720}13720 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13722}13722 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13723}13723         \textcolor{keyword}{class }DebugOutStream : \textcolor{keyword}{public} IStream \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13724}13724             std::unique\_ptr<StreamBufImpl<OutputDebugWriter>> m\_streamBuf;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13725}13725             \textcolor{keyword}{mutable} std::ostream m\_os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13726}13726         \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13727}13727             DebugOutStream()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13728}13728             :   m\_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13729}13729                 m\_os( m\_streamBuf.\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13730}13730             \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13731}13731 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13732}13732             \string~DebugOutStream() \textcolor{keyword}{override} = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13733}13733 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13734}13734         \textcolor{keyword}{public}: \textcolor{comment}{// IStream}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13735}13735             std::ostream\& stream()\textcolor{keyword}{ const override }\{ \textcolor{keywordflow}{return} m\_os; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13736}13736         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13737}13737 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13738}13738     \}\} \textcolor{comment}{// namespace anon::detail}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13739}13739 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13741}13741 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13742}13742     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_af6d27462573d60c30c51acf1c980e3ff}{makeStream}}( StringRef \textcolor{keyword}{const} \&filename ) -\/> IStream \textcolor{keyword}{const}* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13743}13743         \textcolor{keywordflow}{if}( filename.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13744}13744             \textcolor{keywordflow}{return} \textcolor{keyword}{new} Detail::CoutStream();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13745}13745         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( filename[0] == \textcolor{charliteral}{'\%'} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13746}13746             \textcolor{keywordflow}{if}( filename == \textcolor{stringliteral}{"{}\%debug"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13747}13747                 \textcolor{keywordflow}{return} \textcolor{keyword}{new} Detail::DebugOutStream();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13748}13748             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13749}13749                 \mbox{\hyperlink{catch2_2catch_8hpp_ad9884641eb178d2628cf3ad19c394f47}{CATCH\_ERROR}}( \textcolor{stringliteral}{"{}Unrecognised stream: '"{}} << filename << \textcolor{stringliteral}{"{}'"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13750}13750         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13751}13751         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13752}13752             \textcolor{keywordflow}{return} \textcolor{keyword}{new} Detail::FileStream( filename );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13753}13753     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13754}13754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13755}13755     \textcolor{comment}{// This class encapsulates the idea of a pool of ostringstreams that can be reused.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13756}13756     \textcolor{keyword}{struct }StringStreams \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13757}13757         std::vector<std::unique\_ptr<std::ostringstream>> m\_streams;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13758}13758         std::vector<std::size\_t> m\_unused;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13759}13759         std::ostringstream m\_referenceStream; \textcolor{comment}{// Used for copy state/ flags from}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13760}13760 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13761}13761         \textcolor{keyword}{auto} add() -\/> std::size\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13762}13762             \textcolor{keywordflow}{if}( m\_unused.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13763}13763                 m\_streams.push\_back( std::unique\_ptr<std::ostringstream>( \textcolor{keyword}{new} std::ostringstream ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13764}13764                 \textcolor{keywordflow}{return} m\_streams.size()-\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13765}13765             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13766}13766             \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13767}13767                 \textcolor{keyword}{auto} index = m\_unused.back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13768}13768                 m\_unused.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13769}13769                 \textcolor{keywordflow}{return} index;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13770}13770             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13771}13771         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13772}13772 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13773}13773         \textcolor{keywordtype}{void} release( std::size\_t index ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13774}13774             m\_streams[index]-\/>copyfmt( m\_referenceStream ); \textcolor{comment}{// Restore initial flags and other state}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13775}13775             m\_unused.push\_back(index);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13776}13776         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13777}13777     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13778}13778 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13779}13779     \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a9b3f8c52b0d2d63ffd825297a9c09781}{ReusableStringStream::ReusableStringStream}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13780}13780     :   m\_index( Singleton<StringStreams>::getMutable().add() ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13781}13781         m\_oss( Singleton<StringStreams>::getMutable().m\_streams[m\_index].\mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}}() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13782}13782     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13783}13783 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13784}13784     \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_aba9384e258a4db3178447b6a58414712}{ReusableStringStream::\string~ReusableStringStream}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13785}13785         \textcolor{keyword}{static\_cast<}std::ostringstream*\textcolor{keyword}{>}( m\_oss )-\/>\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}(\textcolor{stringliteral}{"{}"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13786}13786         m\_oss-\/>clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13787}13787         Singleton<StringStreams>::getMutable().release( m\_index );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13788}13788     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13789}13789 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13790}13790     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{ReusableStringStream::str}}() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13791}13791         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}std::ostringstream*\textcolor{keyword}{>}( m\_oss )-\/>\mbox{\hyperlink{class_catch_1_1_reusable_string_stream_a0e9ecf260b2a5d35f4886ef0d51f6270}{str}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13792}13792     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13793}13793 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13795}13795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13796}13796 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_NOSTDOUT }\textcolor{comment}{// If you \#define this you must implement these functions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13797}13797     std::ostream\& \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{cout}}() \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a0179d453617ba2296f2baa99a49e7264}{std::cout}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13798}13798     std::ostream\& \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{cerr}}() \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a54c1ce08041448d684ae8edc14162cd2}{std::cerr}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13799}13799     std::ostream\& \mbox{\hyperlink{namespace_catch_a1b2213f54e4d31a659db49827e81856b}{clog}}() \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a1b2213f54e4d31a659db49827e81856b}{std::clog}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13800}13800 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13801}13801 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13802}13802 \textcolor{comment}{// end catch\_stream.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13803}13803 \textcolor{comment}{// start catch\_string\_manip.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13804}13804 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13805}13805 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13806}13806 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13807}13807 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13808}13808 \textcolor{preprocessor}{\#include <cctype>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13809}13809 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13810}13810 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13811}13811 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13812}13812 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13813}13813     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13814}13814         \textcolor{keywordtype}{char} toLowerCh(\textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13815}13815             \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{char}\textcolor{keyword}{>}( \mbox{\hyperlink{namespacekblib_1_1detail_a959a09ccea4321a06ee14bf9ada9cb22}{std::tolower}}( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}\textcolor{keyword}{>}(c) ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13816}13816         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13817}13817     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13818}13818 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13819}13819     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& prefix ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13820}13820         \textcolor{keywordflow}{return} s.size() >= prefix.size() \&\& \mbox{\hyperlink{namespacekblib_afbec3807c1be9d0aea88c620d673823c}{std::equal}}(prefix.begin(), prefix.end(), s.begin());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13821}13821     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13822}13822     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( std::string \textcolor{keyword}{const}\& s, \textcolor{keywordtype}{char} prefix ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13823}13823         \textcolor{keywordflow}{return} !s.empty() \&\& s[0] == prefix;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13824}13824     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13825}13825     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& suffix ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13826}13826         \textcolor{keywordflow}{return} s.size() >= suffix.size() \&\& \mbox{\hyperlink{namespacekblib_afbec3807c1be9d0aea88c620d673823c}{std::equal}}(suffix.rbegin(), suffix.rend(), s.rbegin());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13827}13827     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13828}13828     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( std::string \textcolor{keyword}{const}\& s, \textcolor{keywordtype}{char} suffix ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13829}13829         \textcolor{keywordflow}{return} !s.empty() \&\& s[s.size()-\/1] == suffix;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13830}13830     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13831}13831     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_aa52974b0e426e7e2fbd725a900e9c36e}{contains}}( std::string \textcolor{keyword}{const}\& s, std::string \textcolor{keyword}{const}\& infix ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13832}13832         \textcolor{keywordflow}{return} s.find( infix ) != std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13833}13833     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13834}13834     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespace_catch_a0760dbe87d090a55a35414db57d272c4}{toLowerInPlace}}( std::string\& s ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13835}13835         \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}( s.begin(), s.end(), s.begin(), toLowerCh );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13836}13836     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13837}13837     std::string \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( std::string \textcolor{keyword}{const}\& s ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13838}13838         std::string lc = s;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13839}13839         \mbox{\hyperlink{namespace_catch_a0760dbe87d090a55a35414db57d272c4}{toLowerInPlace}}( lc );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13840}13840         \textcolor{keywordflow}{return} lc;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13841}13841     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13842}13842     std::string \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( std::string \textcolor{keyword}{const}\& str ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13843}13843         \textcolor{keyword}{static} \textcolor{keywordtype}{char} \textcolor{keyword}{const}* whitespaceChars = \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)r\(\backslash\)t "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13844}13844         std::string::size\_type start = str.find\_first\_not\_of( whitespaceChars );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13845}13845         std::string::size\_type end = str.find\_last\_not\_of( whitespaceChars );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13846}13846 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13847}13847         \textcolor{keywordflow}{return} start != std::string::npos ? str.substr( start, 1+end-\/start ) : std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13848}13848     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13849}13849 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13850}13850     StringRef \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(StringRef ref) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13851}13851         \textcolor{keyword}{const} \textcolor{keyword}{auto} is\_ws = [](\textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13852}13852             \textcolor{keywordflow}{return} c == \textcolor{charliteral}{' '} || c == \textcolor{charliteral}{'\(\backslash\)t'} || c == \textcolor{charliteral}{'\(\backslash\)n'} || c == \textcolor{charliteral}{'\(\backslash\)r'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13853}13853         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13854}13854         \textcolor{keywordtype}{size\_t} real\_begin = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13855}13855         \textcolor{keywordflow}{while} (real\_begin < ref.size() \&\& is\_ws(ref[real\_begin])) \{ ++real\_begin; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13856}13856         \textcolor{keywordtype}{size\_t} real\_end = ref.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13857}13857         \textcolor{keywordflow}{while} (real\_end > real\_begin \&\& is\_ws(ref[real\_end -\/ 1])) \{ -\/-\/real\_end; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13858}13858 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13859}13859         \textcolor{keywordflow}{return} ref.substr(real\_begin, real\_end -\/ real\_begin);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13860}13860     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13861}13861 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13862}13862     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_afe4e6770da547e43e9e4eeaa05f946ea}{replaceInPlace}}( std::string\& str, std::string \textcolor{keyword}{const}\& replaceThis, std::string \textcolor{keyword}{const}\& withThis ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13863}13863         \textcolor{keywordtype}{bool} replaced = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13864}13864         std::size\_t i = str.find( replaceThis );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13865}13865         \textcolor{keywordflow}{while}( i != std::string::npos ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13866}13866             replaced = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13867}13867             str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13868}13868             \textcolor{keywordflow}{if}( i < str.size()-\/withThis.size() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13869}13869                 i = str.find( replaceThis, i+withThis.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13870}13870             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13871}13871                 i = std::string::npos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13872}13872         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13873}13873         \textcolor{keywordflow}{return} replaced;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13874}13874     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13875}13875 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13876}13876     std::vector<StringRef> \mbox{\hyperlink{namespace_catch_a678e3c779388970bb3ec5802245f93d7}{splitStringRef}}( StringRef str, \textcolor{keywordtype}{char} delimiter ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13877}13877         std::vector<StringRef> subStrings;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13878}13878         std::size\_t start = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13879}13879         \textcolor{keywordflow}{for}(std::size\_t pos = 0; pos < str.size(); ++pos ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13880}13880             \textcolor{keywordflow}{if}( str[pos] == delimiter ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13881}13881                 \textcolor{keywordflow}{if}( pos -\/ start > 1 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13882}13882                     subStrings.push\_back( str.substr( start, pos-\/start ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13883}13883                 start = pos+1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13884}13884             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13885}13885         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13886}13886         \textcolor{keywordflow}{if}( start < str.size() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13887}13887             subStrings.push\_back( str.substr( start, str.size()-\/start ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13888}13888         \textcolor{keywordflow}{return} subStrings;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13889}13889     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13890}13890 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13891}13891     pluralise::pluralise( std::size\_t count, std::string \textcolor{keyword}{const}\& label )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13892}13892     :   m\_count( count ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13893}13893         m\_label( label )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13894}13894     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13895}13895 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13896}13896     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, pluralise \textcolor{keyword}{const}\& pluraliser ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13897}13897         os << pluraliser.m\_count << \textcolor{charliteral}{' '} << pluraliser.m\_label;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13898}13898         \textcolor{keywordflow}{if}( pluraliser.m\_count != 1 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13899}13899             os << \textcolor{charliteral}{'s'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13900}13900         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13901}13901     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13902}13902 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13903}13903 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13904}13904 \textcolor{comment}{// end catch\_string\_manip.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13905}13905 \textcolor{comment}{// start catch\_stringref.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13906}13906 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13907}13907 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13908}13908 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13909}13909 \textcolor{preprocessor}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13910}13910 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13911}13911 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13912}13912 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13913}13913     \mbox{\hyperlink{class_catch_1_1_string_ref_a611907867225695d38198c058758c92d}{StringRef::StringRef}}( \textcolor{keywordtype}{char} \textcolor{keyword}{const}* rawChars ) noexcept}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13914}13914     : StringRef( rawChars, \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{class_catch_1_1_string_ref_a06b4db8fc82b197004291cf370b2ba7c}{StringRef::size\_type}}\textcolor{keyword}{>}(std::strlen(rawChars) ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13915}13915     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13916}13916 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13917}13917     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_a1669cb2765e820ca258159676cbd82a5}{StringRef::c\_str}}() const -\/> \textcolor{keywordtype}{char} const* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13918}13918         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}(\mbox{\hyperlink{class_catch_1_1_string_ref_a646e58f5f4e1f5e82cfba06d9fd5d016}{isNullTerminated}}(), \textcolor{stringliteral}{"{}Called StringRef::c\_str() on a non-\/null-\/terminated instance"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13919}13919         \textcolor{keywordflow}{return} m\_start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13920}13920     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13921}13921     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_ab0f85edde9f97153fc758fac3bb14507}{StringRef::data}}() const noexcept -\/> \textcolor{keywordtype}{char} const* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13922}13922         \textcolor{keywordflow}{return} m\_start;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13923}13923     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13924}13924 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13925}13925     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_a594bc3e10ffad77df92f7d1a4c99d7ff}{StringRef::substr}}( size\_type start, size\_type \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} -\/> StringRef \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13926}13926         \textcolor{keywordflow}{if} (start < m\_size) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13927}13927             \textcolor{keywordflow}{return} StringRef(m\_start + start, (\mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std::min}})(m\_size -\/ start, \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13928}13928         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13929}13929             \textcolor{keywordflow}{return} StringRef();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13930}13930         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13931}13931     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13932}13932     \textcolor{keyword}{auto} \mbox{\hyperlink{class_catch_1_1_string_ref_aabb30149ab961187e4b3ff3394bf6e73}{StringRef::operator == }}( StringRef \textcolor{keyword}{const}\& other ) \textcolor{keyword}{const} \textcolor{keyword}{noexcept} -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13933}13933         \textcolor{keywordflow}{return} m\_size == other.m\_size}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13934}13934             \&\& (std::memcmp( m\_start, other.m\_start, m\_size ) == 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13935}13935     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13936}13936 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13937}13937     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, StringRef \textcolor{keyword}{const}\& str ) -\/> std::ostream\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13938}13938         \textcolor{keywordflow}{return} os.write(str.data(), str.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13939}13939     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13940}13940 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13941}13941     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a61711bc909f8dc76d8b3deccc1440f46}{operator+=}}( std::string\& lhs, StringRef \textcolor{keyword}{const}\& rhs ) -\/> std::string\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13942}13942         lhs.append(rhs.data(), rhs.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13943}13943         \textcolor{keywordflow}{return} lhs;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13944}13944     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13945}13945 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13946}13946 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13947}13947 \textcolor{comment}{// end catch\_stringref.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13948}13948 \textcolor{comment}{// start catch\_tag\_alias.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13949}13949 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13950}13950 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13951}13951     TagAlias::TagAlias(std::string \textcolor{keyword}{const} \& \_tag, SourceLineInfo \_lineInfo): \mbox{\hyperlink{structtag}{tag}}(\_tag), lineInfo(\_lineInfo) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13952}13952 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13953}13953 \textcolor{comment}{// end catch\_tag\_alias.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13954}13954 \textcolor{comment}{// start catch\_tag\_alias\_autoregistrar.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13955}13955 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13956}13956 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13957}13957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13958}13958     \mbox{\hyperlink{struct_catch_1_1_registrar_for_tag_aliases_ae4e45830e4763bcd65d55d8db9167b69}{RegistrarForTagAliases::RegistrarForTagAliases}}(\textcolor{keywordtype}{char} \textcolor{keyword}{const}* \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const}* \mbox{\hyperlink{structtag}{tag}}, SourceLineInfo \textcolor{keyword}{const}\& lineInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13959}13959         \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13960}13960             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_abf2e386b6f94f615719ada711adbf822}{registerTagAlias}}(\mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \mbox{\hyperlink{structtag}{tag}}, lineInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13961}13961         \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13962}13962             \textcolor{comment}{// Do not throw when constructing global objects, instead register the exception to be processed later}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13963}13963             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a72a7d5386851ac3200f8da794a009c86}{registerStartupException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13964}13964         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13965}13965     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13966}13966 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13967}13967 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13968}13968 \textcolor{comment}{// end catch\_tag\_alias\_autoregistrar.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13969}13969 \textcolor{comment}{// start catch\_tag\_alias\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13970}13970 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13971}13971 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13972}13972 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13973}13973 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13974}13974 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13975}13975     TagAliasRegistry::\string~TagAliasRegistry() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13976}13976 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13977}13977     TagAlias \textcolor{keyword}{const}* \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{TagAliasRegistry::find}}( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13978}13978         \textcolor{keyword}{auto} it = m\_registry.find( \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13979}13979         \textcolor{keywordflow}{if}( it != m\_registry.end() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13980}13980             \textcolor{keywordflow}{return} \&(it-\/>second);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13981}13981         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13982}13982             \textcolor{keywordflow}{return} \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13983}13983     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13984}13984 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13985}13985     std::string TagAliasRegistry::expandAliases( std::string \textcolor{keyword}{const}\& unexpandedTestSpec )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13986}13986         std::string expandedTestSpec = unexpandedTestSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13987}13987         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& registryKvp : m\_registry ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13988}13988             std::size\_t pos = expandedTestSpec.find( registryKvp.first );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13989}13989             \textcolor{keywordflow}{if}( pos != std::string::npos ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13990}13990                 expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13991}13991                                     registryKvp.second.\mbox{\hyperlink{structtag}{tag}} +}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13992}13992                                     expandedTestSpec.substr( pos + registryKvp.first.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13993}13993             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13994}13994         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13995}13995         \textcolor{keywordflow}{return} expandedTestSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13996}13996     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13997}13997 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13998}13998     \textcolor{keywordtype}{void} TagAliasRegistry::add( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, SourceLineInfo \textcolor{keyword}{const}\& lineInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l13999}13999         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}(\mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \textcolor{stringliteral}{"{}[@"{}}) \&\& \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}(\mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, \textcolor{charliteral}{']'}),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14000}14000                       \textcolor{stringliteral}{"{}error: tag alias, '"{}} << \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} << \textcolor{stringliteral}{"{}' is not of the form [@alias name].\(\backslash\)n"{}} << lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14001}14001 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14002}14002         \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}( m\_registry.insert(std::make\_pair(\mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}}, TagAlias(\mbox{\hyperlink{structtag}{tag}}, lineInfo))).second,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14003}14003                       \textcolor{stringliteral}{"{}error: tag alias, '"{}} << \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} << \textcolor{stringliteral}{"{}' already registered.\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14004}14004                       << \textcolor{stringliteral}{"{}\(\backslash\)tFirst seen at: "{}} << \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{find}}(\mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}})-\/>lineInfo << \textcolor{stringliteral}{"{}\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14005}14005                       << \textcolor{stringliteral}{"{}\(\backslash\)tRedefined at: "{}} << lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14006}14006     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14007}14007 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14008}14008     ITagAliasRegistry::\string~ITagAliasRegistry() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14009}14009 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14010}14010     ITagAliasRegistry \textcolor{keyword}{const}\& \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{ITagAliasRegistry::get}}() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14011}14011         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3fb24564dba3f679dfa58792f1e21708}{getTagAliasRegistry}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14012}14012     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14013}14013 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14014}14014 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14015}14015 \textcolor{comment}{// end catch\_tag\_alias\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14016}14016 \textcolor{comment}{// start catch\_test\_case\_info.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14017}14017 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14018}14018 \textcolor{preprocessor}{\#include <cctype>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14019}14019 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14020}14020 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14021}14021 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14022}14022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14023}14023 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14024}14024 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14025}14025     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14026}14026         \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{TestCaseInfo::SpecialProperties}} parseSpecialTag( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14027}14027             \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( \mbox{\hyperlink{structtag}{tag}}, \textcolor{charliteral}{'.'} ) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14028}14028                 \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!hide"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14029}14029                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacac27cbd760db71505824dd7719290a969}{TestCaseInfo::IsHidden}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14030}14030             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!throws"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14031}14031                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca3b622b3aff2ffed960f471864af7e149}{TestCaseInfo::Throws}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14032}14032             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!shouldfail"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14033}14033                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacaa4451fac45fcdee64153db50ea61891b}{TestCaseInfo::ShouldFail}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14034}14034             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!mayfail"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14035}14035                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca2d04dc77b313ffb4e4b895402b3cde29}{TestCaseInfo::MayFail}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14036}14036             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!nonportable"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14037}14037                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacacc2f8f941b5a8d96c72624a68b638b95}{TestCaseInfo::NonPortable}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14038}14038             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( \mbox{\hyperlink{structtag}{tag}} == \textcolor{stringliteral}{"{}!benchmark"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14039}14039                 \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{TestCaseInfo::SpecialProperties}}\textcolor{keyword}{>}( \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacae6ba6dbc74514cd4948a0e25a0fbc385}{TestCaseInfo::Benchmark}} | \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacac27cbd760db71505824dd7719290a969}{TestCaseInfo::IsHidden}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14040}14040             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14041}14041                 \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca6e805f98eae8301ae5526a275df490fb}{TestCaseInfo::None}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14042}14042         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14043}14043         \textcolor{keywordtype}{bool} isReservedTag( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14044}14044             \textcolor{keywordflow}{return} parseSpecialTag( \mbox{\hyperlink{structtag}{tag}} ) == \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca6e805f98eae8301ae5526a275df490fb}{TestCaseInfo::None}} \&\& \mbox{\hyperlink{structtag}{tag}}.size() > 0 \&\& !std::isalnum( \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}\textcolor{keyword}{>}(\mbox{\hyperlink{structtag}{tag}}[0]) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14045}14045         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14046}14046         \textcolor{keywordtype}{void} enforceNotReservedTag( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, SourceLineInfo \textcolor{keyword}{const}\& \_lineInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14047}14047             \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}( !isReservedTag(\mbox{\hyperlink{structtag}{tag}}),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14048}14048                           \textcolor{stringliteral}{"{}Tag name: ["{}} << \mbox{\hyperlink{structtag}{tag}} << \textcolor{stringliteral}{"{}] is not allowed.\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14049}14049                           << \textcolor{stringliteral}{"{}Tag names starting with non alphanumeric characters are reserved\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14050}14050                           << \_lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14051}14051         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14052}14052     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14053}14053 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14054}14054     TestCase \mbox{\hyperlink{namespace_catch_a5e63df38d06a43d4cee17454e724b5c0}{makeTestCase}}(  ITestInvoker* \_testCase,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14055}14055                             std::string \textcolor{keyword}{const}\& \_className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14056}14056                             NameAndTags \textcolor{keyword}{const}\& nameAndTags,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14057}14057                             SourceLineInfo \textcolor{keyword}{const}\& \_lineInfo )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14058}14058     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14059}14059         \textcolor{keywordtype}{bool} isHidden = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14060}14060 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14061}14061         \textcolor{comment}{// Parse out tags}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14062}14062         std::vector<std::string> tags;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14063}14063         std::string desc, \mbox{\hyperlink{structtag}{tag}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14064}14064         \textcolor{keywordtype}{bool} inTag = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14065}14065         \textcolor{keywordflow}{for} (\textcolor{keywordtype}{char} c : nameAndTags.tags) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14066}14066             \textcolor{keywordflow}{if}( !inTag ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14067}14067                 \textcolor{keywordflow}{if}( c == \textcolor{charliteral}{'['} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14068}14068                     inTag = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14069}14069                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14070}14070                     desc += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14071}14071             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14072}14072             \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14073}14073                 \textcolor{keywordflow}{if}( c == \textcolor{charliteral}{']'} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14074}14074                     \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{TestCaseInfo::SpecialProperties}} prop = parseSpecialTag( \mbox{\hyperlink{structtag}{tag}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14075}14075                     \textcolor{keywordflow}{if}( ( prop \& \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacac27cbd760db71505824dd7719290a969}{TestCaseInfo::IsHidden}} ) != 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14076}14076                         isHidden = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14077}14077                     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( prop == \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca6e805f98eae8301ae5526a275df490fb}{TestCaseInfo::None}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14078}14078                         enforceNotReservedTag( \mbox{\hyperlink{structtag}{tag}}, \_lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14079}14079 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14080}14080                     \textcolor{comment}{// Merged hide tags like `[.approvals]` should be added as}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14081}14081                     \textcolor{comment}{// `[.][approvals]`. The `[.]` is added at later point, so}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14082}14082                     \textcolor{comment}{// we only strip the prefix}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14083}14083                     \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}(\mbox{\hyperlink{structtag}{tag}}, \textcolor{charliteral}{'.'}) \&\& \mbox{\hyperlink{structtag}{tag}}.size() > 1) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14084}14084                         \mbox{\hyperlink{structtag}{tag}}.erase(0, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14085}14085                     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14086}14086                     tags.push\_back( \mbox{\hyperlink{structtag}{tag}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14087}14087                     \mbox{\hyperlink{structtag}{tag}}.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14088}14088                     inTag = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14089}14089                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14090}14090                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14091}14091                     \mbox{\hyperlink{structtag}{tag}} += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14092}14092             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14093}14093         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14094}14094         \textcolor{keywordflow}{if}( isHidden ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14095}14095             \textcolor{comment}{// Add all "{}hidden"{} tags to make them behave identically}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14096}14096             tags.insert( tags.end(), \{ \textcolor{stringliteral}{"{}."{}}, \textcolor{stringliteral}{"{}!hide"{}} \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14097}14097         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14098}14098 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14099}14099         TestCaseInfo info( \textcolor{keyword}{static\_cast<}std::string\textcolor{keyword}{>}(nameAndTags.name), \_className, desc, tags, \_lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14100}14100         \textcolor{keywordflow}{return} TestCase( \_testCase, std::move(info) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14101}14101     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14102}14102 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14103}14103     \textcolor{keywordtype}{void} setTags( TestCaseInfo\& testCaseInfo, std::vector<std::string> tags ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14104}14104         \mbox{\hyperlink{namespacekblib_1_1detail__sort_a3b873e1b1c2c3a4865638d2c904c4c1d}{std::sort}}(begin(tags), end(tags));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14105}14105         tags.erase(std::unique(begin(tags), end(tags)), end(tags));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14106}14106         testCaseInfo.lcaseTags.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14107}14107 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14108}14108         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}} : tags ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14109}14109             std::string lcaseTag = \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( \mbox{\hyperlink{structtag}{tag}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14110}14110             testCaseInfo.properties = \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eac}{TestCaseInfo::SpecialProperties}}\textcolor{keyword}{>}( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14111}14111             testCaseInfo.lcaseTags.push\_back( lcaseTag );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14112}14112         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14113}14113         testCaseInfo.tags = std::move(tags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14114}14114     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14115}14115 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14116}14116     \mbox{\hyperlink{struct_catch_1_1_test_case_info_ad1a6b08b5a83d1c5eb4596b727b5305f}{TestCaseInfo::TestCaseInfo}}( std::string \textcolor{keyword}{const}\& \_name,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14117}14117                                 std::string \textcolor{keyword}{const}\& \_className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14118}14118                                 std::string \textcolor{keyword}{const}\& \_description,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14119}14119                                 std::vector<std::string> \textcolor{keyword}{const}\& \_tags,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14120}14120                                 SourceLineInfo \textcolor{keyword}{const}\& \_lineInfo )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14121}14121     :   name( \_name ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14122}14122         className( \_className ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14123}14123         description( \_description ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14124}14124         lineInfo( \_lineInfo ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14125}14125         properties( None )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14126}14126     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14127}14127         setTags( *\textcolor{keyword}{this}, \_tags );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14128}14128     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14129}14129 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14130}14130     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a934b1a0952700743e99d62ec1731a2e2}{TestCaseInfo::isHidden}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14131}14131         \textcolor{keywordflow}{return} ( \mbox{\hyperlink{struct_catch_1_1_test_case_info_afc1e84bd7a2e180895a06d9131302af0}{properties}} \& \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacac27cbd760db71505824dd7719290a969}{IsHidden}} ) != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14132}14132     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14133}14133     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_afc70d4379a2070cc22b693ffe3932c1a}{TestCaseInfo::throws}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14134}14134         \textcolor{keywordflow}{return} ( \mbox{\hyperlink{struct_catch_1_1_test_case_info_afc1e84bd7a2e180895a06d9131302af0}{properties}} \& \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca3b622b3aff2ffed960f471864af7e149}{Throws}} ) != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14135}14135     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14136}14136     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a5f37291295e3a6de2dd85324c941edaf}{TestCaseInfo::okToFail}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14137}14137         \textcolor{keywordflow}{return} ( \mbox{\hyperlink{struct_catch_1_1_test_case_info_afc1e84bd7a2e180895a06d9131302af0}{properties}} \& (\mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacaa4451fac45fcdee64153db50ea61891b}{ShouldFail}} | \mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eaca2d04dc77b313ffb4e4b895402b3cde29}{MayFail}} ) ) != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14138}14138     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14139}14139     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_test_case_info_abe33d81233230cdae8afa714688e905b}{TestCaseInfo::expectedToFail}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14140}14140         \textcolor{keywordflow}{return} ( \mbox{\hyperlink{struct_catch_1_1_test_case_info_afc1e84bd7a2e180895a06d9131302af0}{properties}} \& (\mbox{\hyperlink{struct_catch_1_1_test_case_info_a39b232f74b4a7a6f2183b96759027eacaa4451fac45fcdee64153db50ea61891b}{ShouldFail}} ) ) != 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14141}14141     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14142}14142 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14143}14143     std::string \mbox{\hyperlink{struct_catch_1_1_test_case_info_a17506de67fb18e27511c17f8a81119d8}{TestCaseInfo::tagsAsString}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14144}14144         std::string ret;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14145}14145         \textcolor{comment}{// '[' and ']' per tag}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14146}14146         std::size\_t full\_size = 2 * \mbox{\hyperlink{struct_catch_1_1_test_case_info_ae710376996aa2cc50787e23c5184d8b8}{tags}}.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14147}14147         \textcolor{keywordflow}{for} (\textcolor{keyword}{const} \textcolor{keyword}{auto}\& \mbox{\hyperlink{structtag}{tag}} : \mbox{\hyperlink{struct_catch_1_1_test_case_info_ae710376996aa2cc50787e23c5184d8b8}{tags}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14148}14148             full\_size += \mbox{\hyperlink{structtag}{tag}}.\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14149}14149         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14150}14150         ret.reserve(full\_size);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14151}14151         \textcolor{keywordflow}{for} (\textcolor{keyword}{const} \textcolor{keyword}{auto}\& \mbox{\hyperlink{structtag}{tag}} : \mbox{\hyperlink{struct_catch_1_1_test_case_info_ae710376996aa2cc50787e23c5184d8b8}{tags}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14152}14152             ret.push\_back(\textcolor{charliteral}{'['});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14153}14153             ret.append(\mbox{\hyperlink{structtag}{tag}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14154}14154             ret.push\_back(\textcolor{charliteral}{']'});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14155}14155         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14156}14156 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14157}14157         \textcolor{keywordflow}{return} ret;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14158}14158     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14159}14159 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14160}14160     \mbox{\hyperlink{class_catch_1_1_test_case_aae5709fc1cb68e19ab0ac27e1ffd6a76}{TestCase::TestCase}}( ITestInvoker* testCase, TestCaseInfo\&\& info ) : TestCaseInfo( \mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}(info) ), \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}}( testCase ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14161}14161 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14162}14162     TestCase \mbox{\hyperlink{class_catch_1_1_test_case_a0812e8a216d09b087d5874687009f0d6}{TestCase::withName}}( std::string \textcolor{keyword}{const}\& \_newName )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14163}14163         \mbox{\hyperlink{class_catch_1_1_test_case_aae5709fc1cb68e19ab0ac27e1ffd6a76}{TestCase}} other( *\textcolor{keyword}{this} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14164}14164         other.name = \_newName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14165}14165         \textcolor{keywordflow}{return} other;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14166}14166     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14167}14167 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14168}14168     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_catch_1_1_test_case_a26f346c8446dded0562fe3818ae71651}{TestCase::invoke}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14169}14169         test-\/>invoke();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14170}14170     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14171}14171 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14172}14172     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_test_case_a5456d03a90f75292835c158f3a3374a1}{TestCase::operator == }}( TestCase \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14173}14173         \textcolor{keywordflow}{return}  test.get() == other.test.get() \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14174}14174                 \mbox{\hyperlink{struct_catch_1_1_test_case_info_a463794e2f5cfead307c93efd134ade36}{name}} == other.name \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14175}14175                 \mbox{\hyperlink{struct_catch_1_1_test_case_info_a1a5e0825132a38d091defdebbf2f8ce9}{className}} == other.className;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14176}14176     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14177}14177 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14178}14178     \textcolor{keywordtype}{bool} \mbox{\hyperlink{class_catch_1_1_test_case_a030e4b9282e9b32e08c8bd5e5cd6fa98}{TestCase::operator < }}( TestCase \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14179}14179         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_test_case_info_a463794e2f5cfead307c93efd134ade36}{name}} < other.name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14180}14180     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14181}14181 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14182}14182     TestCaseInfo \textcolor{keyword}{const}\& \mbox{\hyperlink{class_catch_1_1_test_case_a804d0a6a5dc92b219e724f1390c25c7f}{TestCase::getTestCaseInfo}}()\textcolor{keyword}{ const}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14183}14183 \textcolor{keyword}{    }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14184}14184         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14185}14185     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14186}14186 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14187}14187 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14188}14188 \textcolor{comment}{// end catch\_test\_case\_info.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14189}14189 \textcolor{comment}{// start catch\_test\_case\_registry\_impl.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14190}14190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14191}14191 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14192}14192 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14193}14193 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14194}14194 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14195}14195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14196}14196     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14197}14197         \textcolor{keyword}{struct }TestHasher \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14198}14198             \textcolor{keyword}{using }hash\_t = uint64\_t;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14199}14199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14200}14200             \textcolor{keyword}{explicit} TestHasher( hash\_t hashSuffix ):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14201}14201                 m\_hashSuffix\{ hashSuffix \} \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14202}14202 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14203}14203             uint32\_t operator()( TestCase \textcolor{keyword}{const}\& t )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14204}14204                 \textcolor{comment}{// FNV-\/1a hash with multiplication fold.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14205}14205                 \textcolor{keyword}{const} hash\_t prime = 1099511628211u;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14206}14206                 hash\_t hash = 14695981039346656037u;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14207}14207                 \textcolor{keywordflow}{for} ( \textcolor{keyword}{const} \textcolor{keywordtype}{char} c : t.name ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14208}14208                     hash \string^= c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14209}14209                     hash *= prime;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14210}14210                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14211}14211                 hash \string^= m\_hashSuffix;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14212}14212                 hash *= prime;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14213}14213                 \textcolor{keyword}{const} uint32\_t low\{ \textcolor{keyword}{static\_cast<}uint32\_t\textcolor{keyword}{>}( hash ) \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14214}14214                 \textcolor{keyword}{const} uint32\_t high\{ \textcolor{keyword}{static\_cast<}uint32\_t\textcolor{keyword}{>}( hash >> 32 ) \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14215}14215                 \textcolor{keywordflow}{return} low * high;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14216}14216             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14217}14217 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14218}14218         \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14219}14219             hash\_t m\_hashSuffix;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14220}14220         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14221}14221     \} \textcolor{comment}{// end unnamed namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14222}14222 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14223}14223     std::vector<TestCase> sortTests( IConfig \textcolor{keyword}{const}\& config, std::vector<TestCase> \textcolor{keyword}{const}\& unsortedTestCases ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14224}14224         \textcolor{keywordflow}{switch}( config.runOrder() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14225}14225             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5da2d560e5cdf23ef60d728a816e9b01c61}{RunTests::InDeclarationOrder}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14226}14226                 \textcolor{comment}{// already in declaration order}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14227}14227                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14228}14228 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14229}14229             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5dac438de570b4c707baf342d6ac0bd1dea}{RunTests::InLexicographicalOrder}}: \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14230}14230                 std::vector<TestCase> sorted = unsortedTestCases;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14231}14231                 \mbox{\hyperlink{namespacekblib_1_1detail__sort_a3b873e1b1c2c3a4865638d2c904c4c1d}{std::sort}}( sorted.begin(), sorted.end() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14232}14232                 \textcolor{keywordflow}{return} sorted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14233}14233             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14234}14234 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14235}14235             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_run_tests_ab56bd851b1dd085869992d1a9d73dc5dab754fd982840d872056f23bf139cfc27}{RunTests::InRandomOrder}}: \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14236}14236                 seedRng( config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14237}14237                 TestHasher h\{ config.rngSeed() \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14238}14238 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14239}14239                 \textcolor{keyword}{using }hashedTest = std::pair<TestHasher::hash\_t, TestCase const*>;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14240}14240                 std::vector<hashedTest> indexed\_tests;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14241}14241                 indexed\_tests.reserve( unsortedTestCases.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14242}14242 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14243}14243                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCase : unsortedTestCases) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14244}14244                     indexed\_tests.emplace\_back(h(testCase), \&testCase);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14245}14245                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14246}14246 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14247}14247                 \mbox{\hyperlink{namespacekblib_1_1detail__sort_a3b873e1b1c2c3a4865638d2c904c4c1d}{std::sort}}(indexed\_tests.begin(), indexed\_tests.end(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14248}14248                           [](hashedTest \textcolor{keyword}{const}\& lhs, hashedTest \textcolor{keyword}{const}\& rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14249}14249                           if (lhs.first == rhs.first) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14250}14250                               return lhs.second-\/>name < rhs.second-\/>name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14251}14251                           \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14252}14252                           \textcolor{keywordflow}{return} lhs.first < rhs.first;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14253}14253                 \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14254}14254 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14255}14255                 std::vector<TestCase> sorted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14256}14256                 sorted.reserve( indexed\_tests.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14257}14257 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14258}14258                 \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& hashed : indexed\_tests) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14259}14259                     sorted.emplace\_back(*hashed.second);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14260}14260                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14261}14261 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14262}14262                 \textcolor{keywordflow}{return} sorted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14263}14263             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14264}14264         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14265}14265         \textcolor{keywordflow}{return} unsortedTestCases;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14266}14266     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14267}14267 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14268}14268     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_af3e820574c7a0b38d71328c5bd54b0e0}{isThrowSafe}}( TestCase \textcolor{keyword}{const}\& testCase, IConfig \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14269}14269         \textcolor{keywordflow}{return} !testCase.throws() || config.allowThrows();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14270}14270     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14271}14271 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14272}14272     \textcolor{keywordtype}{bool} \mbox{\hyperlink{namespace_catch_aadef80fbc6bc84589777a462770cef49}{matchTest}}( TestCase \textcolor{keyword}{const}\& testCase, TestSpec \textcolor{keyword}{const}\& testSpec, IConfig \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14273}14273         \textcolor{keywordflow}{return} testSpec.matches( testCase ) \&\& \mbox{\hyperlink{namespace_catch_af3e820574c7a0b38d71328c5bd54b0e0}{isThrowSafe}}( testCase, config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14274}14274     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14275}14275 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14276}14276     \textcolor{keywordtype}{void} enforceNoDuplicateTestCases( std::vector<TestCase> \textcolor{keyword}{const}\& functions ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14277}14277         std::set<TestCase> seenFunctions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14278}14278         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& function : functions ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14279}14279             \textcolor{keyword}{auto} prev = seenFunctions.insert( function );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14280}14280             \mbox{\hyperlink{catch2_2catch_8hpp_aba552c917b9ac8604f50a914a745e974}{CATCH\_ENFORCE}}( prev.second,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14281}14281                     \textcolor{stringliteral}{"{}error: TEST\_CASE( \(\backslash\)"{}"{}} << function.name << \textcolor{stringliteral}{"{}\(\backslash\)"{} ) already defined.\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14282}14282                     << \textcolor{stringliteral}{"{}\(\backslash\)tFirst seen at "{}} << prev.first-\/>getTestCaseInfo().lineInfo << \textcolor{stringliteral}{"{}\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14283}14283                     << \textcolor{stringliteral}{"{}\(\backslash\)tRedefined at "{}} << function.getTestCaseInfo().lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14284}14284         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14285}14285     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14286}14286 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14287}14287     std::vector<TestCase> \mbox{\hyperlink{namespace_catch_a105d5acdec8a6b401e12a592557c9dd1}{filterTests}}( std::vector<TestCase> \textcolor{keyword}{const}\& testCases, TestSpec \textcolor{keyword}{const}\& testSpec, IConfig \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14288}14288         std::vector<TestCase> filtered;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14289}14289         filtered.reserve( testCases.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14290}14290         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& testCase : testCases) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14291}14291             \textcolor{keywordflow}{if} ((!testSpec.hasFilters() \&\& !testCase.isHidden()) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14292}14292                 (testSpec.hasFilters() \&\& \mbox{\hyperlink{namespace_catch_aadef80fbc6bc84589777a462770cef49}{matchTest}}(testCase, testSpec, config))) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14293}14293                 filtered.push\_back(testCase);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14294}14294             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14295}14295         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14296}14296         \textcolor{keywordflow}{return} filtered;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14297}14297     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14298}14298     std::vector<TestCase> \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_a97039bab95e97f059410f67425f1f2da}{getAllTestCasesSorted}}( IConfig \textcolor{keyword}{const}\& config ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14299}14299         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a5d328566cb8da87b48f1fac3f319ac7a}{getRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_registry_hub_a3016c8766e42bae7b021f02d1cbd356b}{getTestCaseRegistry}}().\mbox{\hyperlink{struct_catch_1_1_i_test_case_registry_a0aae66ca6ec1b6265a799134d6935127}{getAllTestsSorted}}( config );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14300}14300     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14301}14301 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14302}14302     \textcolor{keywordtype}{void} TestRegistry::registerTest( TestCase \textcolor{keyword}{const}\& testCase ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14303}14303         std::string name = testCase.getTestCaseInfo().name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14304}14304         \textcolor{keywordflow}{if}( name.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14305}14305             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14306}14306             rss << \textcolor{stringliteral}{"{}Anonymous test case "{}} << ++m\_unnamedCount;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14307}14307             \textcolor{keywordflow}{return} registerTest( testCase.withName( rss.str() ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14308}14308         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14309}14309         m\_functions.push\_back( testCase );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14310}14310     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14311}14311 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14312}14312     std::vector<TestCase> \textcolor{keyword}{const}\& TestRegistry::getAllTests()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14313}14313         \textcolor{keywordflow}{return} m\_functions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14314}14314     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14315}14315     std::vector<TestCase> \textcolor{keyword}{const}\& TestRegistry::getAllTestsSorted( IConfig \textcolor{keyword}{const}\& config )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14316}14316         \textcolor{keywordflow}{if}( m\_sortedFunctions.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14317}14317             enforceNoDuplicateTestCases( m\_functions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14318}14318 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14319}14319         \textcolor{keywordflow}{if}(  m\_currentSortOrder != config.runOrder() || m\_sortedFunctions.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14320}14320             m\_sortedFunctions = sortTests( config, m\_functions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14321}14321             m\_currentSortOrder = config.runOrder();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14322}14322         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14323}14323         \textcolor{keywordflow}{return} m\_sortedFunctions;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14324}14324     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14325}14325 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14327}14327     TestInvokerAsFunction::TestInvokerAsFunction( \textcolor{keywordtype}{void}(*testAsFunction)() ) noexcept : m\_testAsFunction( testAsFunction ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14328}14328 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14329}14329     \textcolor{keywordtype}{void} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{TestInvokerAsFunction::invoke}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14330}14330         m\_testAsFunction();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14331}14331     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14332}14332 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14333}14333     std::string extractClassName( StringRef \textcolor{keyword}{const}\& classOrQualifiedMethodName ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14334}14334         std::string className(classOrQualifiedMethodName);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14335}14335         \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_acad23751846ac23d0f379e34f5adebb1}{startsWith}}( className, \textcolor{charliteral}{'\&'} ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14336}14336         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14337}14337             std::size\_t lastColons = className.rfind( \textcolor{stringliteral}{"{}::"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14338}14338             std::size\_t penultimateColons = className.rfind( \textcolor{stringliteral}{"{}::"{}}, lastColons-\/1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14339}14339             \textcolor{keywordflow}{if}( penultimateColons == std::string::npos )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14340}14340                 penultimateColons = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14341}14341             className = className.substr( penultimateColons, lastColons-\/penultimateColons );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14342}14342         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14343}14343         \textcolor{keywordflow}{return} className;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14344}14344     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14345}14345 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14346}14346 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14347}14347 \textcolor{comment}{// end catch\_test\_case\_registry\_impl.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14348}14348 \textcolor{comment}{// start catch\_test\_case\_tracker.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14349}14349 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14350}14350 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14351}14351 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14352}14352 \textcolor{preprocessor}{\#include <stdexcept>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14353}14353 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14354}14354 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14355}14355 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14356}14356 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14357}14357 \textcolor{preprocessor}{\#    pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14358}14358 \textcolor{preprocessor}{\#    pragma clang diagnostic ignored "{}-\/Wexit-\/time-\/destructors"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14359}14359 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14360}14360 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14361}14361 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14362}14362 \textcolor{keyword}{namespace }TestCaseTracking \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14363}14363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14364}14364     NameAndLocation::NameAndLocation( std::string \textcolor{keyword}{const}\& \_name, SourceLineInfo \textcolor{keyword}{const}\& \_location )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14365}14365     :   name( \_name ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14366}14366         location( \_location )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14367}14367     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14368}14368 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14369}14369     ITracker::\string~ITracker() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14370}14370 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14371}14371     ITracker\& TrackerContext::startRun() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14372}14372         m\_rootTracker = std::make\_shared<SectionTracker>( NameAndLocation( \textcolor{stringliteral}{"{}\{root\}"{}}, \mbox{\hyperlink{catch2_2catch_8hpp_abc0b2405454c51748a31e0393d9ad5d1}{CATCH\_INTERNAL\_LINEINFO}} ), *\textcolor{keyword}{this}, \textcolor{keyword}{nullptr} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14373}14373         m\_currentTracker = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14374}14374         m\_runState = Executing;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14375}14375         \textcolor{keywordflow}{return} *m\_rootTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14376}14376     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14377}14377 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14378}14378     \textcolor{keywordtype}{void} TrackerContext::endRun() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14379}14379         m\_rootTracker.reset();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14380}14380         m\_currentTracker = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14381}14381         m\_runState = NotStarted;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14382}14382     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14383}14383 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14384}14384     \textcolor{keywordtype}{void} TrackerContext::startCycle() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14385}14385         m\_currentTracker = m\_rootTracker.get();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14386}14386         m\_runState = Executing;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14387}14387     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14388}14388     \textcolor{keywordtype}{void} TrackerContext::completeCycle() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14389}14389         m\_runState = CompletedCycle;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14390}14390     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14391}14391 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14392}14392     \textcolor{keywordtype}{bool} TrackerContext::completedCycle()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14393}14393         \textcolor{keywordflow}{return} m\_runState == CompletedCycle;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14394}14394     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14395}14395     ITracker\& TrackerContext::currentTracker() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14396}14396         \textcolor{keywordflow}{return} *m\_currentTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14397}14397     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14398}14398     \textcolor{keywordtype}{void} TrackerContext::setCurrentTracker( ITracker* tracker ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14399}14399         m\_currentTracker = tracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14400}14400     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14401}14401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14402}14402     TrackerBase::TrackerBase( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation, TrackerContext\& ctx, ITracker* parent ):}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14403}14403         ITracker(nameAndLocation),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14404}14404         m\_ctx( ctx ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14405}14405         m\_parent( parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14406}14406     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14407}14407 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14408}14408     \textcolor{keywordtype}{bool} TrackerBase::isComplete()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14409}14409         \textcolor{keywordflow}{return} m\_runState == CompletedSuccessfully || m\_runState == Failed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14410}14410     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14411}14411     \textcolor{keywordtype}{bool} TrackerBase::isSuccessfullyCompleted()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14412}14412         \textcolor{keywordflow}{return} m\_runState == CompletedSuccessfully;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14413}14413     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14414}14414     \textcolor{keywordtype}{bool} TrackerBase::isOpen()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14415}14415         \textcolor{keywordflow}{return} m\_runState != NotStarted \&\& !isComplete();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14416}14416     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14417}14417     \textcolor{keywordtype}{bool} TrackerBase::hasChildren()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14418}14418         \textcolor{keywordflow}{return} !m\_children.empty();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14419}14419     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14420}14420 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14421}14421     \textcolor{keywordtype}{void} TrackerBase::addChild( ITrackerPtr \textcolor{keyword}{const}\& child ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14422}14422         m\_children.push\_back( child );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14423}14423     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14424}14424 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14425}14425     ITrackerPtr TrackerBase::findChild( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14426}14426         \textcolor{keyword}{auto} it = \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{std::find\_if}}( m\_children.begin(), m\_children.end(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14427}14427             [\&nameAndLocation]( ITrackerPtr \textcolor{keyword}{const}\& tracker )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14428}14428                 return}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14429}14429                     tracker-\/>nameAndLocation().location == nameAndLocation.location \&\&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14430}14430                     tracker-\/>nameAndLocation().name == nameAndLocation.name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14431}14431             \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14432}14432         \textcolor{keywordflow}{return}( it != m\_children.end() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14433}14433             ? *it}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14434}14434             : \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14435}14435     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14436}14436     ITracker\& TrackerBase::parent() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14437}14437         assert( m\_parent ); \textcolor{comment}{// Should always be non-\/null except for root}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14438}14438         \textcolor{keywordflow}{return} *m\_parent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14439}14439     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14440}14440 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14441}14441     \textcolor{keywordtype}{void} TrackerBase::openChild() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14442}14442         \textcolor{keywordflow}{if}( m\_runState != ExecutingChildren ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14443}14443             m\_runState = ExecutingChildren;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14444}14444             \textcolor{keywordflow}{if}( m\_parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14445}14445                 m\_parent-\/>openChild();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14446}14446         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14447}14447     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14448}14448 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14449}14449     \textcolor{keywordtype}{bool} TrackerBase::isSectionTracker()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14450}14450     \textcolor{keywordtype}{bool} TrackerBase::isGeneratorTracker()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{false}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14451}14451 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14452}14452     \textcolor{keywordtype}{void} TrackerBase::open() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14453}14453         m\_runState = Executing;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14454}14454         moveToThis();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14455}14455         \textcolor{keywordflow}{if}( m\_parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14456}14456             m\_parent-\/>openChild();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14457}14457     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14458}14458 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14459}14459     \textcolor{keywordtype}{void} TrackerBase::close() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14460}14460 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14461}14461         \textcolor{comment}{// Close any still open children (e.g. generators)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14462}14462         \textcolor{keywordflow}{while}( \&m\_ctx.currentTracker() != \textcolor{keyword}{this} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14463}14463             m\_ctx.currentTracker().close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14464}14464 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14465}14465         \textcolor{keywordflow}{switch}( m\_runState ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14466}14466             \textcolor{keywordflow}{case} NeedsAnotherRun:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14467}14467                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14468}14468 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14469}14469             \textcolor{keywordflow}{case} Executing:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14470}14470                 m\_runState = CompletedSuccessfully;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14471}14471                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14472}14472             \textcolor{keywordflow}{case} ExecutingChildren:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14473}14473                 \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}{std::all\_of}}(m\_children.begin(), m\_children.end(), [](ITrackerPtr \textcolor{keyword}{const}\& t)\{ return t-\/>isComplete(); \}) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14474}14474                     m\_runState = CompletedSuccessfully;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14475}14475                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14476}14476 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14477}14477             \textcolor{keywordflow}{case} NotStarted:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14478}14478             \textcolor{keywordflow}{case} CompletedSuccessfully:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14479}14479             \textcolor{keywordflow}{case} Failed:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14480}14480                 \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Illogical state: "{}} << m\_runState );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14481}14481 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14482}14482             \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14483}14483                 \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Unknown state: "{}} << m\_runState );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14484}14484         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14485}14485         moveToParent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14486}14486         m\_ctx.completeCycle();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14487}14487     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14488}14488     \textcolor{keywordtype}{void} TrackerBase::fail() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14489}14489         m\_runState = Failed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14490}14490         \textcolor{keywordflow}{if}( m\_parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14491}14491             m\_parent-\/>markAsNeedingAnotherRun();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14492}14492         moveToParent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14493}14493         m\_ctx.completeCycle();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14494}14494     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14495}14495     \textcolor{keywordtype}{void} TrackerBase::markAsNeedingAnotherRun() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14496}14496         m\_runState = NeedsAnotherRun;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14497}14497     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14498}14498 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14499}14499     \textcolor{keywordtype}{void} TrackerBase::moveToParent() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14500}14500         assert( m\_parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14501}14501         m\_ctx.setCurrentTracker( m\_parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14502}14502     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14503}14503     \textcolor{keywordtype}{void} TrackerBase::moveToThis() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14504}14504         m\_ctx.setCurrentTracker( \textcolor{keyword}{this} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14505}14505     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14506}14506 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14507}14507     SectionTracker::SectionTracker( NameAndLocation \textcolor{keyword}{const}\& nameAndLocation, TrackerContext\& ctx, ITracker* parent )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14508}14508     :   TrackerBase( nameAndLocation, ctx, parent ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14509}14509         m\_trimmed\_name(\mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}(nameAndLocation.name))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14510}14510     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14511}14511         \textcolor{keywordflow}{if}( parent ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14512}14512             \textcolor{keywordflow}{while}( !parent-\/>isSectionTracker() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14513}14513                 parent = \&parent-\/>parent();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14514}14514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14515}14515             SectionTracker\& parentSection = \textcolor{keyword}{static\_cast<}SectionTracker\&\textcolor{keyword}{>}( *parent );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14516}14516             addNextFilters( parentSection.m\_filters );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14517}14517         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14518}14518     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14519}14519 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14520}14520     \textcolor{keywordtype}{bool} SectionTracker::isComplete()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14521}14521         \textcolor{keywordtype}{bool} complete = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14522}14522 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14523}14523         \textcolor{keywordflow}{if} (m\_filters.empty()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14524}14524             || m\_filters[0] == \textcolor{stringliteral}{"{}"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14525}14525             || \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{std::find}}(m\_filters.begin(), m\_filters.end(), m\_trimmed\_name) != m\_filters.end()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14526}14526             complete = TrackerBase::isComplete();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14527}14527         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14528}14528         \textcolor{keywordflow}{return} complete;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14529}14529     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14530}14530 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14531}14531     \textcolor{keywordtype}{bool} SectionTracker::isSectionTracker()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} \textcolor{keyword}{true}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14532}14532 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14533}14533     SectionTracker\& SectionTracker::acquire( TrackerContext\& ctx, NameAndLocation \textcolor{keyword}{const}\& nameAndLocation ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14534}14534         std::shared\_ptr<SectionTracker> section;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14535}14535 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14536}14536         ITracker\& currentTracker = ctx.currentTracker();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14537}14537         \textcolor{keywordflow}{if}( ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14538}14538             assert( childTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14539}14539             assert( childTracker-\/>isSectionTracker() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14540}14540             section = std::static\_pointer\_cast<SectionTracker>( childTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14541}14541         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14542}14542         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14543}14543             section = std::make\_shared<SectionTracker>( nameAndLocation, ctx, \&currentTracker );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14544}14544             currentTracker.addChild( section );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14545}14545         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14546}14546         \textcolor{keywordflow}{if}( !ctx.completedCycle() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14547}14547             section-\/>tryOpen();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14548}14548         \textcolor{keywordflow}{return} *section;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14549}14549     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14550}14550 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14551}14551     \textcolor{keywordtype}{void} SectionTracker::tryOpen() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14552}14552         \textcolor{keywordflow}{if}( !isComplete() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14553}14553             open();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14554}14554     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14555}14555 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14556}14556     \textcolor{keywordtype}{void} SectionTracker::addInitialFilters( std::vector<std::string> \textcolor{keyword}{const}\& filters ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14557}14557         \textcolor{keywordflow}{if}( !filters.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14558}14558             m\_filters.reserve( m\_filters.size() + filters.size() + 2 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14559}14559             m\_filters.emplace\_back(\textcolor{stringliteral}{"{}"{}}); \textcolor{comment}{// Root -\/ should never be consulted}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14560}14560             m\_filters.emplace\_back(\textcolor{stringliteral}{"{}"{}}); \textcolor{comment}{// Test Case -\/ not a section filter}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14561}14561             m\_filters.insert( m\_filters.end(), filters.begin(), filters.end() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14562}14562         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14563}14563     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14564}14564     \textcolor{keywordtype}{void} SectionTracker::addNextFilters( std::vector<std::string> \textcolor{keyword}{const}\& filters ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14565}14565         \textcolor{keywordflow}{if}( filters.size() > 1 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14566}14566             m\_filters.insert( m\_filters.end(), filters.begin()+1, filters.end() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14567}14567     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14568}14568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14569}14569     std::vector<std::string> \textcolor{keyword}{const}\& SectionTracker::getFilters()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14570}14570         \textcolor{keywordflow}{return} m\_filters;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14571}14571     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14572}14572 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14573}14573     std::string \textcolor{keyword}{const}\& SectionTracker::trimmedName()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14574}14574         \textcolor{keywordflow}{return} m\_trimmed\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14575}14575     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14576}14576 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14577}14577 \} \textcolor{comment}{// namespace TestCaseTracking}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14578}14578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14579}14579 \textcolor{keyword}{using }TestCaseTracking::ITracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14580}14580 \textcolor{keyword}{using }TestCaseTracking::TrackerContext;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14581}14581 \textcolor{keyword}{using }TestCaseTracking::SectionTracker;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14582}14582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14583}14583 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14584}14584 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14585}14585 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14586}14586 \textcolor{preprocessor}{\#    pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14587}14587 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14588}14588 \textcolor{comment}{// end catch\_test\_case\_tracker.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14589}14589 \textcolor{comment}{// start catch\_test\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14590}14590 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14591}14591 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14592}14592 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14593}14593     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ab3d8ccbc900fe50322c39ecbba52f536}{makeTestInvoker}}( \textcolor{keywordtype}{void}(*testAsFunction)() ) noexcept -\/> ITestInvoker* \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14594}14594         \textcolor{keywordflow}{return} \textcolor{keyword}{new}(std::nothrow) TestInvokerAsFunction( testAsFunction );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14595}14595     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14596}14596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14597}14597     \mbox{\hyperlink{struct_catch_1_1_name_and_tags_ab585111e615ce8c504a2b9630de8ee94}{NameAndTags::NameAndTags}}( StringRef \textcolor{keyword}{const}\& name\_ , StringRef \textcolor{keyword}{const}\& tags\_ ) noexcept : name( name\_ ), tags( tags\_ ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14598}14598 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14599}14599     \mbox{\hyperlink{struct_catch_1_1_auto_reg_a7eba02fb9d80b9896bf5a6517369af28}{AutoReg::AutoReg}}( ITestInvoker* invoker, SourceLineInfo \textcolor{keyword}{const}\& lineInfo, StringRef \textcolor{keyword}{const}\& classOrMethod, NameAndTags \textcolor{keyword}{const}\& nameAndTags ) \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14600}14600         \mbox{\hyperlink{catch2_2catch_8hpp_ab76c2d22e571ab1a828f5c60d2f485a6}{CATCH\_TRY}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14601}14601             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14602}14602                     .\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a11b85c6744d88c9f83fe16ad4a8dd451}{registerTest}}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14603}14603                         \mbox{\hyperlink{namespace_catch_a5e63df38d06a43d4cee17454e724b5c0}{makeTestCase}}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14604}14604                             invoker,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14605}14605                             extractClassName( classOrMethod ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14606}14606                             nameAndTags,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14607}14607                             lineInfo));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14608}14608         \} \mbox{\hyperlink{catch2_2catch_8hpp_afa0ae14e70806dca4f8bf06d06645fa9}{CATCH\_CATCH\_ALL}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14609}14609             \textcolor{comment}{// Do not throw when constructing global objects, instead register the exception to be processed later}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14610}14610             \mbox{\hyperlink{namespace_catch_a585459763f2c7610e57de2dd22dd1ad8}{getMutableRegistryHub}}().\mbox{\hyperlink{struct_catch_1_1_i_mutable_registry_hub_a72a7d5386851ac3200f8da794a009c86}{registerStartupException}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14611}14611         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14612}14612     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14613}14613 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14614}14614     \mbox{\hyperlink{struct_catch_1_1_auto_reg_a3cdb53f1e5ff115310f3372bebe198f1}{AutoReg::\string~AutoReg}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14615}14615 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14616}14616 \textcolor{comment}{// end catch\_test\_registry.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14617}14617 \textcolor{comment}{// start catch\_test\_spec.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14618}14618 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14619}14619 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14620}14620 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14621}14621 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14622}14622 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14623}14623 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14624}14624 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14625}14625 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14626}14626     TestSpec::Pattern::Pattern( std::string \textcolor{keyword}{const}\& name )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14627}14627     : m\_name( name )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14628}14628     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14629}14629 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14630}14630     TestSpec::Pattern::\string~Pattern() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14631}14631 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14632}14632     std::string \textcolor{keyword}{const}\& TestSpec::Pattern::name()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14633}14633         \textcolor{keywordflow}{return} m\_name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14634}14634     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14635}14635 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14636}14636     TestSpec::NamePattern::NamePattern( std::string \textcolor{keyword}{const}\& name, std::string \textcolor{keyword}{const}\& filterString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14637}14637     : Pattern( filterString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14638}14638     , m\_wildcardPattern( \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( name ), CaseSensitive::No )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14639}14639     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14640}14640 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14641}14641     \textcolor{keywordtype}{bool} TestSpec::NamePattern::matches( TestCaseInfo \textcolor{keyword}{const}\& testCase )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14642}14642         \textcolor{keywordflow}{return} m\_wildcardPattern.matches( testCase.name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14643}14643     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14644}14644 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14645}14645     TestSpec::TagPattern::TagPattern( std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}, std::string \textcolor{keyword}{const}\& filterString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14646}14646     : Pattern( filterString )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14647}14647     , m\_tag( \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( \mbox{\hyperlink{structtag}{tag}} ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14648}14648     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14649}14649 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14650}14650     \textcolor{keywordtype}{bool} TestSpec::TagPattern::matches( TestCaseInfo \textcolor{keyword}{const}\& testCase )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14651}14651         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{std::find}}(begin(testCase.lcaseTags),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14652}14652                          end(testCase.lcaseTags),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14653}14653                          m\_tag) != end(testCase.lcaseTags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14654}14654     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14655}14655 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14656}14656     TestSpec::ExcludedPattern::ExcludedPattern( PatternPtr \textcolor{keyword}{const}\& underlyingPattern )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14657}14657     : Pattern( underlyingPattern-\/>name() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14658}14658     , m\_underlyingPattern( underlyingPattern )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14659}14659     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14660}14660 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14661}14661     \textcolor{keywordtype}{bool} TestSpec::ExcludedPattern::matches( TestCaseInfo \textcolor{keyword}{const}\& testCase )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14662}14662         \textcolor{keywordflow}{return} !m\_underlyingPattern-\/>matches( testCase );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14663}14663     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14664}14664 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14665}14665     \textcolor{keywordtype}{bool} TestSpec::Filter::matches( TestCaseInfo \textcolor{keyword}{const}\& testCase )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14666}14666         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}{std::all\_of}}( m\_patterns.begin(), m\_patterns.end(), [\&]( PatternPtr \textcolor{keyword}{const}\& p )\{ return p-\/>matches( testCase ); \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14667}14667     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14668}14668 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14669}14669     std::string TestSpec::Filter::name()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14670}14670         std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14671}14671         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& p : m\_patterns )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14672}14672             name += p-\/>name();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14673}14673         \textcolor{keywordflow}{return} name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14674}14674     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14675}14675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14676}14676     \textcolor{keywordtype}{bool} TestSpec::hasFilters()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14677}14677         \textcolor{keywordflow}{return} !m\_filters.empty();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14678}14678     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14679}14679 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14680}14680     \textcolor{keywordtype}{bool} TestSpec::matches( TestCaseInfo \textcolor{keyword}{const}\& testCase )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14681}14681         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{std::any\_of}}( m\_filters.begin(), m\_filters.end(), [\&]( Filter \textcolor{keyword}{const}\& f )\{ return f.matches( testCase ); \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14682}14682     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14683}14683 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14684}14684     \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{TestSpec::Matches}} TestSpec::matchesByFilter( std::vector<TestCase> \textcolor{keyword}{const}\& testCases, IConfig \textcolor{keyword}{const}\& config )\textcolor{keyword}{ const}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14685}14685 \textcolor{keyword}{    }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14686}14686         \mbox{\hyperlink{namespace_catch_1_1_matchers_a82f1893cf50ae4c14b9b3e0980bf22b8}{Matches}} matches( m\_filters.size() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14687}14687         \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}( m\_filters.begin(), m\_filters.end(), matches.begin(), [\&]( Filter \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a4df89be8072a9685ee89b6776a54bb93}{filter}} )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14688}14688             std::vector<TestCase const*> currentMatches;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14689}14689             for( auto const\& test : testCases )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14690}14690                 if( isThrowSafe( test, config ) \&\& filter.matches( test ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14691}14691                     currentMatches.emplace\_back( \&test );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14692}14692             return FilterMatch\{ filter.name(), currentMatches \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14693}14693         \} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14694}14694         \textcolor{keywordflow}{return} matches;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14695}14695     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14696}14696 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14697}14697     \textcolor{keyword}{const} TestSpec::vectorStrings\& TestSpec::getInvalidArgs()\textcolor{keyword}{ const}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14698}14698         \textcolor{keywordflow}{return}  (m\_invalidArgs);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14699}14699     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14700}14700 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14701}14701 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14702}14702 \textcolor{comment}{// end catch\_test\_spec.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14703}14703 \textcolor{comment}{// start catch\_test\_spec\_parser.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14704}14704 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14705}14705 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14706}14706 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14707}14707     TestSpecParser::TestSpecParser( ITagAliasRegistry \textcolor{keyword}{const}\& tagAliases ) : m\_tagAliases( \&tagAliases ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14708}14708 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14709}14709     TestSpecParser\& TestSpecParser::parse( std::string \textcolor{keyword}{const}\& arg ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14710}14710         m\_mode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14711}14711         m\_exclusion = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14712}14712         m\_arg = m\_tagAliases-\/>expandAliases( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14713}14713         m\_escapeChars.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14714}14714         m\_substring.reserve(m\_arg.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14715}14715         m\_patternName.reserve(m\_arg.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14716}14716         m\_realPatternPos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14717}14717 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14718}14718         \textcolor{keywordflow}{for}( m\_pos = 0; m\_pos < m\_arg.size(); ++m\_pos )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14719}14719           \textcolor{comment}{//if visitChar fails}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14720}14720            if( !visitChar( m\_arg[m\_pos] ) )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14721}14721                m\_testSpec.m\_invalidArgs.push\_back(arg);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14722}14722                \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14723}14723            \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14724}14724         endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14725}14725         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14726}14726     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14727}14727     TestSpec TestSpecParser::testSpec() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14728}14728         addFilter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14729}14729         \textcolor{keywordflow}{return} m\_testSpec;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14730}14730     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14731}14731     \textcolor{keywordtype}{bool} TestSpecParser::visitChar( \textcolor{keywordtype}{char} c ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14732}14732         \textcolor{keywordflow}{if}( (m\_mode != EscapedName) \&\& (c == \textcolor{charliteral}{'\(\backslash\)\(\backslash\)'}) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14733}14733             escape();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14734}14734             addCharToPattern(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14735}14735             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14736}14736         \}\textcolor{keywordflow}{else} \textcolor{keywordflow}{if}((m\_mode != EscapedName) \&\& (c == \textcolor{charliteral}{','}) )  \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14737}14737             \textcolor{keywordflow}{return} separate();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14738}14738         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14739}14739 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14740}14740         \textcolor{keywordflow}{switch}( m\_mode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14741}14741         \textcolor{keywordflow}{case} None:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14742}14742             \textcolor{keywordflow}{if}( processNoneChar( c ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14743}14743                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14744}14744             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14745}14745         \textcolor{keywordflow}{case} Name:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14746}14746             processNameChar( c );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14747}14747             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14748}14748         \textcolor{keywordflow}{case} EscapedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14749}14749             endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14750}14750             addCharToPattern(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14751}14751             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14752}14752         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14753}14753         \textcolor{keywordflow}{case} Tag:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14754}14754         \textcolor{keywordflow}{case} QuotedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14755}14755             \textcolor{keywordflow}{if}( processOtherChar( c ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14756}14756                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14757}14757             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14758}14758         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14759}14759 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14760}14760         m\_substring += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14761}14761         \textcolor{keywordflow}{if}( !isControlChar( c ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14762}14762             m\_patternName += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14763}14763             m\_realPatternPos++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14764}14764         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14765}14765         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14766}14766     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14767}14767     \textcolor{comment}{// Two of the processing methods return true to signal the caller to return}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14768}14768     \textcolor{comment}{// without adding the given character to the current pattern strings}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14769}14769     \textcolor{keywordtype}{bool} TestSpecParser::processNoneChar( \textcolor{keywordtype}{char} c ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14770}14770         \textcolor{keywordflow}{switch}( c ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14771}14771         \textcolor{keywordflow}{case} \textcolor{charliteral}{' '}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14772}14772             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14773}14773         \textcolor{keywordflow}{case} \textcolor{charliteral}{'\string~'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14774}14774             m\_exclusion = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14775}14775             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14776}14776         \textcolor{keywordflow}{case} \textcolor{charliteral}{'['}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14777}14777             startNewMode( Tag );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14778}14778             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14779}14779         \textcolor{keywordflow}{case} \textcolor{charliteral}{'"{}'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14780}14780             startNewMode( QuotedName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14781}14781             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14782}14782         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14783}14783             startNewMode( Name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14784}14784             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14785}14785         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14786}14786     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14787}14787     \textcolor{keywordtype}{void} TestSpecParser::processNameChar( \textcolor{keywordtype}{char} c ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14788}14788         \textcolor{keywordflow}{if}( c == \textcolor{charliteral}{'['} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14789}14789             \textcolor{keywordflow}{if}( m\_substring == \textcolor{stringliteral}{"{}exclude:"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14790}14790                 m\_exclusion = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14791}14791             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14792}14792                 endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14793}14793             startNewMode( Tag );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14794}14794         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14795}14795     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14796}14796     \textcolor{keywordtype}{bool} TestSpecParser::processOtherChar( \textcolor{keywordtype}{char} c ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14797}14797         \textcolor{keywordflow}{if}( !isControlChar( c ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14798}14798             \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14799}14799         m\_substring += c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14800}14800         endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14801}14801         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14802}14802     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14803}14803     \textcolor{keywordtype}{void} TestSpecParser::startNewMode( Mode mode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14804}14804         m\_mode = mode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14805}14805     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14806}14806     \textcolor{keywordtype}{void} TestSpecParser::endMode() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14807}14807         \textcolor{keywordflow}{switch}( m\_mode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14808}14808         \textcolor{keywordflow}{case} Name:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14809}14809         \textcolor{keywordflow}{case} QuotedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14810}14810             \textcolor{keywordflow}{return} addNamePattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14811}14811         \textcolor{keywordflow}{case} Tag:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14812}14812             \textcolor{keywordflow}{return} addTagPattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14813}14813         \textcolor{keywordflow}{case} EscapedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14814}14814             revertBackToLastMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14815}14815             \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14816}14816         \textcolor{keywordflow}{case} None:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14817}14817         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14818}14818             \textcolor{keywordflow}{return} startNewMode( None );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14819}14819         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14820}14820     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14821}14821     \textcolor{keywordtype}{void} TestSpecParser::escape() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14822}14822         saveLastMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14823}14823         m\_mode = EscapedName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14824}14824         m\_escapeChars.push\_back(m\_realPatternPos);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14825}14825     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14826}14826     \textcolor{keywordtype}{bool} TestSpecParser::isControlChar( \textcolor{keywordtype}{char} c )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14827}14827         \textcolor{keywordflow}{switch}( m\_mode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14828}14828             \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14829}14829                 \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14830}14830             \textcolor{keywordflow}{case} None:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14831}14831                 \textcolor{keywordflow}{return} c == \textcolor{charliteral}{'\string~'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14832}14832             \textcolor{keywordflow}{case} Name:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14833}14833                 \textcolor{keywordflow}{return} c == \textcolor{charliteral}{'['};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14834}14834             \textcolor{keywordflow}{case} EscapedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14835}14835                 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14836}14836             \textcolor{keywordflow}{case} QuotedName:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14837}14837                 \textcolor{keywordflow}{return} c == \textcolor{charliteral}{'"{}'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14838}14838             \textcolor{keywordflow}{case} Tag:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14839}14839                 \textcolor{keywordflow}{return} c == \textcolor{charliteral}{'['} || c == \textcolor{charliteral}{']'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14840}14840         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14841}14841     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14842}14842 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14843}14843     \textcolor{keywordtype}{void} TestSpecParser::addFilter() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14844}14844         \textcolor{keywordflow}{if}( !m\_currentFilter.m\_patterns.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14845}14845             m\_testSpec.m\_filters.push\_back( m\_currentFilter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14846}14846             m\_currentFilter = TestSpec::Filter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14847}14847         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14848}14848     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14849}14849 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14850}14850     \textcolor{keywordtype}{void} TestSpecParser::saveLastMode() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14851}14851       lastMode = m\_mode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14852}14852     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14853}14853 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14854}14854     \textcolor{keywordtype}{void} TestSpecParser::revertBackToLastMode() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14855}14855       m\_mode = lastMode;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14856}14856     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14857}14857 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14858}14858     \textcolor{keywordtype}{bool} TestSpecParser::separate() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14859}14859       \textcolor{keywordflow}{if}( (m\_mode==QuotedName) || (m\_mode==Tag) )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14860}14860          \textcolor{comment}{//invalid argument, signal failure to previous scope.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14861}14861          m\_mode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14862}14862          m\_pos = m\_arg.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14863}14863          m\_substring.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14864}14864          m\_patternName.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14865}14865          m\_realPatternPos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14866}14866          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14867}14867       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14868}14868       endMode();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14869}14869       addFilter();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14870}14870       \textcolor{keywordflow}{return} \textcolor{keyword}{true}; \textcolor{comment}{//success}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14871}14871     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14872}14872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14873}14873     std::string TestSpecParser::preprocessPattern() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14874}14874         std::string token = m\_patternName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14875}14875         \textcolor{keywordflow}{for} (std::size\_t i = 0; i < m\_escapeChars.size(); ++i)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14876}14876             token = token.substr(0, m\_escapeChars[i] -\/ i) + token.substr(m\_escapeChars[i] -\/ i + 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14877}14877         m\_escapeChars.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14878}14878         \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_acad23751846ac23d0f379e34f5adebb1}{startsWith}}(token, \textcolor{stringliteral}{"{}exclude:"{}})) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14879}14879             m\_exclusion = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14880}14880             token = token.substr(8);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14881}14881         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14882}14882 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14883}14883         m\_patternName.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14884}14884         m\_realPatternPos = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14885}14885 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14886}14886         \textcolor{keywordflow}{return} token;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14887}14887     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14888}14888 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14889}14889     \textcolor{keywordtype}{void} TestSpecParser::addNamePattern() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14890}14890         \textcolor{keyword}{auto} token = preprocessPattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14891}14891 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14892}14892         \textcolor{keywordflow}{if} (!token.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14893}14893             TestSpec::PatternPtr pattern = std::make\_shared<TestSpec::NamePattern>(token, m\_substring);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14894}14894             \textcolor{keywordflow}{if} (m\_exclusion)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14895}14895                 pattern = std::make\_shared<TestSpec::ExcludedPattern>(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14896}14896             m\_currentFilter.m\_patterns.push\_back(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14897}14897         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14898}14898         m\_substring.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14899}14899         m\_exclusion = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14900}14900         m\_mode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14901}14901     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14902}14902 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14903}14903     \textcolor{keywordtype}{void} TestSpecParser::addTagPattern() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14904}14904         \textcolor{keyword}{auto} token = preprocessPattern();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14905}14905 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14906}14906         \textcolor{keywordflow}{if} (!token.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14907}14907             \textcolor{comment}{// If the tag pattern is the "{}hide and tag"{} shorthand (e.g. [.foo])}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14908}14908             \textcolor{comment}{// we have to create a separate hide tag and shorten the real one}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14909}14909             \textcolor{keywordflow}{if} (token.size() > 1 \&\& token[0] == \textcolor{charliteral}{'.'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14910}14910                 token.erase(token.begin());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14911}14911                 TestSpec::PatternPtr pattern = std::make\_shared<TestSpec::TagPattern>(\textcolor{stringliteral}{"{}."{}}, m\_substring);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14912}14912                 \textcolor{keywordflow}{if} (m\_exclusion) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14913}14913                     pattern = std::make\_shared<TestSpec::ExcludedPattern>(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14914}14914                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14915}14915                 m\_currentFilter.m\_patterns.push\_back(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14916}14916             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14917}14917 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14918}14918             TestSpec::PatternPtr pattern = std::make\_shared<TestSpec::TagPattern>(token, m\_substring);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14919}14919 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14920}14920             \textcolor{keywordflow}{if} (m\_exclusion) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14921}14921                 pattern = std::make\_shared<TestSpec::ExcludedPattern>(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14922}14922             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14923}14923             m\_currentFilter.m\_patterns.push\_back(pattern);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14924}14924         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14925}14925         m\_substring.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14926}14926         m\_exclusion = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14927}14927         m\_mode = None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14928}14928     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14929}14929 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14930}14930     TestSpec parseTestSpec( std::string \textcolor{keyword}{const}\& arg ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14931}14931         \textcolor{keywordflow}{return} TestSpecParser( \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{ITagAliasRegistry::get}}() ).parse( arg ).testSpec();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14932}14932     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14933}14933 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14934}14934 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14935}14935 \textcolor{comment}{// end catch\_test\_spec\_parser.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14936}14936 \textcolor{comment}{// start catch\_timer.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14937}14937 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14938}14938 \textcolor{preprocessor}{\#include <chrono>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14939}14939 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14940}14940 \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t nanosecondsInSecond = 1000000000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14941}14941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14942}14942 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14943}14943 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14944}14944     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}() -\/> uint64\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14945}14945         \textcolor{keywordflow}{return} std::chrono::duration\_cast<std::chrono::nanoseconds>( std::chrono::high\_resolution\_clock::now().time\_since\_epoch() ).count();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14946}14946     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14947}14947 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14948}14948     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14949}14949         \textcolor{keyword}{auto} estimateClockResolution() -\/> uint64\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14950}14950             uint64\_t \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14951}14951             \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t iterations = 1000000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14952}14952 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14953}14953             \textcolor{keyword}{auto} startTime = \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14954}14954 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14955}14955             \textcolor{keywordflow}{for}( std::size\_t i = 0; i < iterations; ++i ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14956}14956 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14957}14957                 uint64\_t ticks;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14958}14958                 uint64\_t baseTicks = \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14959}14959                 \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14960}14960                     ticks = \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14961}14961                 \} \textcolor{keywordflow}{while}( ticks == baseTicks );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14962}14962 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14963}14963                 \textcolor{keyword}{auto} delta = ticks -\/ baseTicks;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14964}14964                 \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} += delta;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14965}14965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14966}14966                 \textcolor{comment}{// If we have been calibrating for over 3 seconds -\/-\/ the clock}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14967}14967                 \textcolor{comment}{// is terrible and we should move on.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14968}14968                 \textcolor{comment}{// TBD: How to signal that the measured resolution is probably wrong?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14969}14969                 \textcolor{keywordflow}{if} (ticks > startTime + 3 * nanosecondsInSecond) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14970}14970                     \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} / ( i + 1u );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14971}14971                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14972}14972             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14973}14973 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14974}14974             \textcolor{comment}{// We're just taking the mean, here. To do better we could take the std. dev and exclude outliers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14975}14975             \textcolor{comment}{// -\/ and potentially do more iterations if there's a high variance.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14976}14976             \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}}/iterations;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14977}14977         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14978}14978     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14979}14979     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_ac8e1ed37624bd0d97b2c0d4ec099d31f}{getEstimatedClockResolution}}() -\/> uint64\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14980}14980         \textcolor{keyword}{static} \textcolor{keyword}{auto} s\_resolution = estimateClockResolution();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14981}14981         \textcolor{keywordflow}{return} s\_resolution;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14982}14982     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14983}14983 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14984}14984     \textcolor{keywordtype}{void} Timer::start() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14985}14985        m\_nanoseconds = \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14986}14986     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14987}14987     \textcolor{keyword}{auto} Timer::getElapsedNanoseconds() const -\/> uint64\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14988}14988         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a98d058468488c486a9cb5c8463f3ba29}{getCurrentNanosecondsSinceEpoch}}() -\/ m\_nanoseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14989}14989     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14990}14990     \textcolor{keyword}{auto} Timer::getElapsedMicroseconds() const -\/> uint64\_t \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14991}14991         \textcolor{keywordflow}{return} getElapsedNanoseconds()/1000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14992}14992     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14993}14993     \textcolor{keyword}{auto} Timer::getElapsedMilliseconds() const -\/> \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14994}14994         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}\textcolor{keyword}{>}(getElapsedMicroseconds()/1000);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14995}14995     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14996}14996     \textcolor{keyword}{auto} Timer::getElapsedSeconds() const -\/> \textcolor{keywordtype}{double} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14997}14997         \textcolor{keywordflow}{return} getElapsedMicroseconds()/1000000.0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14998}14998     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l14999}14999 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15000}15000 \} \textcolor{comment}{// namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15001}15001 \textcolor{comment}{// end catch\_timer.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15002}15002 \textcolor{comment}{// start catch\_tostring.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15003}15003 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15004}15004 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15005}15005 \textcolor{preprocessor}{\#    pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15006}15006 \textcolor{preprocessor}{\#    pragma clang diagnostic ignored "{}-\/Wexit-\/time-\/destructors"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15007}15007 \textcolor{preprocessor}{\#    pragma clang diagnostic ignored "{}-\/Wglobal-\/constructors"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15008}15008 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15009}15009 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15010}15010 \textcolor{comment}{// Enable specific decls locally}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15011}15011 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15012}15012 \textcolor{preprocessor}{\#define CATCH\_CONFIG\_ENABLE\_CHRONO\_STRINGMAKER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15013}15013 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15014}15014 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15015}15015 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15016}15016 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15017}15017 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15018}15018 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15019}15019 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15020}15020 \textcolor{keyword}{namespace }Detail \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15021}15021 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15022}15022     \textcolor{keyword}{const} std::string \mbox{\hyperlink{namespace_catch_1_1_detail_a466775f4eec29ffef29ab334cd885136}{unprintableString}} = \textcolor{stringliteral}{"{}\{?\}"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15023}15023 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15024}15024     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15025}15025         \textcolor{keyword}{const} \textcolor{keywordtype}{int} hexThreshold = 255;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15026}15026 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15027}15027         \textcolor{keyword}{struct }Endianness \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15028}15028             \textcolor{keyword}{enum} Arch \{ Big, Little \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15029}15029 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15030}15030             \textcolor{keyword}{static} Arch which() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15031}15031                 \textcolor{keywordtype}{int} one = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15032}15032                 \textcolor{comment}{// If the lowest byte we read is non-\/zero, we can assume}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15033}15033                 \textcolor{comment}{// that little endian format is used.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15034}15034                 \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = *\textcolor{keyword}{reinterpret\_cast<}\textcolor{keywordtype}{char}*\textcolor{keyword}{>}(\&one);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15035}15035                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} ? Little : Big;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15036}15036             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15037}15037         \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15038}15038     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15039}15039 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15040}15040     std::string \mbox{\hyperlink{namespace_catch_1_1_detail_ac5d6c510e565ee5bddcc2236194ce29e}{rawMemoryToString}}( \textcolor{keyword}{const} \textcolor{keywordtype}{void} *\textcolor{keywordtype}{object}, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15041}15041         \textcolor{comment}{// Reverse order for little endian architectures}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15042}15042         \textcolor{keywordtype}{int} i = 0, end = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}( \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} ), inc = 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15043}15043         \textcolor{keywordflow}{if}( Endianness::which() == Endianness::Little ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15044}15044             i = end-\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15045}15045             end = inc = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15046}15046         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15047}15047 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15048}15048         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \textcolor{keyword}{const} *bytes = \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \textcolor{keyword}{const }*\textcolor{keyword}{>}(object);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15049}15049         ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15050}15050         rss << \textcolor{stringliteral}{"{}0x"{}} << std::setfill(\textcolor{charliteral}{'0'}) << std::hex;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15051}15051         \textcolor{keywordflow}{for}( ; i != end; i += inc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15052}15052              rss << \mbox{\hyperlink{namespacestd}{std}}::setw(2) << static\_cast<unsigned>(bytes[i]);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15053}15053        \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15054}15054     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15055}15055 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15056}15056 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15057}15057 \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15058}15058 std::string fpToString( T \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, \textcolor{keywordtype}{int} precision ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15059}15059     \textcolor{keywordflow}{if} (Catch::isnan(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}})) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15060}15060         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}nan"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15061}15061     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15062}15062 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15063}15063     ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15064}15064     rss << std::setprecision( precision )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15065}15065         << std::fixed}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15066}15066         << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15067}15067     std::string d = rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15068}15068     std::size\_t i = d.find\_last\_not\_of( \textcolor{charliteral}{'0'} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15069}15069     \textcolor{keywordflow}{if}( i != std::string::npos \&\& i != d.size()-\/1 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15070}15070         \textcolor{keywordflow}{if}( d[i] == \textcolor{charliteral}{'.'} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15071}15071             i++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15072}15072         d = d.substr( 0, i+1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15073}15073     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15074}15074     \textcolor{keywordflow}{return} d;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15075}15075 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15076}15076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15078}15078 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15079}15079 \textcolor{comment}{//   Out-\/of-\/line defs for full specialization of StringMaker}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15080}15080 \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15082}15082 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15083}15083 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::string>::convert}}(\textcolor{keyword}{const} std::string\& str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15084}15084     \textcolor{keywordflow}{if} (!\mbox{\hyperlink{namespace_catch_a228a625318bb6183842e394eeba17d50}{getCurrentContext}}().getConfig()-\/>showInvisibles()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15085}15085         \textcolor{keywordflow}{return} \textcolor{charliteral}{'"{}'} + str + '"{}';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15086}15086     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15087}15087 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15088}15088     std::string s(\textcolor{stringliteral}{"{}\(\backslash\)"{}"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15089}15089     \textcolor{keywordflow}{for} (\textcolor{keywordtype}{char} c : str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15090}15090         \textcolor{keywordflow}{switch} (c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15091}15091         \textcolor{keywordflow}{case} \textcolor{charliteral}{'\(\backslash\)n'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15092}15092             s.append(\textcolor{stringliteral}{"{}\(\backslash\)\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15093}15093             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15094}15094         \textcolor{keywordflow}{case} \textcolor{charliteral}{'\(\backslash\)t'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15095}15095             s.append(\textcolor{stringliteral}{"{}\(\backslash\)\(\backslash\)t"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15096}15096             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15097}15097         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15098}15098             s.push\_back(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15099}15099             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15100}15100         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15101}15101     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15102}15102     s.append(\textcolor{stringliteral}{"{}\(\backslash\)"{}"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15103}15103     \textcolor{keywordflow}{return} s;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15104}15104 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15105}15105 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15106}15106 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15107}15107 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::string\_view>::convert}}(std::string\_view str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15108}15108     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15109}15109 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15110}15110 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15111}15111 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15112}15112 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<char const*>::convert}}(\textcolor{keywordtype}{char} \textcolor{keyword}{const}* str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15113}15113     \textcolor{keywordflow}{if} (str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15114}15114         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15115}15115     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15116}15116         \textcolor{keywordflow}{return}\{ \textcolor{stringliteral}{"{}\{null string\}"{}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15117}15117     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15118}15118 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15119}15119 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<char*>::convert}}(\textcolor{keywordtype}{char}* str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15120}15120     \textcolor{keywordflow}{if} (str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15121}15121         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::string\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15122}15122     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15123}15123         \textcolor{keywordflow}{return}\{ \textcolor{stringliteral}{"{}\{null string\}"{}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15124}15124     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15125}15125 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15126}15126 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15127}15127 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_WCHAR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15128}15128 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::wstring>::convert}}(\textcolor{keyword}{const} std::wstring\& wstr) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15129}15129     std::string s;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15130}15130     s.reserve(wstr.size());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15131}15131     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} c : wstr) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15132}15132         s += (c <= 0xff) ? static\_cast<char>(c) : '?';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15133}15133     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15134}15134     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(s);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15135}15135 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15136}15136 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15137}15137 \textcolor{preprocessor}{\# ifdef CATCH\_CONFIG\_CPP17\_STRING\_VIEW}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15138}15138 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::wstring\_view>::convert}}(std::wstring\_view str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15139}15139     \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::wstring>::convert}}(std::wstring(str));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15140}15140 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15141}15141 \textcolor{preprocessor}{\# endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15142}15142 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15143}15143 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<wchar\_t const*>::convert}}(\textcolor{keywordtype}{wchar\_t} \textcolor{keyword}{const} * str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15144}15144     \textcolor{keywordflow}{if} (str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15145}15145         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::wstring\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15146}15146     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15147}15147         \textcolor{keywordflow}{return}\{ \textcolor{stringliteral}{"{}\{null string\}"{}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15148}15148     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15149}15149 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15150}15150 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<wchar\_t *>::convert}}(\textcolor{keywordtype}{wchar\_t} * str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15151}15151     \textcolor{keywordflow}{if} (str) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15152}15152         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::wstring\{ str \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15153}15153     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15154}15154         \textcolor{keywordflow}{return}\{ \textcolor{stringliteral}{"{}\{null string\}"{}} \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15155}15155     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15156}15156 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15157}15157 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15158}15158 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15159}15159 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_CPP17\_BYTE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15160}15160 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15161}15161 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::byte>::convert}}(std::byte \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15162}15162     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(std::to\_integer<unsigned long long>(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15163}15163 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15164}15164 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// defined(CATCH\_CONFIG\_CPP17\_BYTE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15165}15165 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15166}15166 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<int>::convert}}(\textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15167}15167     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{long} \textcolor{keywordtype}{long}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15168}15168 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15169}15169 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<long>::convert}}(\textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15170}15170     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{long} \textcolor{keywordtype}{long}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15171}15171 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15172}15172 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<long long>::convert}}(\textcolor{keywordtype}{long} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15173}15173     ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15174}15174     rss << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15175}15175     \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} > Detail::hexThreshold) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15176}15176         rss << \textcolor{stringliteral}{"{} (0x"{}} << std::hex << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} << \textcolor{charliteral}{')'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15177}15177     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15178}15178     \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15179}15179 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15180}15180 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15181}15181 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<unsigned int>::convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15182}15182     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15183}15183 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15184}15184 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<unsigned long>::convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15185}15185     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15186}15186 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15187}15187 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<unsigned long long>::convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \textcolor{keywordtype}{long} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15188}15188     ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15189}15189     rss << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15190}15190     \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} > Detail::hexThreshold) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15191}15191         rss << \textcolor{stringliteral}{"{} (0x"{}} << std::hex << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} << \textcolor{charliteral}{')'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15192}15192     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15193}15193     \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15194}15194 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15195}15195 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15196}15196 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<bool>::convert}}(\textcolor{keywordtype}{bool} b) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15197}15197     \textcolor{keywordflow}{return} b ? \textcolor{stringliteral}{"{}true"{}} : \textcolor{stringliteral}{"{}false"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15198}15198 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15199}15199 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15200}15200 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<signed char>::convert}}(\textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15201}15201     \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} == \textcolor{charliteral}{'\(\backslash\)r'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15202}15202         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}'\(\backslash\)\(\backslash\)r'"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15203}15203     \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} == \textcolor{charliteral}{'\(\backslash\)f'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15204}15204         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}'\(\backslash\)\(\backslash\)f'"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15205}15205     \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} == \textcolor{charliteral}{'\(\backslash\)n'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15206}15206         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}'\(\backslash\)\(\backslash\)n'"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15207}15207     \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} == \textcolor{charliteral}{'\(\backslash\)t'}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15208}15208         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}'\(\backslash\)\(\backslash\)t'"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15209}15209     \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\textcolor{charliteral}{'\(\backslash\)0'} <= \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} \&\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} < \textcolor{charliteral}{' '}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15210}15210         \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}\textcolor{keyword}{>}(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15211}15211     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15212}15212         \textcolor{keywordtype}{char} chstr[] = \textcolor{stringliteral}{"{}' '"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15213}15213         chstr[1] = \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15214}15214         \textcolor{keywordflow}{return} chstr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15215}15215     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15216}15216 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15217}15217 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<char>::convert}}(\textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15218}15218     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{signed} \textcolor{keywordtype}{char}\textcolor{keyword}{>}(c));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15219}15219 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15220}15220 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<unsigned char>::convert}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15221}15221     \mbox{\hyperlink{namespace_catch_1_1_detail_af0ad48344ffd3f92f3568465248a9880}{return ::Catch::Detail::stringify}}(\textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{char}\textcolor{keyword}{>}(c));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15222}15222 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15223}15223 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15224}15224 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<std::nullptr\_t>::convert}}(std::nullptr\_t) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15225}15225     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}nullptr"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15226}15226 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15227}15227 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15228}15228 \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01float_01_4_a18164cf5394a0f3b0e5f775310a0aa1a}{StringMaker<float>::precision}} = 5;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15229}15229 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15230}15230 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<float>::convert}}(\textcolor{keywordtype}{float} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15231}15231     \textcolor{keywordflow}{return} fpToString(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, precision) + 'f';}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15232}15232 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15233}15233 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15234}15234 \textcolor{keywordtype}{int} \mbox{\hyperlink{struct_catch_1_1_string_maker_3_01double_01_4_ab5f2a18b6b07394e4295325be243d28f}{StringMaker<double>::precision}} = 10;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15235}15235 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15236}15236 std::string \mbox{\hyperlink{struct_catch_1_1_string_maker_a98ebf81ba6ef3cfd72b23316e291d3d0}{StringMaker<double>::convert}}(\textcolor{keywordtype}{double} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15237}15237     \textcolor{keywordflow}{return} fpToString(\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}, precision);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15238}15238 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15239}15239 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15240}15240 std::string ratio\_string<std::atto>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}a"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15241}15241 std::string ratio\_string<std::femto>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}f"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15242}15242 std::string ratio\_string<std::pico>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}p"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15243}15243 std::string ratio\_string<std::nano>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}n"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15244}15244 std::string ratio\_string<std::micro>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}u"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15245}15245 std::string ratio\_string<std::milli>::symbol() \{ \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}m"{}}; \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15246}15246 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15247}15247 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15248}15248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15249}15249 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15250}15250 \textcolor{preprocessor}{\#    pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15251}15251 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15252}15252 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15253}15253 \textcolor{comment}{// end catch\_tostring.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15254}15254 \textcolor{comment}{// start catch\_totals.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15255}15255 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15256}15256 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15257}15257 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15258}15258     Counts \mbox{\hyperlink{struct_catch_1_1_counts_aaa10666f559057e3e860d2a5a6fae4c4}{Counts::operator -\/ }}( Counts \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15259}15259         Counts diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15260}15260         diff.\mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}} = \mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}} -\/ other.\mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15261}15261         diff.failed = \mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}} -\/ other.\mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15262}15262         diff.failedButOk = \mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}} -\/ other.\mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15263}15263         \textcolor{keywordflow}{return} diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15264}15264     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15265}15265 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15266}15266     Counts\& \mbox{\hyperlink{struct_catch_1_1_counts_a0c4a2295b896e189cdf4663377e156df}{Counts::operator += }}( Counts \textcolor{keyword}{const}\& other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15267}15267         \mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}} += other.\mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15268}15268         \mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}} += other.\mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15269}15269         \mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}} += other.\mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15270}15270         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15271}15271     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15272}15272 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15273}15273     std::size\_t \mbox{\hyperlink{struct_catch_1_1_counts_a94f969c09cf52d1339c085c9603cd1d3}{Counts::total}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15274}15274         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_counts_ad28daaf3de28006400208b6dd0c631e6}{passed}} + \mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}} + \mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15275}15275     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15276}15276     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_counts_a84999490e0ecaa3de5e121bf48eda1b3}{Counts::allPassed}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15277}15277         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}} == 0 \&\& \mbox{\hyperlink{struct_catch_1_1_counts_ac090973a2ff51394cd452718e75c073e}{failedButOk}} == 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15278}15278     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15279}15279     \textcolor{keywordtype}{bool} \mbox{\hyperlink{struct_catch_1_1_counts_a33bd996e016030155b99fe1c51c08991}{Counts::allOk}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15280}15280         \textcolor{keywordflow}{return} \mbox{\hyperlink{struct_catch_1_1_counts_a19982a3817a3bc2c07f0290e71f497a3}{failed}} == 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15281}15281     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15282}15282 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15283}15283     Totals \mbox{\hyperlink{struct_catch_1_1_totals_a9279ed39139cb7e7b291918a6d08290e}{Totals::operator -\/ }}( Totals \textcolor{keyword}{const}\& other )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15284}15284         Totals diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15285}15285         diff.\mbox{\hyperlink{struct_catch_1_1_totals_a885ded66df752147b30c3d45aa602ec9}{assertions}} = \mbox{\hyperlink{struct_catch_1_1_totals_a885ded66df752147b30c3d45aa602ec9}{assertions}} -\/ other.\mbox{\hyperlink{struct_catch_1_1_totals_a885ded66df752147b30c3d45aa602ec9}{assertions}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15286}15286         diff.testCases = \mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}} -\/ other.\mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15287}15287         \textcolor{keywordflow}{return} diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15288}15288     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15289}15289 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15290}15290     Totals\& \mbox{\hyperlink{struct_catch_1_1_totals_aa809975b6055917ecb1b1ae7c25149a8}{Totals::operator += }}( Totals \textcolor{keyword}{const}\& other ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15291}15291         \mbox{\hyperlink{struct_catch_1_1_totals_a885ded66df752147b30c3d45aa602ec9}{assertions}} += other.\mbox{\hyperlink{struct_catch_1_1_totals_a885ded66df752147b30c3d45aa602ec9}{assertions}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15292}15292         \mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}} += other.\mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15293}15293         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15294}15294     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15295}15295 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15296}15296     Totals \mbox{\hyperlink{struct_catch_1_1_totals_a1a94a654f5f3786b75695e081fc9bca2}{Totals::delta}}( Totals \textcolor{keyword}{const}\& prevTotals )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15297}15297         Totals diff = *\textcolor{keyword}{this} -\/ prevTotals;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15298}15298         \textcolor{keywordflow}{if}( diff.assertions.failed > 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15299}15299             ++diff.\mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}}.failed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15300}15300         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( diff.assertions.failedButOk > 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15301}15301             ++diff.\mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}}.failedButOk;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15302}15302         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15303}15303             ++diff.\mbox{\hyperlink{struct_catch_1_1_totals_adb195fe477aedee2ecea88c888f16506}{testCases}}.passed;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15304}15304         \textcolor{keywordflow}{return} diff;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15305}15305     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15306}15306 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15307}15307 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15308}15308 \textcolor{comment}{// end catch\_totals.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15309}15309 \textcolor{comment}{// start catch\_uncaught\_exceptions.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15310}15310 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15311}15311 \textcolor{comment}{// start catch\_config\_uncaught\_exceptions.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15312}15312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15313}15313 \textcolor{comment}{//              Copyright Catch2 Authors}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15314}15314 \textcolor{comment}{// Distributed under the Boost Software License, Version 1.0.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15315}15315 \textcolor{comment}{//   (See accompanying file LICENSE\_1\_0.txt or copy at}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15316}15316 \textcolor{comment}{//        https://www.boost.org/LICENSE\_1\_0.txt)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15317}15317 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15318}15318 \textcolor{comment}{// SPDX-\/License-\/Identifier: BSL-\/1.0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15319}15319 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15320}15320 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_UNCAUGHT\_EXCEPTIONS\_HPP}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15321}15321 \textcolor{preprocessor}{\#define CATCH\_CONFIG\_UNCAUGHT\_EXCEPTIONS\_HPP}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15322}15322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15323}15323 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15324}15324 \textcolor{preprocessor}{\#  if \_MSC\_VER >= 1900 }\textcolor{comment}{// Visual Studio 2015 or newer}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15325}15325 \textcolor{preprocessor}{\#    define CATCH\_INTERNAL\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15326}15326 \textcolor{preprocessor}{\#  endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15327}15327 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15328}15328 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15329}15329 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15330}15330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15331}15331 \textcolor{preprocessor}{\#if defined(\_\_cpp\_lib\_uncaught\_exceptions) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15332}15332 \textcolor{preprocessor}{    \&\& !defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15333}15333 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15334}15334 \textcolor{preprocessor}{\#  define CATCH\_INTERNAL\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15335}15335 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_cpp\_lib\_uncaught\_exceptions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15336}15336 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15337}15337 \textcolor{preprocessor}{\#if defined(CATCH\_INTERNAL\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15338}15338 \textcolor{preprocessor}{    \&\& !defined(CATCH\_CONFIG\_NO\_CPP17\_UNCAUGHT\_EXCEPTIONS) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15339}15339 \textcolor{preprocessor}{    \&\& !defined(CATCH\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15340}15340 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15341}15341 \textcolor{preprocessor}{\#  define CATCH\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15342}15342 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15343}15343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15344}15344 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_UNCAUGHT\_EXCEPTIONS\_HPP}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15345}15345 \textcolor{comment}{// end catch\_config\_uncaught\_exceptions.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15346}15346 \textcolor{preprocessor}{\#include <exception>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15347}15347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15348}15348 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15349}15349     \textcolor{keywordtype}{bool} uncaught\_exceptions() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15350}15350 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_DISABLE\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15351}15351         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15352}15352 \textcolor{preprocessor}{\#elif defined(CATCH\_CONFIG\_CPP17\_UNCAUGHT\_EXCEPTIONS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15353}15353         \textcolor{keywordflow}{return} std::uncaught\_exceptions() > 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15354}15354 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15355}15355         \textcolor{keywordflow}{return} std::uncaught\_exception();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15356}15356 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15357}15357   \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15358}15358 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15359}15359 \textcolor{comment}{// end catch\_uncaught\_exceptions.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15360}15360 \textcolor{comment}{// start catch\_version.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15361}15361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15362}15362 \textcolor{preprocessor}{\#include <ostream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15363}15363 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15364}15364 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15365}15365 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15366}15366     Version::Version}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15367}15367         (   \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_majorVersion,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15368}15368             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_minorVersion,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15369}15369             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_patchNumber,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15370}15370             \textcolor{keywordtype}{char} \textcolor{keyword}{const} * \textcolor{keyword}{const} \_branchName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15371}15371             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_buildNumber )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15372}15372     :   majorVersion( \_majorVersion ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15373}15373         minorVersion( \_minorVersion ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15374}15374         patchNumber( \_patchNumber ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15375}15375         branchName( \_branchName ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15376}15376         buildNumber( \_buildNumber )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15377}15377     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15378}15378 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15379}15379     std::ostream\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}( std::ostream\& os, Version \textcolor{keyword}{const}\& version ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15380}15380         os  << version.majorVersion << \textcolor{charliteral}{'.'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15381}15381             << version.minorVersion << \textcolor{charliteral}{'.'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15382}15382             << version.patchNumber;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15383}15383         \textcolor{comment}{// branchName is never null -\/> 0th char is \(\backslash\)0 if it is empty}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15384}15384         \textcolor{keywordflow}{if} (version.branchName[0]) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15385}15385             os << \textcolor{charliteral}{'-\/'} << version.branchName}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15386}15386                << \textcolor{charliteral}{'.'} << version.buildNumber;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15387}15387         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15388}15388         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15389}15389     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15390}15390 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15391}15391     Version \textcolor{keyword}{const}\& libraryVersion() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15392}15392         \textcolor{keyword}{static} Version version( 2, 13, 10, \textcolor{stringliteral}{"{}"{}}, 0 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15393}15393         \textcolor{keywordflow}{return} version;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15394}15394     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15395}15395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15396}15396 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15397}15397 \textcolor{comment}{// end catch\_version.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15398}15398 \textcolor{comment}{// start catch\_wildcard\_pattern.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15399}15399 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15400}15400 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15401}15401 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15402}15402     WildcardPattern::WildcardPattern( std::string \textcolor{keyword}{const}\& pattern,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15403}15403                                       \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6a}{CaseSensitive::Choice}} caseSensitivity )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15404}15404     :   m\_caseSensitivity( caseSensitivity ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15405}15405         m\_pattern( normaliseString( pattern ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15406}15406     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15407}15407         \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( m\_pattern, \textcolor{charliteral}{'*'} ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15408}15408             m\_pattern = m\_pattern.substr( 1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15409}15409             m\_wildcard = WildcardAtStart;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15410}15410         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15411}15411         \textcolor{keywordflow}{if}( \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( m\_pattern, \textcolor{charliteral}{'*'} ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15412}15412             m\_pattern = m\_pattern.substr( 0, m\_pattern.size()-\/1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15413}15413             m\_wildcard = \textcolor{keyword}{static\_cast<}WildcardPosition\textcolor{keyword}{>}( m\_wildcard | WildcardAtEnd );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15414}15414         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15415}15415     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15416}15416 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15417}15417     \textcolor{keywordtype}{bool} WildcardPattern::matches( std::string \textcolor{keyword}{const}\& str )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15418}15418         \textcolor{keywordflow}{switch}( m\_wildcard ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15419}15419             \textcolor{keywordflow}{case} NoWildcard:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15420}15420                 \textcolor{keywordflow}{return} m\_pattern == normaliseString( str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15421}15421             \textcolor{keywordflow}{case} WildcardAtStart:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15422}15422                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_ada025504f627feaf9ac68ca391515dff}{endsWith}}( normaliseString( str ), m\_pattern );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15423}15423             \textcolor{keywordflow}{case} WildcardAtEnd:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15424}15424                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a695f62327be0676e046291eeaae15110}{startsWith}}( normaliseString( str ), m\_pattern );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15425}15425             \textcolor{keywordflow}{case} WildcardAtBothEnds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15426}15426                 \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_aa52974b0e426e7e2fbd725a900e9c36e}{contains}}( normaliseString( str ), m\_pattern );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15427}15427             \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15428}15428                 \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}( \textcolor{stringliteral}{"{}Unknown enum"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15429}15429         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15430}15430     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15431}15431 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15432}15432     std::string WildcardPattern::normaliseString( std::string \textcolor{keyword}{const}\& str )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15433}15433         \textcolor{keywordflow}{return} \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( m\_caseSensitivity == \mbox{\hyperlink{struct_catch_1_1_case_sensitive_aad49d3aee2d97066642fffa919685c6aaeabe15dea2b2d0ea0847e88a9b2a99eb}{CaseSensitive::No}} ? \mbox{\hyperlink{namespace_catch_ac036a17412d318598ffda8e1fe7a1177}{toLower}}( str ) : str );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15434}15434     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15435}15435 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15436}15436 \textcolor{comment}{// end catch\_wildcard\_pattern.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15437}15437 \textcolor{comment}{// start catch\_xmlwriter.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15438}15438 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15439}15439 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15440}15440 \textcolor{preprocessor}{\#include <type\_traits>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15441}15441 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15442}15442 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15443}15443 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15444}15444 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15445}15445 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15446}15446     \textcolor{keywordtype}{size\_t} trailingBytes(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15447}15447         \textcolor{keywordflow}{if} ((c \& 0xE0) == 0xC0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15448}15448             \textcolor{keywordflow}{return} 2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15449}15449         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15450}15450         \textcolor{keywordflow}{if} ((c \& 0xF0) == 0xE0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15451}15451             \textcolor{keywordflow}{return} 3;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15452}15452         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15453}15453         \textcolor{keywordflow}{if} ((c \& 0xF8) == 0xF0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15454}15454             \textcolor{keywordflow}{return} 4;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15455}15455         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15456}15456         \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}Invalid multibyte utf-\/8 start byte encountered"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15457}15457     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15458}15458 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15459}15459     uint32\_t headerValue(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15460}15460         \textcolor{keywordflow}{if} ((c \& 0xE0) == 0xC0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15461}15461             \textcolor{keywordflow}{return} c \& 0x1F;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15462}15462         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15463}15463         \textcolor{keywordflow}{if} ((c \& 0xF0) == 0xE0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15464}15464             \textcolor{keywordflow}{return} c \& 0x0F;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15465}15465         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15466}15466         \textcolor{keywordflow}{if} ((c \& 0xF8) == 0xF0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15467}15467             \textcolor{keywordflow}{return} c \& 0x07;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15468}15468         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15469}15469         \mbox{\hyperlink{catch2_2catch_8hpp_af445c1e136fadba0e92f3c22d68a7641}{CATCH\_INTERNAL\_ERROR}}(\textcolor{stringliteral}{"{}Invalid multibyte utf-\/8 start byte encountered"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15470}15470     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15471}15471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15472}15472     \textcolor{keywordtype}{void} hexEscapeChar(std::ostream\& os, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15473}15473         std::ios\_base::fmtflags f(os.flags());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15474}15474         os << \textcolor{stringliteral}{"{}\(\backslash\)\(\backslash\)x"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15475}15475             << std::uppercase << std::hex << std::setfill(\textcolor{charliteral}{'0'}) << std::setw(2)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15476}15476             << \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15477}15477         os.flags(f);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15478}15478     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15479}15479 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15480}15480     \textcolor{keywordtype}{bool} shouldNewline(XmlFormatting fmt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15481}15481         \textcolor{keywordflow}{return} !!(\textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(fmt \& XmlFormatting::Newline));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15482}15482     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15483}15483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15484}15484     \textcolor{keywordtype}{bool} shouldIndent(XmlFormatting fmt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15485}15485         \textcolor{keywordflow}{return} !!(\textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(fmt \& XmlFormatting::Indent));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15486}15486     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15487}15487 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15488}15488 \} \textcolor{comment}{// anonymous namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15489}15489 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15490}15490     XmlFormatting \mbox{\hyperlink{namespace_catch_ab32a083e442cc09f736327d2e2865999}{operator | }}(XmlFormatting lhs, XmlFormatting rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15491}15491         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}XmlFormatting\textcolor{keyword}{>}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15492}15492             \textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(lhs) |}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15493}15493             \textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(rhs)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15494}15494         );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15495}15495     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15496}15496 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15497}15497     XmlFormatting \mbox{\hyperlink{namespacekblib_abb6b875ecf3a38a03dcd0b15aca7a0ea}{operator \& }}(XmlFormatting lhs, XmlFormatting rhs) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15498}15498         \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}XmlFormatting\textcolor{keyword}{>}(}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15499}15499             \textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(lhs) \&}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15500}15500             \textcolor{keyword}{static\_cast<}std::underlying\_type<XmlFormatting>::type\textcolor{keyword}{>}(rhs)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15501}15501         );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15502}15502     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15503}15503 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15504}15504     XmlEncode::XmlEncode( std::string \textcolor{keyword}{const}\& str, ForWhat forWhat )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15505}15505     :   m\_str( str ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15506}15506         m\_forWhat( forWhat )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15507}15507     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15508}15508 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15509}15509     \textcolor{keywordtype}{void} XmlEncode::encodeTo( std::ostream\& os )\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15510}15510         \textcolor{comment}{// Apostrophe escaping not necessary if we always use "{} to write attributes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15511}15511         \textcolor{comment}{// (see: http://www.w3.org/TR/xml/\#syntax)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15512}15512 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15513}15513         \textcolor{keywordflow}{for}( std::size\_t idx = 0; idx < m\_str.size(); ++ idx ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15514}15514             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c = m\_str[idx];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15515}15515             \textcolor{keywordflow}{switch} (c) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15516}15516             \textcolor{keywordflow}{case} \textcolor{charliteral}{'<'}:   os << \textcolor{stringliteral}{"{}\&lt;"{}}; \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15517}15517             \textcolor{keywordflow}{case} \textcolor{charliteral}{'\&'}:   os << \textcolor{stringliteral}{"{}\&amp;"{}}; \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15518}15518 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15519}15519             \textcolor{keywordflow}{case} \textcolor{charliteral}{'>'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15520}15520                 \textcolor{comment}{// See: http://www.w3.org/TR/xml/\#syntax}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15521}15521                 \textcolor{keywordflow}{if} (idx > 2 \&\& m\_str[idx -\/ 1] == \textcolor{charliteral}{']'} \&\& m\_str[idx -\/ 2] == \textcolor{charliteral}{']'})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15522}15522                     os << \textcolor{stringliteral}{"{}\&gt;"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15523}15523                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15524}15524                     os << c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15525}15525                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15526}15526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15527}15527             \textcolor{keywordflow}{case} \textcolor{charliteral}{'\(\backslash\)"{}'}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15528}15528                 \textcolor{keywordflow}{if} (m\_forWhat == ForAttributes)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15529}15529                     os << \textcolor{stringliteral}{"{}\&quot;"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15530}15530                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15531}15531                     os << c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15532}15532                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15533}15533 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15534}15534             \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15535}15535                 \textcolor{comment}{// Check for control characters and invalid utf-\/8}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15536}15536 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15537}15537                 \textcolor{comment}{// Escape control characters in standard ascii}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15538}15538                 \textcolor{comment}{// see http://stackoverflow.com/questions/404107/why-\/are-\/control-\/characters-\/illegal-\/in-\/xml-\/1-\/0}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15539}15539                 \textcolor{keywordflow}{if} (c < 0x09 || (c > 0x0D \&\& c < 0x20) || c == 0x7F) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15540}15540                     hexEscapeChar(os, c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15541}15541                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15542}15542                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15543}15543 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15544}15544                 \textcolor{comment}{// Plain ASCII: Write it to stream}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15545}15545                 \textcolor{keywordflow}{if} (c < 0x7F) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15546}15546                     os << c;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15547}15547                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15548}15548                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15549}15549 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15550}15550                 \textcolor{comment}{// UTF-\/8 territory}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15551}15551                 \textcolor{comment}{// Check if the encoding is valid and if it is not, hex escape bytes.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15552}15552                 \textcolor{comment}{// Important: We do not check the exact decoded values for validity, only the encoding format}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15553}15553                 \textcolor{comment}{// First check that this bytes is a valid lead byte:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15554}15554                 \textcolor{comment}{// This means that it is not encoded as 1111 1XXX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15555}15555                 \textcolor{comment}{// Or as 10XX XXXX}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15556}15556                 \textcolor{keywordflow}{if} (c <  0xC0 ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15557}15557                     c >= 0xF8) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15558}15558                     hexEscapeChar(os, c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15559}15559                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15560}15560                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15561}15561 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15562}15562                 \textcolor{keyword}{auto} encBytes = trailingBytes(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15563}15563                 \textcolor{comment}{// Are there enough bytes left to avoid accessing out-\/of-\/bounds memory?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15564}15564                 \textcolor{keywordflow}{if} (idx + encBytes -\/ 1 >= m\_str.size()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15565}15565                     hexEscapeChar(os, c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15566}15566                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15567}15567                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15568}15568                 \textcolor{comment}{// The header is valid, check data}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15569}15569                 \textcolor{comment}{// The next encBytes bytes must together be a valid utf-\/8}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15570}15570                 \textcolor{comment}{// This means: bitpattern 10XX XXXX and the extracted value is sane (ish)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15571}15571                 \textcolor{keywordtype}{bool} valid = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15572}15572                 uint32\_t \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = headerValue(c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15573}15573                 \textcolor{keywordflow}{for} (std::size\_t n = 1; n < encBytes; ++n) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15574}15574                     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} nc = m\_str[idx + n];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15575}15575                     valid \&= ((nc \& 0xC0) == 0x80);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15576}15576                     \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} << 6) | (nc \& 0x3F);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15577}15577                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15578}15578 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15579}15579                 \textcolor{keywordflow}{if} (}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15580}15580                     \textcolor{comment}{// Wrong bit pattern of following bytes}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15581}15581                     (!valid) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15582}15582                     \textcolor{comment}{// Overlong encodings}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15583}15583                     (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} < 0x80) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15584}15584                     (0x80 <= \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} \&\& value < 0x800   \&\& encBytes > 2) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15585}15585                     (0x800 < \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} \&\& value < 0x10000 \&\& encBytes > 3) ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15586}15586                     \textcolor{comment}{// Encoded value out of range}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15587}15587                     (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} >= 0x110000)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15588}15588                     ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15589}15589                     hexEscapeChar(os, c);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15590}15590                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15591}15591                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15592}15592 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15593}15593                 \textcolor{comment}{// If we got here, this is in fact a valid(ish) utf-\/8 sequence}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15594}15594                 \textcolor{keywordflow}{for} (std::size\_t n = 0; n < encBytes; ++n) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15595}15595                     os << m\_str[idx + n];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15596}15596                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15597}15597                 idx += encBytes -\/ 1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15598}15598                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15599}15599             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15600}15600         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15601}15601     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15602}15602 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15603}15603     std::ostream\& \mbox{\hyperlink{catch_2catch_8hpp_aae0cdd5d2f0ac242b9ab18b0f66ba26e}{operator << }}( std::ostream\& os, XmlEncode \textcolor{keyword}{const}\& xmlEncode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15604}15604         xmlEncode.encodeTo( os );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15605}15605         \textcolor{keywordflow}{return} os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15606}15606     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15607}15607 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15608}15608     XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting fmt )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15609}15609     :   m\_writer( writer ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15610}15610         m\_fmt(fmt)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15611}15611     \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15612}15612 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15613}15613     XmlWriter::ScopedElement::ScopedElement( ScopedElement\&\& other ) noexcept}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15614}15614     :   m\_writer( other.m\_writer ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15615}15615         m\_fmt(other.m\_fmt)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15616}15616     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15617}15617         other.m\_writer = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15618}15618         other.m\_fmt = XmlFormatting::None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15619}15619     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15620}15620     XmlWriter::ScopedElement\& XmlWriter::ScopedElement::operator=( ScopedElement\&\& other ) \textcolor{keyword}{noexcept} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15621}15621         \textcolor{keywordflow}{if} ( m\_writer ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15622}15622             m\_writer-\/>endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15623}15623         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15624}15624         m\_writer = other.m\_writer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15625}15625         other.m\_writer = \textcolor{keyword}{nullptr};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15626}15626         m\_fmt = other.m\_fmt;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15627}15627         other.m\_fmt = XmlFormatting::None;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15628}15628         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15629}15629     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15630}15630 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15631}15631     XmlWriter::ScopedElement::\string~ScopedElement() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15632}15632         \textcolor{keywordflow}{if} (m\_writer) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15633}15633             m\_writer-\/>endElement(m\_fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15634}15634         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15635}15635     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15636}15636 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15637}15637     XmlWriter::ScopedElement\& XmlWriter::ScopedElement::writeText( std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15638}15638         m\_writer-\/>writeText( text, fmt );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15639}15639         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15640}15640     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15641}15641 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15642}15642     XmlWriter::XmlWriter( std::ostream\& os ) : m\_os( os )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15643}15643     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15644}15644         writeDeclaration();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15645}15645     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15646}15646 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15647}15647     XmlWriter::\string~XmlWriter() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15648}15648         \textcolor{keywordflow}{while} (!m\_tags.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15649}15649             endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15650}15650         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15651}15651         newlineIfNecessary();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15652}15652     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15653}15653 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15654}15654     XmlWriter\& XmlWriter::startElement( std::string \textcolor{keyword}{const}\& name, XmlFormatting fmt ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15655}15655         ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15656}15656         newlineIfNecessary();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15657}15657         \textcolor{keywordflow}{if} (shouldIndent(fmt)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15658}15658             m\_os << m\_indent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15659}15659             m\_indent += "{}  "{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15660}15660         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15661}15661         m\_os << \textcolor{charliteral}{'<'} << name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15662}15662         m\_tags.push\_back( name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15663}15663         m\_tagIsOpen = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15664}15664         applyFormatting(fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15665}15665         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15666}15666     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15667}15667 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15668}15668     XmlWriter::ScopedElement XmlWriter::scopedElement( std::string \textcolor{keyword}{const}\& name, XmlFormatting fmt ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15669}15669         ScopedElement scoped( \textcolor{keyword}{this}, fmt );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15670}15670         startElement( name, fmt );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15671}15671         \textcolor{keywordflow}{return} scoped;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15672}15672     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15673}15673 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15674}15674     XmlWriter\& XmlWriter::endElement(XmlFormatting fmt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15675}15675         m\_indent = m\_indent.substr(0, m\_indent.size() -\/ 2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15676}15676 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15677}15677         \textcolor{keywordflow}{if}( m\_tagIsOpen ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15678}15678             m\_os << \textcolor{stringliteral}{"{}/>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15679}15679             m\_tagIsOpen = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15680}15680         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15681}15681             newlineIfNecessary();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15682}15682             \textcolor{keywordflow}{if} (shouldIndent(fmt)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15683}15683                 m\_os << m\_indent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15684}15684             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15685}15685             m\_os << \textcolor{stringliteral}{"{}</"{}} << m\_tags.back() << \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15686}15686         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15687}15687         m\_os << std::flush;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15688}15688         applyFormatting(fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15689}15689         m\_tags.pop\_back();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15690}15690         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15691}15691     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15692}15692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15693}15693     XmlWriter\& XmlWriter::writeAttribute( std::string \textcolor{keyword}{const}\& name, std::string \textcolor{keyword}{const}\& attribute ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15694}15694         \textcolor{keywordflow}{if}( !name.empty() \&\& !attribute.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15695}15695             m\_os << \textcolor{charliteral}{' '} << name << \textcolor{stringliteral}{"{}=\(\backslash\)"{}"{}} << XmlEncode( attribute, XmlEncode::ForAttributes ) << \textcolor{charliteral}{'"{}'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15696}15696         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15697}15697     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15698}15698 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15699}15699     XmlWriter\& XmlWriter::writeAttribute( std::string \textcolor{keyword}{const}\& name, \textcolor{keywordtype}{bool} attribute ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15700}15700         m\_os << \textcolor{charliteral}{' '} << name << \textcolor{stringliteral}{"{}=\(\backslash\)"{}"{}} << ( attribute ? \textcolor{stringliteral}{"{}true"{}} : \textcolor{stringliteral}{"{}false"{}} ) << \textcolor{charliteral}{'"{}'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15701}15701         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15702}15702     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15703}15703 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15704}15704     XmlWriter\& XmlWriter::writeText( std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15705}15705         \textcolor{keywordflow}{if}( !text.empty() )\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15706}15706             \textcolor{keywordtype}{bool} tagWasOpen = m\_tagIsOpen;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15707}15707             ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15708}15708             \textcolor{keywordflow}{if} (tagWasOpen \&\& shouldIndent(fmt)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15709}15709                 m\_os << m\_indent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15710}15710             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15711}15711             m\_os << XmlEncode( text );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15712}15712             applyFormatting(fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15713}15713         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15714}15714         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15715}15715     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15716}15716 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15717}15717     XmlWriter\& XmlWriter::writeComment( std::string \textcolor{keyword}{const}\& text, XmlFormatting fmt) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15718}15718         ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15719}15719         \textcolor{keywordflow}{if} (shouldIndent(fmt)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15720}15720             m\_os << m\_indent;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15721}15721         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15722}15722         m\_os << \textcolor{stringliteral}{"{}<!-\/-\/"{}} << text << \textcolor{stringliteral}{"{}-\/-\/>"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15723}15723         applyFormatting(fmt);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15724}15724         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15725}15725     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15726}15726 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15727}15727     \textcolor{keywordtype}{void} XmlWriter::writeStylesheetRef( std::string \textcolor{keyword}{const}\& url ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15728}15728         m\_os << \textcolor{stringliteral}{"{}<?xml-\/stylesheet type=\(\backslash\)"{}text/xsl\(\backslash\)"{} href=\(\backslash\)"{}"{}} << url << \textcolor{stringliteral}{"{}\(\backslash\)"{}?>\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15729}15729     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15730}15730 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15731}15731     XmlWriter\& XmlWriter::writeBlankLine() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15732}15732         ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15733}15733         m\_os << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15734}15734         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15735}15735     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15736}15736 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15737}15737     \textcolor{keywordtype}{void} XmlWriter::ensureTagClosed() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15738}15738         \textcolor{keywordflow}{if}( m\_tagIsOpen ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15739}15739             m\_os << '>\textcolor{stringliteral}{' << std::flush;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15740}15740 \textcolor{stringliteral}{            newlineIfNecessary();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15741}15741 \textcolor{stringliteral}{            m\_tagIsOpen = false;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15742}15742 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15743}15743 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15744}15744 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15745}15745 \textcolor{stringliteral}{    void XmlWriter::applyFormatting(XmlFormatting fmt) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15746}15746 \textcolor{stringliteral}{        m\_needsNewline = shouldNewline(fmt);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15747}15747 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15748}15748 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15749}15749 \textcolor{stringliteral}{    void XmlWriter::writeDeclaration() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15750}15750 \textcolor{stringliteral}{        m\_os << "{}<?xml version=\(\backslash\)"{}1.0\(\backslash\)"{} encoding=\(\backslash\)"{}UTF-\/8\(\backslash\)"{}?>\(\backslash\)n"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15751}15751 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15752}15752 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15753}15753 \textcolor{stringliteral}{    void XmlWriter::newlineIfNecessary() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15754}15754 \textcolor{stringliteral}{        if( m\_needsNewline ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15755}15755 \textcolor{stringliteral}{            m\_os << std::endl;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15756}15756 \textcolor{stringliteral}{            m\_needsNewline = false;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15757}15757 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15758}15758 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15759}15759 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15760}15760 \textcolor{stringliteral}{// end catch\_xmlwriter.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15761}15761 \textcolor{stringliteral}{// start catch\_reporter\_bases.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15762}15762 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15763}15763 \textcolor{stringliteral}{\#include <cstring>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15764}15764 \textcolor{stringliteral}{\#include <cfloat>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15765}15765 \textcolor{stringliteral}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15766}15766 \textcolor{stringliteral}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15767}15767 \textcolor{stringliteral}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15768}15768 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15769}15769 \textcolor{stringliteral}{namespace Catch \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15770}15770 \textcolor{stringliteral}{    void prepareExpandedExpression(AssertionResult\& result) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15771}15771 \textcolor{stringliteral}{        result.getExpandedExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15772}15772 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15773}15773 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15774}15774 \textcolor{stringliteral}{    // Because formatting using c++ streams is stateful, drop down to C is required}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15775}15775 \textcolor{stringliteral}{    // Alternatively we could use stringstream, but its performance is... not good.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15776}15776 \textcolor{stringliteral}{    std::string getFormattedDuration( double duration ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15777}15777 \textcolor{stringliteral}{        // Max exponent + 1 is required to represent the whole part}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15778}15778 \textcolor{stringliteral}{        // + 1 for decimal point}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15779}15779 \textcolor{stringliteral}{        // + 3 for the 3 decimal places}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15780}15780 \textcolor{stringliteral}{        // + 1 for null terminator}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15781}15781 \textcolor{stringliteral}{        const std::size\_t maxDoubleSize = DBL\_MAX\_10\_EXP + 1 + 1 + 3 + 1;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15782}15782 \textcolor{stringliteral}{        char buffer[maxDoubleSize];}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15783}15783 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15784}15784 \textcolor{stringliteral}{        // Save previous errno, to prevent sprintf from overwriting it}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15785}15785 \textcolor{stringliteral}{        ErrnoGuard guard;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15786}15786 \textcolor{stringliteral}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15787}15787 \textcolor{stringliteral}{        sprintf\_s(buffer, "{}\%.3f"{}, duration);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15788}15788 \textcolor{stringliteral}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15789}15789 \textcolor{stringliteral}{        std::sprintf(buffer, "{}\%.3f"{}, duration);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15790}15790 \textcolor{stringliteral}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15791}15791 \textcolor{stringliteral}{        return std::string(buffer);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15792}15792 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15793}15793 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15794}15794 \textcolor{stringliteral}{    bool shouldShowDuration( IConfig const\& config, double duration ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15795}15795 \textcolor{stringliteral}{        if ( config.showDurations() == ShowDurations::Always ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15796}15796 \textcolor{stringliteral}{            return true;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15797}15797 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15798}15798 \textcolor{stringliteral}{        if ( config.showDurations() == ShowDurations::Never ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15799}15799 \textcolor{stringliteral}{            return false;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15800}15800 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15801}15801 \textcolor{stringliteral}{        const double min = config.minDuration();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15802}15802 \textcolor{stringliteral}{        return min >= 0 \&\& duration >= min;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15803}15803 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15804}15804 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15805}15805 \textcolor{stringliteral}{    std::string serializeFilters( std::vector<std::string> const\& container ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15806}15806 \textcolor{stringliteral}{        ReusableStringStream oss;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15807}15807 \textcolor{stringliteral}{        bool first = true;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15808}15808 \textcolor{stringliteral}{        for (auto\&\& filter : container)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15809}15809 \textcolor{stringliteral}{        \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15810}15810 \textcolor{stringliteral}{            if (!first)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15811}15811 \textcolor{stringliteral}{                oss << '} \textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15812}15812 \textcolor{stringliteral}{            else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15813}15813 \textcolor{stringliteral}{                first = false;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15814}15814 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15815}15815 \textcolor{stringliteral}{            oss << filter;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15816}15816 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15817}15817 \textcolor{stringliteral}{        return oss.str();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15818}15818 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15819}15819 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15820}15820 \textcolor{stringliteral}{    TestEventListenerBase::TestEventListenerBase(ReporterConfig const \& \_config)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15821}15821 \textcolor{stringliteral}{        :StreamingReporterBase(\_config) \{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15822}15822 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15823}15823 \textcolor{stringliteral}{    std::set<Verbosity> TestEventListenerBase::getSupportedVerbosities() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15824}15824 \textcolor{stringliteral}{        return \{ Verbosity::Quiet, Verbosity::Normal, Verbosity::High \};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15825}15825 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15826}15826 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15827}15827 \textcolor{stringliteral}{    void TestEventListenerBase::assertionStarting(AssertionInfo const \&) \{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15828}15828 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15829}15829 \textcolor{stringliteral}{    bool TestEventListenerBase::assertionEnded(AssertionStats const \&) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15830}15830 \textcolor{stringliteral}{        return false;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15831}15831 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15832}15832 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15833}15833 \textcolor{stringliteral}{\} // end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15834}15834 \textcolor{stringliteral}{// end catch\_reporter\_bases.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15835}15835 \textcolor{stringliteral}{// start catch\_reporter\_compact.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15836}15836 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15837}15837 \textcolor{stringliteral}{namespace \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15838}15838 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15839}15839 \textcolor{stringliteral}{\#ifdef CATCH\_PLATFORM\_MAC}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15840}15840 \textcolor{stringliteral}{    const char* failedString() \{ return "{}FAILED"{}; \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15841}15841 \textcolor{stringliteral}{    const char* passedString() \{ return "{}PASSED"{}; \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15842}15842 \textcolor{stringliteral}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15843}15843 \textcolor{stringliteral}{    const char* failedString() \{ return "{}failed"{}; \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15844}15844 \textcolor{stringliteral}{    const char* passedString() \{ return "{}passed"{}; \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15845}15845 \textcolor{stringliteral}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15846}15846 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15847}15847 \textcolor{stringliteral}{    // Colour::LightGrey}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15848}15848 \textcolor{stringliteral}{    Catch::Colour::Code dimColour() \{ return Catch::Colour::FileName; \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15849}15849 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15850}15850 \textcolor{stringliteral}{    std::string bothOrAll( std::size\_t count ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15851}15851 \textcolor{stringliteral}{        return count == 1 ? std::string() :}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15852}15852 \textcolor{stringliteral}{               count == 2 ? "{}both "{} : "{}all "{} ;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15853}15853 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15854}15854 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15855}15855 \textcolor{stringliteral}{\} // anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15856}15856 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15857}15857 \textcolor{stringliteral}{namespace Catch \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15858}15858 \textcolor{stringliteral}{namespace \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15859}15859 \textcolor{stringliteral}{// Colour, message variants:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15860}15860 \textcolor{stringliteral}{// -\/ white: No tests ran.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15861}15861 \textcolor{stringliteral}{// -\/   red: Failed [both/all] N test cases, failed [both/all] M assertions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15862}15862 \textcolor{stringliteral}{// -\/ white: Passed [both/all] N test cases (no assertions).}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15863}15863 \textcolor{stringliteral}{// -\/   red: Failed N tests cases, failed M assertions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15864}15864 \textcolor{stringliteral}{// -\/ green: Passed [both/all] N tests cases with M assertions.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15865}15865 \textcolor{stringliteral}{void printTotals(std::ostream\& out, const Totals\& totals) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15866}15866 \textcolor{stringliteral}{    if (totals.testCases.total() == 0) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15867}15867 \textcolor{stringliteral}{        out << "{}No tests ran."{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15868}15868 \textcolor{stringliteral}{    \} else if (totals.testCases.failed == totals.testCases.total()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15869}15869 \textcolor{stringliteral}{        Colour colour(Colour::ResultError);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15870}15870 \textcolor{stringliteral}{        const std::string qualify\_assertions\_failed =}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15871}15871 \textcolor{stringliteral}{            totals.assertions.failed == totals.assertions.total() ?}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15872}15872 \textcolor{stringliteral}{            bothOrAll(totals.assertions.failed) : std::string();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15873}15873 \textcolor{stringliteral}{        out <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15874}15874 \textcolor{stringliteral}{            "{}Failed "{} << bothOrAll(totals.testCases.failed)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15875}15875 \textcolor{stringliteral}{            << pluralise(totals.testCases.failed, "{}test case"{}) << "{}, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15876}15876 \textcolor{stringliteral}{            "{}failed "{} << qualify\_assertions\_failed <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15877}15877 \textcolor{stringliteral}{            pluralise(totals.assertions.failed, "{}assertion"{}) << '}.\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15878}15878 \textcolor{stringliteral}{    \} else if (totals.assertions.total() == 0) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15879}15879 \textcolor{stringliteral}{        out <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15880}15880 \textcolor{stringliteral}{            "{}Passed "{} << bothOrAll(totals.testCases.total())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15881}15881 \textcolor{stringliteral}{            << pluralise(totals.testCases.total(), "{}test case"{})}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15882}15882 \textcolor{stringliteral}{            << "{} (no assertions)."{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15883}15883 \textcolor{stringliteral}{    \} else if (totals.assertions.failed) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15884}15884 \textcolor{stringliteral}{        Colour colour(Colour::ResultError);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15885}15885 \textcolor{stringliteral}{        out <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15886}15886 \textcolor{stringliteral}{            "{}Failed "{} << pluralise(totals.testCases.failed, "{}test case"{}) << "{}, "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15887}15887 \textcolor{stringliteral}{            "{}failed "{} << pluralise(totals.assertions.failed, "{}assertion"{}) << '}.\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15888}15888 \textcolor{stringliteral}{    \} else \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15889}15889 \textcolor{stringliteral}{        Colour colour(Colour::ResultSuccess);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15890}15890 \textcolor{stringliteral}{        out <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15891}15891 \textcolor{stringliteral}{            "{}Passed "{} << bothOrAll(totals.testCases.passed)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15892}15892 \textcolor{stringliteral}{            << pluralise(totals.testCases.passed, "{}test case"{}) <<}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15893}15893 \textcolor{stringliteral}{            "{} with "{} << pluralise(totals.assertions.passed, "{}assertion"{}) << '}.\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15894}15894 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15895}15895 \textcolor{stringliteral}{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15896}15896 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15897}15897 \textcolor{stringliteral}{// Implementation of CompactReporter formatting}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15898}15898 \textcolor{stringliteral}{class AssertionPrinter \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15899}15899 \textcolor{stringliteral}{public:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15900}15900 \textcolor{stringliteral}{    AssertionPrinter\& operator= (AssertionPrinter const\&) = delete;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15901}15901 \textcolor{stringliteral}{    AssertionPrinter(AssertionPrinter const\&) = delete;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15902}15902 \textcolor{stringliteral}{    AssertionPrinter(std::ostream\& \_stream, AssertionStats const\& \_stats, bool \_printInfoMessages)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15903}15903 \textcolor{stringliteral}{        : stream(\_stream)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15904}15904 \textcolor{stringliteral}{        , result(\_stats.assertionResult)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15905}15905 \textcolor{stringliteral}{        , messages(\_stats.infoMessages)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15906}15906 \textcolor{stringliteral}{        , itMessage(\_stats.infoMessages.begin())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15907}15907 \textcolor{stringliteral}{        , printInfoMessages(\_printInfoMessages) \{\}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15908}15908 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15909}15909 \textcolor{stringliteral}{    void print() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15910}15910 \textcolor{stringliteral}{        printSourceInfo();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15911}15911 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15912}15912 \textcolor{stringliteral}{        itMessage = messages.begin();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15913}15913 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15914}15914 \textcolor{stringliteral}{        switch (result.getResultType()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15915}15915 \textcolor{stringliteral}{        case ResultWas::Ok:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15916}15916 \textcolor{stringliteral}{            printResultType(Colour::ResultSuccess, passedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15917}15917 \textcolor{stringliteral}{            printOriginalExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15918}15918 \textcolor{stringliteral}{            printReconstructedExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15919}15919 \textcolor{stringliteral}{            if (!result.hasExpression())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15920}15920 \textcolor{stringliteral}{                printRemainingMessages(Colour::None);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15921}15921 \textcolor{stringliteral}{            else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15922}15922 \textcolor{stringliteral}{                printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15923}15923 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15924}15924 \textcolor{stringliteral}{        case ResultWas::ExpressionFailed:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15925}15925 \textcolor{stringliteral}{            if (result.isOk())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15926}15926 \textcolor{stringliteral}{                printResultType(Colour::ResultSuccess, failedString() + std::string("{} -\/ but was ok"{}));}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15927}15927 \textcolor{stringliteral}{            else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15928}15928 \textcolor{stringliteral}{                printResultType(Colour::Error, failedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15929}15929 \textcolor{stringliteral}{            printOriginalExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15930}15930 \textcolor{stringliteral}{            printReconstructedExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15931}15931 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15932}15932 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15933}15933 \textcolor{stringliteral}{        case ResultWas::ThrewException:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15934}15934 \textcolor{stringliteral}{            printResultType(Colour::Error, failedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15935}15935 \textcolor{stringliteral}{            printIssue("{}unexpected exception with message:"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15936}15936 \textcolor{stringliteral}{            printMessage();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15937}15937 \textcolor{stringliteral}{            printExpressionWas();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15938}15938 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15939}15939 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15940}15940 \textcolor{stringliteral}{        case ResultWas::FatalErrorCondition:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15941}15941 \textcolor{stringliteral}{            printResultType(Colour::Error, failedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15942}15942 \textcolor{stringliteral}{            printIssue("{}fatal error condition with message:"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15943}15943 \textcolor{stringliteral}{            printMessage();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15944}15944 \textcolor{stringliteral}{            printExpressionWas();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15945}15945 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15946}15946 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15947}15947 \textcolor{stringliteral}{        case ResultWas::DidntThrowException:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15948}15948 \textcolor{stringliteral}{            printResultType(Colour::Error, failedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15949}15949 \textcolor{stringliteral}{            printIssue("{}expected exception, got none"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15950}15950 \textcolor{stringliteral}{            printExpressionWas();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15951}15951 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15952}15952 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15953}15953 \textcolor{stringliteral}{        case ResultWas::Info:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15954}15954 \textcolor{stringliteral}{            printResultType(Colour::None, "{}info"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15955}15955 \textcolor{stringliteral}{            printMessage();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15956}15956 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15957}15957 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15958}15958 \textcolor{stringliteral}{        case ResultWas::Warning:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15959}15959 \textcolor{stringliteral}{            printResultType(Colour::None, "{}warning"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15960}15960 \textcolor{stringliteral}{            printMessage();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15961}15961 \textcolor{stringliteral}{            printRemainingMessages();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15962}15962 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15963}15963 \textcolor{stringliteral}{        case ResultWas::ExplicitFailure:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15964}15964 \textcolor{stringliteral}{            printResultType(Colour::Error, failedString());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15965}15965 \textcolor{stringliteral}{            printIssue("{}explicitly"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15966}15966 \textcolor{stringliteral}{            printRemainingMessages(Colour::None);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15967}15967 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15968}15968 \textcolor{stringliteral}{            // These cases are here to prevent compiler warnings}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15969}15969 \textcolor{stringliteral}{        case ResultWas::Unknown:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15970}15970 \textcolor{stringliteral}{        case ResultWas::FailureBit:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15971}15971 \textcolor{stringliteral}{        case ResultWas::Exception:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15972}15972 \textcolor{stringliteral}{            printResultType(Colour::Error, "{}** internal error **"{});}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15973}15973 \textcolor{stringliteral}{            break;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15974}15974 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15975}15975 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15976}15976 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15977}15977 \textcolor{stringliteral}{private:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15978}15978 \textcolor{stringliteral}{    void printSourceInfo() const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15979}15979 \textcolor{stringliteral}{        Colour colourGuard(Colour::FileName);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15980}15980 \textcolor{stringliteral}{        stream << result.getSourceInfo() << '}:\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15981}15981 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15982}15982 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15983}15983 \textcolor{stringliteral}{    void printResultType(Colour::Code colour, std::string const\& passOrFail) const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15984}15984 \textcolor{stringliteral}{        if (!passOrFail.empty()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15985}15985 \textcolor{stringliteral}{            \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15986}15986 \textcolor{stringliteral}{                Colour colourGuard(colour);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15987}15987 \textcolor{stringliteral}{                stream << '} \textcolor{stringliteral}{' << passOrFail;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15988}15988 \textcolor{stringliteral}{            \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15989}15989 \textcolor{stringliteral}{            stream << '}:\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15990}15990 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15991}15991 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15992}15992 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15993}15993 \textcolor{stringliteral}{    void printIssue(std::string const\& issue) const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15994}15994 \textcolor{stringliteral}{        stream << '} \textcolor{stringliteral}{' << issue;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15995}15995 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15996}15996 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15997}15997 \textcolor{stringliteral}{    void printExpressionWas() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15998}15998 \textcolor{stringliteral}{        if (result.hasExpression()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l15999}15999 \textcolor{stringliteral}{            stream << '};\textcolor{stringliteral}{';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16000}16000 \textcolor{stringliteral}{            \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16001}16001 \textcolor{stringliteral}{                Colour colour(dimColour());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16002}16002 \textcolor{stringliteral}{                stream << "{} expression was:"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16003}16003 \textcolor{stringliteral}{            \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16004}16004 \textcolor{stringliteral}{            printOriginalExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16005}16005 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16006}16006 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16007}16007 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16008}16008 \textcolor{stringliteral}{    void printOriginalExpression() const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16009}16009 \textcolor{stringliteral}{        if (result.hasExpression()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16010}16010 \textcolor{stringliteral}{            stream << '} \textcolor{stringliteral}{' << result.getExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16011}16011 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16012}16012 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16013}16013 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16014}16014 \textcolor{stringliteral}{    void printReconstructedExpression() const \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16015}16015 \textcolor{stringliteral}{        if (result.hasExpandedExpression()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16016}16016 \textcolor{stringliteral}{            \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16017}16017 \textcolor{stringliteral}{                Colour colour(dimColour());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16018}16018 \textcolor{stringliteral}{                stream << "{} for: "{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16019}16019 \textcolor{stringliteral}{            \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16020}16020 \textcolor{stringliteral}{            stream << result.getExpandedExpression();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16021}16021 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16022}16022 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16023}16023 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16024}16024 \textcolor{stringliteral}{    void printMessage() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16025}16025 \textcolor{stringliteral}{        if (itMessage != messages.end()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16026}16026 \textcolor{stringliteral}{            stream << "{} '}\textcolor{stringliteral}{"{} << itMessage-\/>message << '\(\backslash\)'';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16027}16027 \textcolor{stringliteral}{            ++itMessage;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16028}16028 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16029}16029 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16030}16030 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16031}16031 \textcolor{stringliteral}{    void printRemainingMessages(Colour::Code colour = dimColour()) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16032}16032 \textcolor{stringliteral}{        if (itMessage == messages.end())}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16033}16033 \textcolor{stringliteral}{            return;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16034}16034 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16035}16035 \textcolor{stringliteral}{        const auto itEnd = messages.cend();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16036}16036 \textcolor{stringliteral}{        const auto N = static\_cast<std::size\_t>(std::distance(itMessage, itEnd));}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16037}16037 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16038}16038 \textcolor{stringliteral}{        \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16039}16039 \textcolor{stringliteral}{            Colour colourGuard(colour);}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16040}16040 \textcolor{stringliteral}{            stream << "{}} with \textcolor{stringliteral}{"{} << pluralise(N, "{}}message\textcolor{stringliteral}{"{}) << ':';}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16041}16041 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16042}16042 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16043}16043 \textcolor{stringliteral}{        while (itMessage != itEnd) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16044}16044 \textcolor{stringliteral}{            // If this assertion is a warning ignore any INFO messages}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16045}16045 \textcolor{stringliteral}{            if (printInfoMessages || itMessage-\/>type != ResultWas::Info) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16046}16046 \textcolor{stringliteral}{                printMessage();}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16047}16047 \textcolor{stringliteral}{                if (itMessage != itEnd) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16048}16048 \textcolor{stringliteral}{                    Colour colourGuard(dimColour());}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16049}16049 \textcolor{stringliteral}{                    stream << "{}} and\textcolor{stringliteral}{"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16050}16050 \textcolor{stringliteral}{                \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16051}16051 \textcolor{stringliteral}{                continue;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16052}16052 \textcolor{stringliteral}{            \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16053}16053 \textcolor{stringliteral}{            ++itMessage;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16054}16054 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16055}16055 \textcolor{stringliteral}{    \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16056}16056 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16057}16057 \textcolor{stringliteral}{private:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16058}16058 \textcolor{stringliteral}{    std::ostream\& stream;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16059}16059 \textcolor{stringliteral}{    AssertionResult const\& result;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16060}16060 \textcolor{stringliteral}{    std::vector<MessageInfo> messages;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16061}16061 \textcolor{stringliteral}{    std::vector<MessageInfo>::const\_iterator itMessage;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16062}16062 \textcolor{stringliteral}{    bool printInfoMessages;}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16063}16063 \textcolor{stringliteral}{\};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16064}16064 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16065}16065 \textcolor{stringliteral}{\} // anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16066}16066 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16067}16067 \textcolor{stringliteral}{        std::string CompactReporter::getDescription() \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16068}16068 \textcolor{stringliteral}{            return "{}}Reports \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}} results on \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} single line, suitable \textcolor{keywordflow}{for} IDEs\textcolor{stringliteral}{"{};}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16069}16069 \textcolor{stringliteral}{        \}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16070}16070 \textcolor{stringliteral}{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16071}16071 \textcolor{stringliteral}{        void CompactReporter::noMatchingTestCases( std::string const\& spec ) \{}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16072}16072 \textcolor{stringliteral}{            stream << "{}}No \mbox{\hyperlink{main_8cpp_a87feefefd3868afd53b1f40314e0dce0}{test}} cases matched \textcolor{stringliteral}{'"{} << spec << '}\(\backslash\)\textcolor{stringliteral}{''} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16073}16073         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16074}16074 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16075}16075         \textcolor{keywordtype}{void} CompactReporter::assertionStarting( AssertionInfo \textcolor{keyword}{const}\& ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16076}16076 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16077}16077         \textcolor{keywordtype}{bool} CompactReporter::assertionEnded( AssertionStats \textcolor{keyword}{const}\& \_assertionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16078}16078             AssertionResult \textcolor{keyword}{const}\& result = \_assertionStats.assertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16079}16079 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16080}16080             \textcolor{keywordtype}{bool} printInfoMessages = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16081}16081 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16082}16082             \textcolor{comment}{// Drop out if result was successful and we're not printing those}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16083}16083             \textcolor{keywordflow}{if}( !m\_config-\/>includeSuccessfulResults() \&\& result.isOk() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16084}16084                 \textcolor{keywordflow}{if}( result.getResultType() != \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16085}16085                     \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16086}16086                 printInfoMessages = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16087}16087             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16088}16088 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16089}16089             AssertionPrinter printer( stream, \_assertionStats, printInfoMessages );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16090}16090             printer.print();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16091}16091 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16092}16092             stream << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16093}16093             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16094}16094         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16095}16095 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16096}16096         \textcolor{keywordtype}{void} CompactReporter::sectionEnded(SectionStats \textcolor{keyword}{const}\& \_sectionStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16097}16097             \textcolor{keywordtype}{double} dur = \_sectionStats.durationInSeconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16098}16098             \textcolor{keywordflow}{if} ( shouldShowDuration( *m\_config, dur ) ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16099}16099                 stream << getFormattedDuration( dur ) << \textcolor{stringliteral}{"{} s: "{}} << \_sectionStats.sectionInfo.name << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16100}16100             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16101}16101         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16102}16102 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16103}16103         \textcolor{keywordtype}{void} CompactReporter::testRunEnded( TestRunStats \textcolor{keyword}{const}\& \_testRunStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16104}16104             printTotals( stream, \_testRunStats.totals );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16105}16105             stream << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16106}16106             StreamingReporterBase::testRunEnded( \_testRunStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16107}16107         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16108}16108 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16109}16109         CompactReporter::\string~CompactReporter() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16110}16110 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16111}16111     CATCH\_REGISTER\_REPORTER( \textcolor{stringliteral}{"{}compact"{}}, CompactReporter )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16112}16112 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16113}16113 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16114}16114 \textcolor{comment}{// end catch\_reporter\_compact.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16115}16115 \textcolor{comment}{// start catch\_reporter\_console.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16116}16116 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16117}16117 \textcolor{preprocessor}{\#include <cfloat>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16118}16118 \textcolor{preprocessor}{\#include <cstdio>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16119}16119 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16120}16120 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16121}16121 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16122}16122 \textcolor{preprocessor}{\#pragma warning(disable:4061) }\textcolor{comment}{// Not all labels are EXPLICITLY handled in switch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16123}16123  \textcolor{comment}{// Note that 4062 (not all labels are handled and default is missing) is enabled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16124}16124 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16125}16125 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16126}16126 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16127}16127 \textcolor{preprocessor}{\#  pragma clang diagnostic push}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16128}16128 \textcolor{comment}{// For simplicity, benchmarking-\/only helpers are always enabled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16129}16129 \textcolor{preprocessor}{\#  pragma clang diagnostic ignored "{}-\/Wunused-\/function"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16130}16130 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16131}16131 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16132}16132 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16133}16133 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16134}16134 \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16135}16135 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16136}16136 \textcolor{comment}{// Formatter impl for ConsoleReporter}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16137}16137 \textcolor{keyword}{class }ConsoleAssertionPrinter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16138}16138 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16139}16139     ConsoleAssertionPrinter\& operator= (ConsoleAssertionPrinter \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16140}16140     ConsoleAssertionPrinter(ConsoleAssertionPrinter \textcolor{keyword}{const}\&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16141}16141     ConsoleAssertionPrinter(std::ostream\& \_stream, AssertionStats \textcolor{keyword}{const}\& \_stats, \textcolor{keywordtype}{bool} \_printInfoMessages)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16142}16142         : stream(\_stream),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16143}16143         stats(\_stats),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16144}16144         result(\_stats.assertionResult),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16145}16145         colour(Colour::None),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16146}16146         message(result.getMessage()),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16147}16147         messages(\_stats.infoMessages),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16148}16148         printInfoMessages(\_printInfoMessages) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16149}16149         \textcolor{keywordflow}{switch} (result.getResultType()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16150}16150         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16151}16151             colour = Colour::Success;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16152}16152             passOrFail = \textcolor{stringliteral}{"{}PASSED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16153}16153             \textcolor{comment}{//if( result.hasMessage() )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16154}16154             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() == 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16155}16155                 messageLabel = \textcolor{stringliteral}{"{}with message"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16156}16156             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() > 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16157}16157                 messageLabel = \textcolor{stringliteral}{"{}with messages"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16158}16158             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16159}16159         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7062ac2bdea77a68bac4675c4315570}{ResultWas::ExpressionFailed}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16160}16160             \textcolor{keywordflow}{if} (result.isOk()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16161}16161                 colour = Colour::Success;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16162}16162                 passOrFail = \textcolor{stringliteral}{"{}FAILED -\/ but was ok"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16163}16163             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16164}16164                 colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16165}16165                 passOrFail = \textcolor{stringliteral}{"{}FAILED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16166}16166             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16167}16167             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() == 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16168}16168                 messageLabel = \textcolor{stringliteral}{"{}with message"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16169}16169             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() > 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16170}16170                 messageLabel = \textcolor{stringliteral}{"{}with messages"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16171}16171             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16172}16172         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16173}16173             colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16174}16174             passOrFail = \textcolor{stringliteral}{"{}FAILED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16175}16175             messageLabel = \textcolor{stringliteral}{"{}due to unexpected exception with "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16176}16176             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() == 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16177}16177                 messageLabel += "{}message"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16178}16178             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() > 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16179}16179                 messageLabel += "{}messages"{};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16180}16180             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16181}16181         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7f0c2afadf75d1d24bf8729ebd32cee}{ResultWas::FatalErrorCondition}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16182}16182             colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16183}16183             passOrFail = \textcolor{stringliteral}{"{}FAILED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16184}16184             messageLabel = \textcolor{stringliteral}{"{}due to a fatal error condition"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16185}16185             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16186}16186         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa982f9c220de9fb76881da3bbf22b1a85}{ResultWas::DidntThrowException}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16187}16187             colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16188}16188             passOrFail = \textcolor{stringliteral}{"{}FAILED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16189}16189             messageLabel = \textcolor{stringliteral}{"{}because no exception was thrown where one was expected"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16190}16190             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16191}16191         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16192}16192             messageLabel = \textcolor{stringliteral}{"{}info"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16193}16193             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16194}16194         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16195}16195             messageLabel = \textcolor{stringliteral}{"{}warning"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16196}16196             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16197}16197         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa0c08e9a7cc2a689bfb86ca3a6cfc6444}{ResultWas::ExplicitFailure}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16198}16198             passOrFail = \textcolor{stringliteral}{"{}FAILED"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16199}16199             colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16200}16200             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() == 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16201}16201                 messageLabel = \textcolor{stringliteral}{"{}explicitly with message"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16202}16202             \textcolor{keywordflow}{if} (\_stats.infoMessages.size() > 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16203}16203                 messageLabel = \textcolor{stringliteral}{"{}explicitly with messages"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16204}16204             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16205}16205             \textcolor{comment}{// These cases are here to prevent compiler warnings}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16206}16206         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa18b7bfef24524824dc1acf3ff5bccd9e}{ResultWas::Unknown}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16207}16207         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{ResultWas::FailureBit}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16208}16208         \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa94b8ecf31cd791e2e4ddc46f25e3aaf4}{ResultWas::Exception}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16209}16209             passOrFail = \textcolor{stringliteral}{"{}** internal error **"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16210}16210             colour = Colour::Error;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16211}16211             \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16212}16212         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16213}16213     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16214}16214 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16215}16215     \textcolor{keywordtype}{void} \mbox{\hyperlink{structprint}{print}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16216}16216         printSourceInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16217}16217         \textcolor{keywordflow}{if} (stats.totals.assertions.total() > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16218}16218             printResultType();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16219}16219             printOriginalExpression();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16220}16220             printReconstructedExpression();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16221}16221         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16222}16222             stream << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16223}16223         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16224}16224         printMessage();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16225}16225     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16226}16226 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16227}16227 \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16228}16228     \textcolor{keywordtype}{void} printResultType()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16229}16229         \textcolor{keywordflow}{if} (!passOrFail.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16230}16230             Colour colourGuard(colour);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16231}16231             stream << passOrFail << \textcolor{stringliteral}{"{}:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16232}16232         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16233}16233     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16234}16234     \textcolor{keywordtype}{void} printOriginalExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16235}16235         \textcolor{keywordflow}{if} (result.hasExpression()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16236}16236             Colour colourGuard(Colour::OriginalExpression);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16237}16237             stream << \textcolor{stringliteral}{"{}  "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16238}16238             stream << result.getExpressionInMacro();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16239}16239             stream << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16240}16240         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16241}16241     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16242}16242     \textcolor{keywordtype}{void} printReconstructedExpression()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16243}16243         \textcolor{keywordflow}{if} (result.hasExpandedExpression()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16244}16244             stream << \textcolor{stringliteral}{"{}with expansion:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16245}16245             Colour colourGuard(Colour::ReconstructedExpression);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16246}16246             stream << Column(result.getExpandedExpression()).indent(2) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16247}16247         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16248}16248     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16249}16249     \textcolor{keywordtype}{void} printMessage()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16250}16250         \textcolor{keywordflow}{if} (!messageLabel.empty())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16251}16251             stream << messageLabel << \textcolor{charliteral}{':'} << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16252}16252         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& msg : messages) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16253}16253             \textcolor{comment}{// If this assertion is a warning ignore any INFO messages}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16254}16254             \textcolor{keywordflow}{if} (printInfoMessages || msg.type != \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16255}16255                 stream << Column(msg.message).indent(2) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16256}16256         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16257}16257     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16258}16258     \textcolor{keywordtype}{void} printSourceInfo()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16259}16259         Colour colourGuard(Colour::FileName);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16260}16260         stream << result.getSourceInfo() << \textcolor{stringliteral}{"{}: "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16261}16261     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16262}16262 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16263}16263     std::ostream\& stream;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16264}16264     AssertionStats \textcolor{keyword}{const}\& stats;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16265}16265     AssertionResult \textcolor{keyword}{const}\& result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16266}16266     Colour::Code colour;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16267}16267     std::string passOrFail;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16268}16268     std::string messageLabel;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16269}16269     std::string message;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16270}16270     std::vector<MessageInfo> messages;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16271}16271     \textcolor{keywordtype}{bool} printInfoMessages;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16272}16272 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16273}16273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16274}16274 std::size\_t makeRatio(std::size\_t number, std::size\_t total) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16275}16275     std::size\_t ratio = total > 0 ? CATCH\_CONFIG\_CONSOLE\_WIDTH * number / total : 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16276}16276     \textcolor{keywordflow}{return} (ratio == 0 \&\& number > 0) ? 1 : ratio;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16277}16277 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16278}16278 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16279}16279 std::size\_t\& findMax(std::size\_t\& i, std::size\_t\& j, std::size\_t\& \mbox{\hyperlink{structk}{k}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16280}16280     \textcolor{keywordflow}{if} (i > j \&\& i > \mbox{\hyperlink{structk}{k}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16281}16281         \textcolor{keywordflow}{return} i;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16282}16282     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (j > \mbox{\hyperlink{structk}{k}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16283}16283         \textcolor{keywordflow}{return} j;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16284}16284     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16285}16285         \textcolor{keywordflow}{return} \mbox{\hyperlink{structk}{k}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16286}16286 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16287}16287 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16288}16288 \textcolor{keyword}{struct }ColumnInfo \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16289}16289     \textcolor{keyword}{enum} Justification \{ Left, Right \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16290}16290     std::string name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16291}16291     \textcolor{keywordtype}{int} width;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16292}16292     Justification justification;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16293}16293 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16294}16294 \textcolor{keyword}{struct }ColumnBreak \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16295}16295 \textcolor{keyword}{struct }RowBreak \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16296}16296 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16297}16297 \textcolor{keyword}{class }Duration \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16298}16298     \textcolor{keyword}{enum class} Unit \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16299}16299         Auto,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16300}16300         Nanoseconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16301}16301         Microseconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16302}16302         Milliseconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16303}16303         Seconds,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16304}16304         Minutes}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16305}16305     \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16306}16306     \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t s\_nanosecondsInAMicrosecond = 1000;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16307}16307     \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t s\_nanosecondsInAMillisecond = 1000 * s\_nanosecondsInAMicrosecond;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16308}16308     \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t s\_nanosecondsInASecond = 1000 * s\_nanosecondsInAMillisecond;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16309}16309     \textcolor{keyword}{static} \textcolor{keyword}{const} uint64\_t s\_nanosecondsInAMinute = 60 * s\_nanosecondsInASecond;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16310}16310 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16311}16311     \textcolor{keywordtype}{double} m\_inNanoseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16312}16312     Unit m\_units;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16313}16313 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16314}16314 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16315}16315     \textcolor{keyword}{explicit} Duration(\textcolor{keywordtype}{double} inNanoseconds, Unit units = Unit::Auto)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16316}16316         : m\_inNanoseconds(inNanoseconds),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16317}16317         m\_units(units) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16318}16318         \textcolor{keywordflow}{if} (m\_units == Unit::Auto) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16319}16319             \textcolor{keywordflow}{if} (m\_inNanoseconds < s\_nanosecondsInAMicrosecond)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16320}16320                 m\_units = Unit::Nanoseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16321}16321             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (m\_inNanoseconds < s\_nanosecondsInAMillisecond)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16322}16322                 m\_units = Unit::Microseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16323}16323             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (m\_inNanoseconds < s\_nanosecondsInASecond)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16324}16324                 m\_units = Unit::Milliseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16325}16325             \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (m\_inNanoseconds < s\_nanosecondsInAMinute)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16326}16326                 m\_units = Unit::Seconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16327}16327             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16328}16328                 m\_units = Unit::Minutes;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16329}16329         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16330}16330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16331}16331     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16332}16332 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16333}16333     \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}() const -\/> \textcolor{keywordtype}{double} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16334}16334         \textcolor{keywordflow}{switch} (m\_units) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16335}16335         \textcolor{keywordflow}{case} Unit::Microseconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16336}16336             \textcolor{keywordflow}{return} m\_inNanoseconds / \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(s\_nanosecondsInAMicrosecond);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16337}16337         \textcolor{keywordflow}{case} Unit::Milliseconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16338}16338             \textcolor{keywordflow}{return} m\_inNanoseconds / \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(s\_nanosecondsInAMillisecond);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16339}16339         \textcolor{keywordflow}{case} Unit::Seconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16340}16340             \textcolor{keywordflow}{return} m\_inNanoseconds / \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(s\_nanosecondsInASecond);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16341}16341         \textcolor{keywordflow}{case} Unit::Minutes:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16342}16342             \textcolor{keywordflow}{return} m\_inNanoseconds / \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{double}\textcolor{keyword}{>}(s\_nanosecondsInAMinute);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16343}16343         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16344}16344             \textcolor{keywordflow}{return} m\_inNanoseconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16345}16345         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16346}16346     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16347}16347     \textcolor{keyword}{auto} unitsAsString() const -\/> \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16348}16348         \textcolor{keywordflow}{switch} (m\_units) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16349}16349         \textcolor{keywordflow}{case} Unit::Nanoseconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16350}16350             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}ns"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16351}16351         \textcolor{keywordflow}{case} Unit::Microseconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16352}16352             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}us"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16353}16353         \textcolor{keywordflow}{case} Unit::Milliseconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16354}16354             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}ms"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16355}16355         \textcolor{keywordflow}{case} Unit::Seconds:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16356}16356             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}s"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16357}16357         \textcolor{keywordflow}{case} Unit::Minutes:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16358}16358             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}m"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16359}16359         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16360}16360             \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}** internal error **"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16361}16361         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16362}16362 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16363}16363     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16364}16364     \textcolor{keyword}{friend} \textcolor{keyword}{auto} \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(std::ostream\& os, Duration \textcolor{keyword}{const}\& duration) -\/> std::ostream\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16365}16365         \textcolor{keywordflow}{return} os << duration.value() << \textcolor{charliteral}{' '} << duration.unitsAsString();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16366}16366     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16367}16367 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16368}16368 \} \textcolor{comment}{// end anon namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16369}16369 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16370}16370 \textcolor{keyword}{class }TablePrinter \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16371}16371     std::ostream\& m\_os;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16372}16372     std::vector<ColumnInfo> m\_columnInfos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16373}16373     std::ostringstream m\_oss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16374}16374     \textcolor{keywordtype}{int} m\_currentColumn = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16375}16375     \textcolor{keywordtype}{bool} m\_isOpen = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16376}16376 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16377}16377 \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16378}16378     TablePrinter( std::ostream\& os, std::vector<ColumnInfo> columnInfos )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16379}16379     :   m\_os( os ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16380}16380         m\_columnInfos( \mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}( columnInfos ) ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16381}16381 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16382}16382     \textcolor{keyword}{auto} columnInfos() const -\/> \mbox{\hyperlink{namespacestd}{std}}::vector<ColumnInfo> const\& \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16383}16383         \textcolor{keywordflow}{return} m\_columnInfos;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16384}16384     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16385}16385 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16386}16386     \textcolor{keywordtype}{void} open() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16387}16387         \textcolor{keywordflow}{if} (!m\_isOpen) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16388}16388             m\_isOpen = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16389}16389             *\textcolor{keyword}{this} << RowBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16390}16390 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16391}16391          Columns headerCols;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16392}16392          Spacer spacer(2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16393}16393          \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& info : m\_columnInfos) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16394}16394             headerCols += Column(info.name).width(static\_cast<\mbox{\hyperlink{namespacestd}{std}}::size\_t>(info.width -\/ 2));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16395}16395             headerCols += spacer;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16396}16396          \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16397}16397          m\_os << headerCols << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16398}16398 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16399}16399             m\_os << Catch::getLineOfChars<\textcolor{charliteral}{'-\/'}>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16400}16400         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16401}16401     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16402}16402     \textcolor{keywordtype}{void} close() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16403}16403         \textcolor{keywordflow}{if} (m\_isOpen) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16404}16404             *\textcolor{keyword}{this} << RowBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16405}16405             m\_os << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16406}16406             m\_isOpen = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16407}16407         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16408}16408     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16409}16409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16410}16410     \textcolor{keyword}{template}<\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16411}16411     \textcolor{keyword}{friend} TablePrinter\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(TablePrinter\& tp, T \textcolor{keyword}{const}\& \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16412}16412         tp.m\_oss << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16413}16413         \textcolor{keywordflow}{return} tp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16414}16414     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16415}16415 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16416}16416     \textcolor{keyword}{friend} TablePrinter\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(TablePrinter\& tp, ColumnBreak) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16417}16417         \textcolor{keyword}{auto} colStr = tp.m\_oss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16418}16418         \textcolor{keyword}{const} \textcolor{keyword}{auto} strSize = colStr.size();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16419}16419         tp.m\_oss.str(\textcolor{stringliteral}{"{}"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16420}16420         tp.open();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16421}16421         \textcolor{keywordflow}{if} (tp.m\_currentColumn == \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{int}\textcolor{keyword}{>}(tp.m\_columnInfos.size() -\/ 1)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16422}16422             tp.m\_currentColumn = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16423}16423             tp.m\_os << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16424}16424         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16425}16425         tp.m\_currentColumn++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16426}16426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16427}16427         \textcolor{keyword}{auto} colInfo = tp.m\_columnInfos[tp.m\_currentColumn];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16428}16428         \textcolor{keyword}{auto} padding = (strSize + 1 < static\_cast<\mbox{\hyperlink{namespacestd}{std}}::size\_t>(colInfo.width))}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16429}16429             ? std::string(colInfo.width -\/ (strSize + 1), ' ')}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16430}16430             : std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16431}16431         \textcolor{keywordflow}{if} (colInfo.justification == ColumnInfo::Left)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16432}16432             tp.m\_os << colStr << padding << \textcolor{charliteral}{' '};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16433}16433         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16434}16434             tp.m\_os << padding << colStr << \textcolor{charliteral}{' '};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16435}16435         \textcolor{keywordflow}{return} tp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16436}16436     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16437}16437 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16438}16438     \textcolor{keyword}{friend} TablePrinter\& \mbox{\hyperlink{namespace_catch_a8c8ea1f66bc1cdc3e1254ed7fa57c06d}{operator << }}(TablePrinter\& tp, RowBreak) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16439}16439         \textcolor{keywordflow}{if} (tp.m\_currentColumn > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16440}16440             tp.m\_os << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16441}16441             tp.m\_currentColumn = -\/1;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16442}16442         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16443}16443         \textcolor{keywordflow}{return} tp;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16444}16444     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16445}16445 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16446}16446 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16447}16447 ConsoleReporter::ConsoleReporter(ReporterConfig \textcolor{keyword}{const}\& config)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16448}16448     : StreamingReporterBase(config),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16449}16449     m\_tablePrinter(new TablePrinter(config.stream(),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16450}16450         [\&config]() -\/> \mbox{\hyperlink{namespacestd}{std}}::vector<ColumnInfo> \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16451}16451         \textcolor{keywordflow}{if} (config.fullConfig()-\/>benchmarkNoAnalysis())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16452}16452         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16453}16453             \textcolor{keywordflow}{return}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16454}16454                 \{ \textcolor{stringliteral}{"{}benchmark name"{}}, CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ 43, ColumnInfo::Left \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16455}16455                 \{ \textcolor{stringliteral}{"{}     samples"{}}, 14, ColumnInfo::Right \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16456}16456                 \{ \textcolor{stringliteral}{"{}  iterations"{}}, 14, ColumnInfo::Right \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16457}16457                 \{ \textcolor{stringliteral}{"{}        mean"{}}, 14, ColumnInfo::Right \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16458}16458             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16459}16459         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16460}16460         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16461}16461         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16462}16462             \textcolor{keywordflow}{return}\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16463}16463                 \{ \textcolor{stringliteral}{"{}benchmark name"{}}, CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ 43, ColumnInfo::Left \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16464}16464                 \{ \textcolor{stringliteral}{"{}samples      mean       std dev"{}}, 14, ColumnInfo::Right \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16465}16465                 \{ \textcolor{stringliteral}{"{}iterations   low mean   low std dev"{}}, 14, ColumnInfo::Right \},}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16466}16466                 \{ \textcolor{stringliteral}{"{}estimated    high mean  high std dev"{}}, 14, ColumnInfo::Right \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16467}16467             \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16468}16468         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16469}16469     \}())) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16470}16470 ConsoleReporter::\string~ConsoleReporter() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16471}16471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16472}16472 std::string ConsoleReporter::getDescription() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16473}16473     \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Reports test results as plain lines of text"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16474}16474 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16475}16475 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16476}16476 \textcolor{keywordtype}{void} ConsoleReporter::noMatchingTestCases(std::string \textcolor{keyword}{const}\& spec) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16477}16477     stream << \textcolor{stringliteral}{"{}No test cases matched '"{}} << spec << \textcolor{charliteral}{'\(\backslash\)''} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16478}16478 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16479}16479 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16480}16480 \textcolor{keywordtype}{void} ConsoleReporter::reportInvalidArguments(std::string \textcolor{keyword}{const}\&arg)\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16481}16481     stream << \textcolor{stringliteral}{"{}Invalid Filter: "{}} << arg << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16482}16482 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16483}16483 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16484}16484 \textcolor{keywordtype}{void} ConsoleReporter::assertionStarting(AssertionInfo \textcolor{keyword}{const}\&) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16485}16485 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16486}16486 \textcolor{keywordtype}{bool} ConsoleReporter::assertionEnded(AssertionStats \textcolor{keyword}{const}\& \_assertionStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16487}16487     AssertionResult \textcolor{keyword}{const}\& result = \_assertionStats.assertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16488}16488 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16489}16489     \textcolor{keywordtype}{bool} includeResults = m\_config-\/>includeSuccessfulResults() || !result.isOk();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16490}16490 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16491}16491     \textcolor{comment}{// Drop out if result was successful but we're not printing them.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16492}16492     \textcolor{keywordflow}{if} (!includeResults \&\& result.getResultType() != \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16493}16493         \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16494}16494 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16495}16495     lazyPrint();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16496}16496 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16497}16497     ConsoleAssertionPrinter printer(stream, \_assertionStats, includeResults);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16498}16498     printer.print();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16499}16499     stream << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16500}16500     \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16501}16501 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16502}16502 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16503}16503 \textcolor{keywordtype}{void} ConsoleReporter::sectionStarting(SectionInfo \textcolor{keyword}{const}\& \_sectionInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16504}16504     m\_tablePrinter-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16505}16505     m\_headerPrinted = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16506}16506     StreamingReporterBase::sectionStarting(\_sectionInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16507}16507 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16508}16508 \textcolor{keywordtype}{void} ConsoleReporter::sectionEnded(SectionStats \textcolor{keyword}{const}\& \_sectionStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16509}16509     m\_tablePrinter-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16510}16510     \textcolor{keywordflow}{if} (\_sectionStats.missingAssertions) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16511}16511         lazyPrint();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16512}16512         Colour colour(Colour::ResultError);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16513}16513         \textcolor{keywordflow}{if} (m\_sectionStack.size() > 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16514}16514             stream << \textcolor{stringliteral}{"{}\(\backslash\)nNo assertions in section"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16515}16515         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16516}16516             stream << \textcolor{stringliteral}{"{}\(\backslash\)nNo assertions in test case"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16517}16517         stream << \textcolor{stringliteral}{"{} '"{}} << \_sectionStats.sectionInfo.name << \textcolor{stringliteral}{"{}'\(\backslash\)n"{}} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16518}16518     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16519}16519     \textcolor{keywordtype}{double} dur = \_sectionStats.durationInSeconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16520}16520     \textcolor{keywordflow}{if} (shouldShowDuration(*m\_config, dur)) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16521}16521         stream << getFormattedDuration(dur) << \textcolor{stringliteral}{"{} s: "{}} << \_sectionStats.sectionInfo.name << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16522}16522     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16523}16523     \textcolor{keywordflow}{if} (m\_headerPrinted) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16524}16524         m\_headerPrinted = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16525}16525     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16526}16526     StreamingReporterBase::sectionEnded(\_sectionStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16527}16527 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16528}16528 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16529}16529 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16530}16530 \textcolor{keywordtype}{void} ConsoleReporter::benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16531}16531    lazyPrintWithoutClosingBenchmarkTable();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16532}16532 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16533}16533    \textcolor{keyword}{auto} nameCol = Column(name).width(\textcolor{keyword}{static\_cast<}std::size\_t\textcolor{keyword}{>}(m\_tablePrinter-\/>columnInfos()[0].width -\/ 2));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16534}16534 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16535}16535    \textcolor{keywordtype}{bool} firstLine = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16536}16536    \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} line : nameCol) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16537}16537       \textcolor{keywordflow}{if} (!firstLine)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16538}16538          (*m\_tablePrinter) << ColumnBreak() << ColumnBreak() << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16539}16539       \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16540}16540          firstLine = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16541}16541 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16542}16542       (*m\_tablePrinter) << line << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16543}16543    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16544}16544 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16545}16545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16546}16546 \textcolor{keywordtype}{void} ConsoleReporter::benchmarkStarting(BenchmarkInfo \textcolor{keyword}{const}\& info) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16547}16547     (*m\_tablePrinter) << info.samples << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16548}16548         << info.iterations << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16549}16549     \textcolor{keywordflow}{if} (!m\_config-\/>benchmarkNoAnalysis())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16550}16550         (*m\_tablePrinter) << Duration(info.estimatedDuration) << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16551}16551 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16552}16552 \textcolor{keywordtype}{void} ConsoleReporter::benchmarkEnded(BenchmarkStats<> \textcolor{keyword}{const}\& stats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16553}16553     \textcolor{keywordflow}{if} (m\_config-\/>benchmarkNoAnalysis())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16554}16554     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16555}16555         (*m\_tablePrinter) << Duration(stats.mean.point.count()) << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16556}16556     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16557}16557     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16558}16558     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16559}16559         (*m\_tablePrinter) << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16560}16560             << Duration(stats.mean.point.count()) << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16561}16561             << Duration(stats.mean.lower\_bound.count()) << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16562}16562             << Duration(stats.mean.upper\_bound.count()) << ColumnBreak() << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16563}16563             << Duration(stats.standardDeviation.point.count()) << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16564}16564             << Duration(stats.standardDeviation.lower\_bound.count()) << ColumnBreak()}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16565}16565             << Duration(stats.standardDeviation.upper\_bound.count()) << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16566}16566     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16567}16567 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16568}16568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16569}16569 \textcolor{keywordtype}{void} ConsoleReporter::benchmarkFailed(std::string \textcolor{keyword}{const}\& error) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16570}16570    Colour colour(Colour::Red);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16571}16571     (*m\_tablePrinter)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16572}16572         << \textcolor{stringliteral}{"{}Benchmark failed ("{}} << error << \textcolor{charliteral}{')'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16573}16573         << ColumnBreak() << RowBreak();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16574}16574 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16575}16575 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16576}16576 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16577}16577 \textcolor{keywordtype}{void} ConsoleReporter::testCaseEnded(TestCaseStats \textcolor{keyword}{const}\& \_testCaseStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16578}16578     m\_tablePrinter-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16579}16579     StreamingReporterBase::testCaseEnded(\_testCaseStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16580}16580     m\_headerPrinted = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16581}16581 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16582}16582 \textcolor{keywordtype}{void} ConsoleReporter::testGroupEnded(TestGroupStats \textcolor{keyword}{const}\& \_testGroupStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16583}16583     \textcolor{keywordflow}{if} (currentGroupInfo.used) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16584}16584         printSummaryDivider();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16585}16585         stream << \textcolor{stringliteral}{"{}Summary for group '"{}} << \_testGroupStats.groupInfo.name << \textcolor{stringliteral}{"{}':\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16586}16586         printTotals(\_testGroupStats.totals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16587}16587         stream << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16588}16588     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16589}16589     StreamingReporterBase::testGroupEnded(\_testGroupStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16590}16590 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16591}16591 \textcolor{keywordtype}{void} ConsoleReporter::testRunEnded(TestRunStats \textcolor{keyword}{const}\& \_testRunStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16592}16592     printTotalsDivider(\_testRunStats.totals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16593}16593     printTotals(\_testRunStats.totals);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16594}16594     stream << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16595}16595     StreamingReporterBase::testRunEnded(\_testRunStats);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16596}16596 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16597}16597 \textcolor{keywordtype}{void} ConsoleReporter::testRunStarting(TestRunInfo \textcolor{keyword}{const}\& \_testInfo) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16598}16598     StreamingReporterBase::testRunStarting(\_testInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16599}16599     printTestFilters();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16600}16600 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16601}16601 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16602}16602 \textcolor{keywordtype}{void} ConsoleReporter::lazyPrint() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16603}16603 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16604}16604     m\_tablePrinter-\/>close();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16605}16605     lazyPrintWithoutClosingBenchmarkTable();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16606}16606 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16607}16607 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16608}16608 \textcolor{keywordtype}{void} ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16609}16609 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16610}16610     \textcolor{keywordflow}{if} (!currentTestRunInfo.used)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16611}16611         lazyPrintRunInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16612}16612     \textcolor{keywordflow}{if} (!currentGroupInfo.used)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16613}16613         lazyPrintGroupInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16614}16614 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16615}16615     \textcolor{keywordflow}{if} (!m\_headerPrinted) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16616}16616         printTestCaseAndSectionHeader();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16617}16617         m\_headerPrinted = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16618}16618     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16619}16619 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16620}16620 \textcolor{keywordtype}{void} ConsoleReporter::lazyPrintRunInfo() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16621}16621     stream << '\(\backslash\)n' << getLineOfChars<'\string~'>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16622}16622     Colour colour(Colour::SecondaryText);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16623}16623     stream << currentTestRunInfo-\/>name}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16624}16624         << \textcolor{stringliteral}{"{} is a Catch v"{}} << libraryVersion() << \textcolor{stringliteral}{"{} host application.\(\backslash\)n"{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16625}16625         << \textcolor{stringliteral}{"{}Run with -\/? for options\(\backslash\)n\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16626}16626 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16627}16627     \textcolor{keywordflow}{if} (m\_config-\/>rngSeed() != 0)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16628}16628         stream << \textcolor{stringliteral}{"{}Randomness seeded to: "{}} << m\_config-\/>rngSeed() << \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16629}16629 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16630}16630     currentTestRunInfo.used = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16631}16631 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16632}16632 \textcolor{keywordtype}{void} ConsoleReporter::lazyPrintGroupInfo() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16633}16633     \textcolor{keywordflow}{if} (!currentGroupInfo-\/>name.empty() \&\& currentGroupInfo-\/>groupsCounts > 1) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16634}16634         printClosedHeader(\textcolor{stringliteral}{"{}Group: "{}} + currentGroupInfo-\/>name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16635}16635         currentGroupInfo.used = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16636}16636     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16637}16637 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16638}16638 \textcolor{keywordtype}{void} ConsoleReporter::printTestCaseAndSectionHeader() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16639}16639     assert(!m\_sectionStack.empty());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16640}16640     printOpenHeader(currentTestCaseInfo-\/>name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16641}16641 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16642}16642     \textcolor{keywordflow}{if} (m\_sectionStack.size() > 1) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16643}16643         Colour colourGuard(Colour::Headers);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16644}16644 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16645}16645         \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16646}16646             it = m\_sectionStack.begin() + 1, \textcolor{comment}{// Skip first section (test case)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16647}16647             itEnd = m\_sectionStack.end();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16648}16648         \textcolor{keywordflow}{for} (; it != itEnd; ++it)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16649}16649             printHeaderString(it-\/>name, 2);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16650}16650     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16651}16651 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16652}16652     SourceLineInfo lineInfo = m\_sectionStack.back().lineInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16653}16653 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16654}16654     stream << getLineOfChars<\textcolor{charliteral}{'-\/'}>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16655}16655     Colour colourGuard(Colour::FileName);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16656}16656     stream << lineInfo << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16657}16657     stream << getLineOfChars<\textcolor{charliteral}{'.'}>() << \textcolor{charliteral}{'\(\backslash\)n'} << std::endl;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16658}16658 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16659}16659 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16660}16660 \textcolor{keywordtype}{void} ConsoleReporter::printClosedHeader(std::string \textcolor{keyword}{const}\& \_name) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16661}16661     printOpenHeader(\_name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16662}16662     stream << getLineOfChars<\textcolor{charliteral}{'.'}>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16663}16663 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16664}16664 \textcolor{keywordtype}{void} ConsoleReporter::printOpenHeader(std::string \textcolor{keyword}{const}\& \_name) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16665}16665     stream << getLineOfChars<\textcolor{charliteral}{'-\/'}>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16666}16666     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16667}16667         Colour colourGuard(Colour::Headers);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16668}16668         printHeaderString(\_name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16669}16669     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16670}16670 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16671}16671 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16672}16672 \textcolor{comment}{// if string has a : in first line will set indent to follow it on}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16673}16673 \textcolor{comment}{// subsequent lines}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16674}16674 \textcolor{keywordtype}{void} ConsoleReporter::printHeaderString(std::string \textcolor{keyword}{const}\& \_string, std::size\_t indent) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16675}16675     std::size\_t i = \_string.find(\textcolor{stringliteral}{"{}: "{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16676}16676     \textcolor{keywordflow}{if} (i != std::string::npos)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16677}16677         i += 2;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16678}16678     \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16679}16679         i = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16680}16680     stream << Column(\_string).indent(indent + i).initialIndent(indent) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16681}16681 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16682}16682 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16683}16683 \textcolor{keyword}{struct }SummaryColumn \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16684}16684 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16685}16685     SummaryColumn( std::string \_label, Colour::Code \_colour )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16686}16686     :   label( \mbox{\hyperlink{namespacestd}{std}}::\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}}( \_label ) ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16687}16687         colour( \_colour ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16688}16688     SummaryColumn addRow( std::size\_t count ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16689}16689         ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16690}16690         rss << count;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16691}16691         std::string row = rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16692}16692         \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& oldRow : rows) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16693}16693             \textcolor{keywordflow}{while} (oldRow.size() < row.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16694}16694                 oldRow = \textcolor{charliteral}{' '} + oldRow;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16695}16695             \textcolor{keywordflow}{while} (oldRow.size() > row.size())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16696}16696                 row = \textcolor{charliteral}{' '} + row;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16697}16697         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16698}16698         rows.push\_back(row);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16699}16699         \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16700}16700     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16701}16701 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16702}16702     std::string label;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16703}16703     Colour::Code colour;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16704}16704     std::vector<std::string> rows;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16705}16705 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16706}16706 \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16707}16707 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16708}16708 \textcolor{keywordtype}{void} ConsoleReporter::printTotals( Totals \textcolor{keyword}{const}\& totals ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16709}16709     \textcolor{keywordflow}{if} (totals.testCases.total() == 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16710}16710         stream << Colour(Colour::Warning) << \textcolor{stringliteral}{"{}No tests ran\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16711}16711     \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (totals.assertions.total() > 0 \&\& totals.testCases.allPassed()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16712}16712         stream << Colour(Colour::ResultSuccess) << \textcolor{stringliteral}{"{}All tests passed"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16713}16713         stream << \textcolor{stringliteral}{"{} ("{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16714}16714             << pluralise(totals.assertions.passed, \textcolor{stringliteral}{"{}assertion"{}}) << \textcolor{stringliteral}{"{} in "{}}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16715}16715             << pluralise(totals.testCases.passed, \textcolor{stringliteral}{"{}test case"{}}) << \textcolor{charliteral}{')'}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16716}16716             << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16717}16717     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16718}16718 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16719}16719         std::vector<SummaryColumn> columns;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16720}16720         columns.push\_back(SummaryColumn(\textcolor{stringliteral}{"{}"{}}, Colour::None)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16721}16721                           .addRow(totals.testCases.total())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16722}16722                           .addRow(totals.assertions.total()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16723}16723         columns.push\_back(SummaryColumn(\textcolor{stringliteral}{"{}passed"{}}, Colour::Success)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16724}16724                           .addRow(totals.testCases.passed)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16725}16725                           .addRow(totals.assertions.passed));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16726}16726         columns.push\_back(SummaryColumn(\textcolor{stringliteral}{"{}failed"{}}, Colour::ResultError)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16727}16727                           .addRow(totals.testCases.failed)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16728}16728                           .addRow(totals.assertions.failed));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16729}16729         columns.push\_back(SummaryColumn(\textcolor{stringliteral}{"{}failed as expected"{}}, Colour::ResultExpectedFailure)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16730}16730                           .addRow(totals.testCases.failedButOk)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16731}16731                           .addRow(totals.assertions.failedButOk));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16732}16732 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16733}16733         printSummaryRow(\textcolor{stringliteral}{"{}test cases"{}}, columns, 0);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16734}16734         printSummaryRow(\textcolor{stringliteral}{"{}assertions"{}}, columns, 1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16735}16735     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16736}16736 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16737}16737 \textcolor{keywordtype}{void} ConsoleReporter::printSummaryRow(std::string \textcolor{keyword}{const}\& label, std::vector<SummaryColumn> \textcolor{keyword}{const}\& cols, std::size\_t row) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16738}16738     \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} col : cols) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16739}16739         std::string \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} = col.rows[row];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16740}16740         \textcolor{keywordflow}{if} (col.label.empty()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16741}16741             stream << label << \textcolor{stringliteral}{"{}: "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16742}16742             \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} != \textcolor{stringliteral}{"{}0"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16743}16743                 stream << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16744}16744             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16745}16745                 stream << Colour(Colour::Warning) << \textcolor{stringliteral}{"{}-\/ none -\/"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16746}16746         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} != \textcolor{stringliteral}{"{}0"{}}) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16747}16747             stream << Colour(Colour::LightGrey) << \textcolor{stringliteral}{"{} | "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16748}16748             stream << Colour(col.colour)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16749}16749                 << \mbox{\hyperlink{namespace_catch_1_1_generators_a3b2efc97978cf37951b75394aae1a3fb}{value}} << \textcolor{charliteral}{' '} << col.label;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16750}16750         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16751}16751     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16752}16752     stream << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16753}16753 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16754}16754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16755}16755 \textcolor{keywordtype}{void} ConsoleReporter::printTotalsDivider(Totals \textcolor{keyword}{const}\& totals) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16756}16756     \textcolor{keywordflow}{if} (totals.testCases.total() > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16757}16757         std::size\_t failedRatio = makeRatio(totals.testCases.failed, totals.testCases.total());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16758}16758         std::size\_t failedButOkRatio = makeRatio(totals.testCases.failedButOk, totals.testCases.total());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16759}16759         std::size\_t passedRatio = makeRatio(totals.testCases.passed, totals.testCases.total());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16760}16760         \textcolor{keywordflow}{while} (failedRatio + failedButOkRatio + passedRatio < CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16761}16761             findMax(failedRatio, failedButOkRatio, passedRatio)++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16762}16762         \textcolor{keywordflow}{while} (failedRatio + failedButOkRatio + passedRatio > CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ 1)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16763}16763             findMax(failedRatio, failedButOkRatio, passedRatio)-\/-\/;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16764}16764 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16765}16765         stream << Colour(Colour::Error) << std::string(failedRatio, \textcolor{charliteral}{'='});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16766}16766         stream << Colour(Colour::ResultExpectedFailure) << std::string(failedButOkRatio, \textcolor{charliteral}{'='});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16767}16767         \textcolor{keywordflow}{if} (totals.testCases.allPassed())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16768}16768             stream << Colour(Colour::ResultSuccess) << std::string(passedRatio, \textcolor{charliteral}{'='});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16769}16769         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16770}16770             stream << Colour(Colour::Success) << std::string(passedRatio, \textcolor{charliteral}{'='});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16771}16771     \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16772}16772         stream << Colour(Colour::Warning) << std::string(CATCH\_CONFIG\_CONSOLE\_WIDTH -\/ 1, \textcolor{charliteral}{'='});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16773}16773     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16774}16774     stream << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16775}16775 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16776}16776 \textcolor{keywordtype}{void} ConsoleReporter::printSummaryDivider() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16777}16777     stream << getLineOfChars<\textcolor{charliteral}{'-\/'}>() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16778}16778 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16779}16779 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16780}16780 \textcolor{keywordtype}{void} ConsoleReporter::printTestFilters() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16781}16781     \textcolor{keywordflow}{if} (m\_config-\/>testSpec().hasFilters()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16782}16782         Colour guard(Colour::BrightYellow);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16783}16783         stream << \textcolor{stringliteral}{"{}Filters: "{}} << serializeFilters(m\_config-\/>getTestsOrTags()) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16784}16784     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16785}16785 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16786}16786 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16787}16787 CATCH\_REGISTER\_REPORTER(\textcolor{stringliteral}{"{}console"{}}, ConsoleReporter)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16788}16788 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16789}16789 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16790}16790 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16791}16791 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16792}16792 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16793}16793 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16794}16794 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16795}16795 \textcolor{preprocessor}{\#if defined(\_\_clang\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16796}16796 \textcolor{preprocessor}{\#  pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16797}16797 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16798}16798 \textcolor{comment}{// end catch\_reporter\_console.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16799}16799 \textcolor{comment}{// start catch\_reporter\_junit.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16800}16800 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16801}16801 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16802}16802 \textcolor{preprocessor}{\#include <sstream>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16803}16803 \textcolor{preprocessor}{\#include <ctime>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16804}16804 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16805}16805 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16806}16806 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16807}16807 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16808}16808 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16809}16809     \textcolor{keyword}{namespace }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16810}16810         std::string getCurrentTimestamp() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16811}16811             \textcolor{comment}{// Beware, this is not reentrant because of backward compatibility issues}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16812}16812             \textcolor{comment}{// Also, UTC only, again because of backward compatibility (\%z is C++11)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16813}16813             time\_t rawtime;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16814}16814             std::time(\&rawtime);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16815}16815             \textcolor{keyword}{auto} \textcolor{keyword}{const} timeStampSize = \textcolor{keyword}{sizeof}(\textcolor{stringliteral}{"{}2017-\/01-\/16T17:06:45Z"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16816}16816 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16817}16817 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16818}16818             std::tm timeInfo = \{\};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16819}16819             gmtime\_s(\&timeInfo, \&rawtime);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16820}16820 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16821}16821             std::tm* timeInfo;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16822}16822             timeInfo = std::gmtime(\&rawtime);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16823}16823 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16824}16824 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16825}16825             \textcolor{keywordtype}{char} timeStamp[timeStampSize];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16826}16826             \textcolor{keyword}{const} \textcolor{keywordtype}{char} * \textcolor{keyword}{const} fmt = \textcolor{stringliteral}{"{}\%Y-\/\%m-\/\%dT\%H:\%M:\%SZ"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16827}16827 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16828}16828 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16829}16829             std::strftime(timeStamp, timeStampSize, fmt, \&timeInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16830}16830 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16831}16831             std::strftime(timeStamp, timeStampSize, fmt, timeInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16832}16832 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16833}16833             \textcolor{keywordflow}{return} std::string(timeStamp, timeStampSize-\/1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16834}16834         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16835}16835 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16836}16836         std::string fileNameTag(\textcolor{keyword}{const} std::vector<std::string> \&tags) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16837}16837             \textcolor{keyword}{auto} it = \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{std::find\_if}}(begin(tags),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16838}16838                                    end(tags),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16839}16839                                    [] (std::string \textcolor{keyword}{const}\& \mbox{\hyperlink{structtag}{tag}}) \{\textcolor{keywordflow}{return} \mbox{\hyperlink{structtag}{tag}}.front() == \textcolor{charliteral}{'\#'}; \});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16840}16840             \textcolor{keywordflow}{if} (it != tags.end())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16841}16841                 \textcolor{keywordflow}{return} it-\/>substr(1);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16842}16842             \textcolor{keywordflow}{return} std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16843}16843         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16844}16844 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16845}16845         \textcolor{comment}{// Formats the duration in seconds to 3 decimal places.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16846}16846         \textcolor{comment}{// This is done because some genius defined Maven Surefire schema}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16847}16847         \textcolor{comment}{// in a way that only accepts 3 decimal places, and tools like}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16848}16848         \textcolor{comment}{// Jenkins use that schema for validation JUnit reporter output.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16849}16849         std::string formatDuration( \textcolor{keywordtype}{double} seconds ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16850}16850             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16851}16851             rss << std::fixed << std::setprecision( 3 ) << seconds;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16852}16852             \textcolor{keywordflow}{return} rss.str();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16853}16853         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16854}16854 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16855}16855     \} \textcolor{comment}{// anonymous namespace}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16856}16856 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16857}16857     JunitReporter::JunitReporter( ReporterConfig \textcolor{keyword}{const}\& \_config )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16858}16858         :   CumulativeReporterBase( \_config ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16859}16859             xml( \_config.stream() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16860}16860         \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16861}16861             m\_reporterPrefs.shouldRedirectStdOut = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16862}16862             m\_reporterPrefs.shouldReportAllAssertions = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16863}16863         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16864}16864 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16865}16865     JunitReporter::\string~JunitReporter() \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16866}16866 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16867}16867     std::string JunitReporter::getDescription() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16868}16868         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Reports test results in an XML format that looks like Ant's junitreport target"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16869}16869     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16870}16870 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16871}16871     \textcolor{keywordtype}{void} JunitReporter::noMatchingTestCases( std::string \textcolor{keyword}{const}\& \textcolor{comment}{/*spec*/} ) \{\}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16872}16872 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16873}16873     \textcolor{keywordtype}{void} JunitReporter::testRunStarting( TestRunInfo \textcolor{keyword}{const}\& runInfo )  \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16874}16874         CumulativeReporterBase::testRunStarting( runInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16875}16875         xml.startElement( \textcolor{stringliteral}{"{}testsuites"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16876}16876     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16877}16877 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16878}16878     \textcolor{keywordtype}{void} JunitReporter::testGroupStarting( GroupInfo \textcolor{keyword}{const}\& groupInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16879}16879         suiteTimer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16880}16880         stdOutForSuite.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16881}16881         stdErrForSuite.clear();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16882}16882         unexpectedExceptions = 0;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16883}16883         CumulativeReporterBase::testGroupStarting( groupInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16884}16884     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16885}16885 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16886}16886     \textcolor{keywordtype}{void} JunitReporter::testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& testCaseInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16887}16887         m\_okToFail = testCaseInfo.okToFail();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16888}16888     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16889}16889 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16890}16890     \textcolor{keywordtype}{bool} JunitReporter::assertionEnded( AssertionStats \textcolor{keyword}{const}\& assertionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16891}16891         \textcolor{keywordflow}{if}( assertionStats.assertionResult.getResultType() == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}} \&\& !m\_okToFail )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16892}16892             unexpectedExceptions++;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16893}16893         \textcolor{keywordflow}{return} CumulativeReporterBase::assertionEnded( assertionStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16894}16894     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16895}16895 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16896}16896     \textcolor{keywordtype}{void} JunitReporter::testCaseEnded( TestCaseStats \textcolor{keyword}{const}\& testCaseStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16897}16897         stdOutForSuite += testCaseStats.stdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16898}16898         stdErrForSuite += testCaseStats.stdErr;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16899}16899         CumulativeReporterBase::testCaseEnded( testCaseStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16900}16900     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16901}16901 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16902}16902     \textcolor{keywordtype}{void} JunitReporter::testGroupEnded( TestGroupStats \textcolor{keyword}{const}\& testGroupStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16903}16903         \textcolor{keywordtype}{double} suiteTime = suiteTimer.getElapsedSeconds();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16904}16904         CumulativeReporterBase::testGroupEnded( testGroupStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16905}16905         writeGroup( *m\_testGroups.back(), suiteTime );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16906}16906     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16907}16907 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16908}16908     \textcolor{keywordtype}{void} JunitReporter::testRunEndedCumulative() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16909}16909         xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16910}16910     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16911}16911 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16912}16912     \textcolor{keywordtype}{void} JunitReporter::writeGroup( TestGroupNode \textcolor{keyword}{const}\& groupNode, \textcolor{keywordtype}{double} suiteTime ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16913}16913         XmlWriter::ScopedElement \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} = xml.scopedElement( \textcolor{stringliteral}{"{}testsuite"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16914}16914 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16915}16915         TestGroupStats \textcolor{keyword}{const}\& stats = groupNode.value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16916}16916         xml.writeAttribute( \textcolor{stringliteral}{"{}name"{}}, stats.groupInfo.name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16917}16917         xml.writeAttribute( \textcolor{stringliteral}{"{}errors"{}}, unexpectedExceptions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16918}16918         xml.writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, stats.totals.assertions.failed-\/unexpectedExceptions );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16919}16919         xml.writeAttribute( \textcolor{stringliteral}{"{}tests"{}}, stats.totals.assertions.total() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16920}16920         xml.writeAttribute( \textcolor{stringliteral}{"{}hostname"{}}, \textcolor{stringliteral}{"{}tbd"{}} ); \textcolor{comment}{// !TBD}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16921}16921         \textcolor{keywordflow}{if}( m\_config-\/>showDurations() == \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1afc4d0bcc3cfc91c312329d4a53fbf906}{ShowDurations::Never}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16922}16922             xml.writeAttribute( \textcolor{stringliteral}{"{}time"{}}, \textcolor{stringliteral}{"{}"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16923}16923         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16924}16924             xml.writeAttribute( \textcolor{stringliteral}{"{}time"{}}, formatDuration( suiteTime ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16925}16925         xml.writeAttribute( \textcolor{stringliteral}{"{}timestamp"{}}, getCurrentTimestamp() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16926}16926 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16927}16927         \textcolor{comment}{// Write properties if there are any}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16928}16928         \textcolor{keywordflow}{if} (m\_config-\/>hasTestFilters() || m\_config-\/>rngSeed() != 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16929}16929             \textcolor{keyword}{auto} properties = xml.scopedElement(\textcolor{stringliteral}{"{}properties"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16930}16930             \textcolor{keywordflow}{if} (m\_config-\/>hasTestFilters()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16931}16931                 xml.scopedElement(\textcolor{stringliteral}{"{}property"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16932}16932                     .writeAttribute(\textcolor{stringliteral}{"{}name"{}}, \textcolor{stringliteral}{"{}filters"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16933}16933                     .writeAttribute(\textcolor{stringliteral}{"{}value"{}}, serializeFilters(m\_config-\/>getTestsOrTags()));}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16934}16934             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16935}16935             \textcolor{keywordflow}{if} (m\_config-\/>rngSeed() != 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16936}16936                 xml.scopedElement(\textcolor{stringliteral}{"{}property"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16937}16937                     .writeAttribute(\textcolor{stringliteral}{"{}name"{}}, \textcolor{stringliteral}{"{}random-\/seed"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16938}16938                     .writeAttribute(\textcolor{stringliteral}{"{}value"{}}, m\_config-\/>rngSeed());}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16939}16939             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16940}16940         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16941}16941 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16942}16942         \textcolor{comment}{// Write test cases}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16943}16943         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& child : groupNode.children )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16944}16944             writeTestCase( *child );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16945}16945 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16946}16946         xml.scopedElement( \textcolor{stringliteral}{"{}system-\/out"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( stdOutForSuite ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16947}16947         xml.scopedElement( \textcolor{stringliteral}{"{}system-\/err"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( stdErrForSuite ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16948}16948     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16949}16949 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16950}16950     \textcolor{keywordtype}{void} JunitReporter::writeTestCase( TestCaseNode \textcolor{keyword}{const}\& testCaseNode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16951}16951         TestCaseStats \textcolor{keyword}{const}\& stats = testCaseNode.value;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16952}16952 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16953}16953         \textcolor{comment}{// All test cases have exactly one section -\/ which represents the}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16954}16954         \textcolor{comment}{// test case itself. That section may have 0-\/n nested sections}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16955}16955         assert( testCaseNode.children.size() == 1 );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16956}16956         SectionNode \textcolor{keyword}{const}\& rootSection = *testCaseNode.children.front();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16957}16957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16958}16958         std::string className = stats.testInfo.className;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16959}16959 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16960}16960         \textcolor{keywordflow}{if}( className.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16961}16961             className = fileNameTag(stats.testInfo.tags);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16962}16962             \textcolor{keywordflow}{if} ( className.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16963}16963                 className = \textcolor{stringliteral}{"{}global"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16964}16964         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16965}16965 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16966}16966         \textcolor{keywordflow}{if} ( !m\_config-\/>name().empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16967}16967             className = m\_config-\/>name() + "{}."{} + className;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16968}16968 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16969}16969         writeSection( className, \textcolor{stringliteral}{"{}"{}}, rootSection, stats.testInfo.okToFail() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16970}16970     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16971}16971 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16972}16972     \textcolor{keywordtype}{void} JunitReporter::writeSection( std::string \textcolor{keyword}{const}\& className,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16973}16973                                       std::string \textcolor{keyword}{const}\& rootName,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16974}16974                                       SectionNode \textcolor{keyword}{const}\& sectionNode,}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16975}16975                                       \textcolor{keywordtype}{bool} testOkToFail) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16976}16976         std::string name = \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( sectionNode.stats.sectionInfo.name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16977}16977         \textcolor{keywordflow}{if}( !rootName.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16978}16978             name = rootName + '/' + name;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16979}16979 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16980}16980         \textcolor{keywordflow}{if}( !sectionNode.assertions.empty() ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16981}16981             !sectionNode.stdOut.empty() ||}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16982}16982             !sectionNode.stdErr.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16983}16983             XmlWriter::ScopedElement \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} = xml.scopedElement( \textcolor{stringliteral}{"{}testcase"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16984}16984             \textcolor{keywordflow}{if}( className.empty() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16985}16985                 xml.writeAttribute( \textcolor{stringliteral}{"{}classname"{}}, name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16986}16986                 xml.writeAttribute( \textcolor{stringliteral}{"{}name"{}}, \textcolor{stringliteral}{"{}root"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16987}16987             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16988}16988             \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16989}16989                 xml.writeAttribute( \textcolor{stringliteral}{"{}classname"{}}, className );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16990}16990                 xml.writeAttribute( \textcolor{stringliteral}{"{}name"{}}, name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16991}16991             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16992}16992             xml.writeAttribute( \textcolor{stringliteral}{"{}time"{}}, formatDuration( sectionNode.stats.durationInSeconds ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16993}16993             \textcolor{comment}{// This is not ideal, but it should be enough to mimic gtest's}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16994}16994             \textcolor{comment}{// junit output.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16995}16995             \textcolor{comment}{// Ideally the JUnit reporter would also handle `skipTest`}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16996}16996             \textcolor{comment}{// events and write those out appropriately.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16997}16997             xml.writeAttribute( \textcolor{stringliteral}{"{}status"{}}, \textcolor{stringliteral}{"{}run"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16998}16998 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l16999}16999             \textcolor{keywordflow}{if} (sectionNode.stats.assertions.failedButOk) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17000}17000                 xml.scopedElement(\textcolor{stringliteral}{"{}skipped"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17001}17001                     .writeAttribute(\textcolor{stringliteral}{"{}message"{}}, \textcolor{stringliteral}{"{}TEST\_CASE tagged with !mayfail"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17002}17002             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17003}17003 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17004}17004             writeAssertions( sectionNode );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17005}17005 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17006}17006             \textcolor{keywordflow}{if}( !sectionNode.stdOut.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17007}17007                 xml.scopedElement( \textcolor{stringliteral}{"{}system-\/out"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( sectionNode.stdOut ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17008}17008             \textcolor{keywordflow}{if}( !sectionNode.stdErr.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17009}17009                 xml.scopedElement( \textcolor{stringliteral}{"{}system-\/err"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( sectionNode.stdErr ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17010}17010         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17011}17011         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& childNode : sectionNode.childSections )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17012}17012             \textcolor{keywordflow}{if}( className.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17013}17013                 writeSection( name, \textcolor{stringliteral}{"{}"{}}, *childNode, testOkToFail );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17014}17014             \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17015}17015                 writeSection( className, name, *childNode, testOkToFail );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17016}17016     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17017}17017 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17018}17018     \textcolor{keywordtype}{void} JunitReporter::writeAssertions( SectionNode \textcolor{keyword}{const}\& sectionNode ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17019}17019         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& assertion : sectionNode.assertions )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17020}17020             writeAssertion( assertion );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17021}17021     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17022}17022 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17023}17023     \textcolor{keywordtype}{void} JunitReporter::writeAssertion( AssertionStats \textcolor{keyword}{const}\& stats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17024}17024         AssertionResult \textcolor{keyword}{const}\& result = stats.assertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17025}17025         \textcolor{keywordflow}{if}( !result.isOk() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17026}17026             std::string elementName;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17027}17027             \textcolor{keywordflow}{switch}( result.getResultType() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17028}17028                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17029}17029                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7f0c2afadf75d1d24bf8729ebd32cee}{ResultWas::FatalErrorCondition}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17030}17030                     elementName = \textcolor{stringliteral}{"{}error"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17031}17031                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17032}17032                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa0c08e9a7cc2a689bfb86ca3a6cfc6444}{ResultWas::ExplicitFailure}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17033}17033                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7062ac2bdea77a68bac4675c4315570}{ResultWas::ExpressionFailed}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17034}17034                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa982f9c220de9fb76881da3bbf22b1a85}{ResultWas::DidntThrowException}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17035}17035                     elementName = \textcolor{stringliteral}{"{}failure"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17036}17036                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17037}17037 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17038}17038                 \textcolor{comment}{// We should never see these here:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17039}17039                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17040}17040                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17041}17041                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efacff2783ae5a0ec92d7907d55233aa695}{ResultWas::Ok}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17042}17042                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa18b7bfef24524824dc1acf3ff5bccd9e}{ResultWas::Unknown}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17043}17043                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efadbb05c8a5a093c8ca0926c22ba34a6cc}{ResultWas::FailureBit}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17044}17044                 \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa94b8ecf31cd791e2e4ddc46f25e3aaf4}{ResultWas::Exception}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17045}17045                     elementName = \textcolor{stringliteral}{"{}internalError"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17046}17046                     \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17047}17047             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17048}17048 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17049}17049             XmlWriter::ScopedElement \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} = xml.scopedElement( elementName );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17050}17050 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17051}17051             xml.writeAttribute( \textcolor{stringliteral}{"{}message"{}}, result.getExpression() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17052}17052             xml.writeAttribute( \textcolor{stringliteral}{"{}type"{}}, result.getTestMacroName() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17053}17053 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17054}17054             ReusableStringStream rss;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17055}17055             \textcolor{keywordflow}{if} (stats.totals.assertions.total() > 0) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17056}17056                 rss << \textcolor{stringliteral}{"{}FAILED"{}} << \textcolor{stringliteral}{"{}:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17057}17057                 \textcolor{keywordflow}{if} (result.hasExpression()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17058}17058                     rss << \textcolor{stringliteral}{"{}  "{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17059}17059                     rss << result.getExpressionInMacro();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17060}17060                     rss << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17061}17061                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17062}17062                 \textcolor{keywordflow}{if} (result.hasExpandedExpression()) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17063}17063                     rss << \textcolor{stringliteral}{"{}with expansion:\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17064}17064                     rss << Column(result.getExpandedExpression()).indent(2) << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17065}17065                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17066}17066             \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17067}17067                 rss << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17068}17068             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17069}17069 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17070}17070             \textcolor{keywordflow}{if}( !result.getMessage().empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17071}17071                 rss << result.getMessage() << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17072}17072             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& msg : stats.infoMessages )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17073}17073                 \textcolor{keywordflow}{if}( msg.type == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17074}17074                     rss << msg.message << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17075}17075 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17076}17076             rss << \textcolor{stringliteral}{"{}at "{}} << result.getSourceInfo();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17077}17077             xml.writeText( rss.str(), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17078}17078         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17079}17079     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17080}17080 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17081}17081     CATCH\_REGISTER\_REPORTER( \textcolor{stringliteral}{"{}junit"{}}, JunitReporter )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17082}17082 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17083}17083 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17084}17084 \textcolor{comment}{// end catch\_reporter\_junit.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17085}17085 \textcolor{comment}{// start catch\_reporter\_listening.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17086}17086 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17087}17087 \textcolor{preprocessor}{\#include <cassert>}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17088}17088 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17089}17089 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17090}17090 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17091}17091     ListeningReporter::ListeningReporter() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17092}17092         \textcolor{comment}{// We will assume that listeners will always want all assertions}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17093}17093         m\_preferences.shouldReportAllAssertions = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17094}17094     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17095}17095 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17096}17096     \textcolor{keywordtype}{void} ListeningReporter::addListener( IStreamingReporterPtr\&\& listener ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17097}17097         m\_listeners.push\_back( std::move( listener ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17098}17098     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17099}17099 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17100}17100     \textcolor{keywordtype}{void} ListeningReporter::addReporter(IStreamingReporterPtr\&\& reporter) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17101}17101         assert(!m\_reporter \&\& \textcolor{stringliteral}{"{}Listening reporter can wrap only 1 real reporter"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17102}17102         m\_reporter = std::move( reporter );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17103}17103         m\_preferences.shouldRedirectStdOut = m\_reporter-\/>getPreferences().shouldRedirectStdOut;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17104}17104     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17105}17105 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17106}17106     ReporterPreferences ListeningReporter::getPreferences()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17107}17107         \textcolor{keywordflow}{return} m\_preferences;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17108}17108     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17109}17109 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17110}17110     std::set<Verbosity> ListeningReporter::getSupportedVerbosities() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17111}17111         \textcolor{keywordflow}{return} std::set<Verbosity>\{ \};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17112}17112     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17113}17113 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17114}17114     \textcolor{keywordtype}{void} ListeningReporter::noMatchingTestCases( std::string \textcolor{keyword}{const}\& spec ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17115}17115         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17116}17116             listener-\/>noMatchingTestCases( spec );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17117}17117         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17118}17118         m\_reporter-\/>noMatchingTestCases( spec );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17119}17119     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17120}17120 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17121}17121     \textcolor{keywordtype}{void} ListeningReporter::reportInvalidArguments(std::string \textcolor{keyword}{const}\&arg)\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17122}17122         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17123}17123             listener-\/>reportInvalidArguments( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17124}17124         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17125}17125         m\_reporter-\/>reportInvalidArguments( arg );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17126}17126     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17127}17127 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17128}17128 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17129}17129     \textcolor{keywordtype}{void} ListeningReporter::benchmarkPreparing( std::string \textcolor{keyword}{const}\& name ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17130}17130       \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17131}17131          listener-\/>benchmarkPreparing(name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17132}17132       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17133}17133       m\_reporter-\/>benchmarkPreparing(name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17134}17134    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17135}17135     \textcolor{keywordtype}{void} ListeningReporter::benchmarkStarting( BenchmarkInfo \textcolor{keyword}{const}\& benchmarkInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17136}17136         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17137}17137             listener-\/>benchmarkStarting( benchmarkInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17138}17138         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17139}17139         m\_reporter-\/>benchmarkStarting( benchmarkInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17140}17140     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17141}17141     \textcolor{keywordtype}{void} ListeningReporter::benchmarkEnded( BenchmarkStats<> \textcolor{keyword}{const}\& benchmarkStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17142}17142         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17143}17143             listener-\/>benchmarkEnded( benchmarkStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17144}17144         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17145}17145         m\_reporter-\/>benchmarkEnded( benchmarkStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17146}17146     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17147}17147 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17148}17148    \textcolor{keywordtype}{void} ListeningReporter::benchmarkFailed( std::string \textcolor{keyword}{const}\& error ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17149}17149       \textcolor{keywordflow}{for} (\textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17150}17150          listener-\/>benchmarkFailed(error);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17151}17151       \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17152}17152       m\_reporter-\/>benchmarkFailed(error);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17153}17153    \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17154}17154 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17155}17155 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17156}17156     \textcolor{keywordtype}{void} ListeningReporter::testRunStarting( TestRunInfo \textcolor{keyword}{const}\& testRunInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17157}17157         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17158}17158             listener-\/>testRunStarting( testRunInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17159}17159         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17160}17160         m\_reporter-\/>testRunStarting( testRunInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17161}17161     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17162}17162 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17163}17163     \textcolor{keywordtype}{void} ListeningReporter::testGroupStarting( GroupInfo \textcolor{keyword}{const}\& groupInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17164}17164         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17165}17165             listener-\/>testGroupStarting( groupInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17166}17166         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17167}17167         m\_reporter-\/>testGroupStarting( groupInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17168}17168     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17169}17169 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17170}17170     \textcolor{keywordtype}{void} ListeningReporter::testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17171}17171         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17172}17172             listener-\/>testCaseStarting( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17173}17173         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17174}17174         m\_reporter-\/>testCaseStarting( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17175}17175     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17176}17176 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17177}17177     \textcolor{keywordtype}{void} ListeningReporter::sectionStarting( SectionInfo \textcolor{keyword}{const}\& sectionInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17178}17178         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17179}17179             listener-\/>sectionStarting( sectionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17180}17180         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17181}17181         m\_reporter-\/>sectionStarting( sectionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17182}17182     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17183}17183 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17184}17184     \textcolor{keywordtype}{void} ListeningReporter::assertionStarting( AssertionInfo \textcolor{keyword}{const}\& assertionInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17185}17185         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17186}17186             listener-\/>assertionStarting( assertionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17187}17187         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17188}17188         m\_reporter-\/>assertionStarting( assertionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17189}17189     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17190}17190 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17191}17191     \textcolor{comment}{// The return value indicates if the messages buffer should be cleared:}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17192}17192     \textcolor{keywordtype}{bool} ListeningReporter::assertionEnded( AssertionStats \textcolor{keyword}{const}\& assertionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17193}17193         \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17194}17194             \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}( listener-\/>assertionEnded( assertionStats ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17195}17195         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17196}17196         \textcolor{keywordflow}{return} m\_reporter-\/>assertionEnded( assertionStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17197}17197     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17198}17198 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17199}17199     \textcolor{keywordtype}{void} ListeningReporter::sectionEnded( SectionStats \textcolor{keyword}{const}\& sectionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17200}17200         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17201}17201             listener-\/>sectionEnded( sectionStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17202}17202         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17203}17203         m\_reporter-\/>sectionEnded( sectionStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17204}17204     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17205}17205 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17206}17206     \textcolor{keywordtype}{void} ListeningReporter::testCaseEnded( TestCaseStats \textcolor{keyword}{const}\& testCaseStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17207}17207         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17208}17208             listener-\/>testCaseEnded( testCaseStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17209}17209         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17210}17210         m\_reporter-\/>testCaseEnded( testCaseStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17211}17211     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17212}17212 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17213}17213     \textcolor{keywordtype}{void} ListeningReporter::testGroupEnded( TestGroupStats \textcolor{keyword}{const}\& testGroupStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17214}17214         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17215}17215             listener-\/>testGroupEnded( testGroupStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17216}17216         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17217}17217         m\_reporter-\/>testGroupEnded( testGroupStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17218}17218     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17219}17219 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17220}17220     \textcolor{keywordtype}{void} ListeningReporter::testRunEnded( TestRunStats \textcolor{keyword}{const}\& testRunStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17221}17221         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17222}17222             listener-\/>testRunEnded( testRunStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17223}17223         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17224}17224         m\_reporter-\/>testRunEnded( testRunStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17225}17225     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17226}17226 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17227}17227     \textcolor{keywordtype}{void} ListeningReporter::skipTest( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17228}17228         \textcolor{keywordflow}{for} ( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& listener : m\_listeners ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17229}17229             listener-\/>skipTest( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17230}17230         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17231}17231         m\_reporter-\/>skipTest( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17232}17232     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17233}17233 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17234}17234     \textcolor{keywordtype}{bool} ListeningReporter::isMulti()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17235}17235         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17236}17236     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17237}17237 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17238}17238 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17239}17239 \textcolor{comment}{// end catch\_reporter\_listening.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17240}17240 \textcolor{comment}{// start catch\_reporter\_xml.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17241}17241 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17242}17242 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17243}17243 \textcolor{preprocessor}{\#pragma warning(push)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17244}17244 \textcolor{preprocessor}{\#pragma warning(disable:4061) }\textcolor{comment}{// Not all labels are EXPLICITLY handled in switch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17245}17245                               \textcolor{comment}{// Note that 4062 (not all labels are handled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17246}17246                               \textcolor{comment}{// and default is missing) is enabled}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17247}17247 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17248}17248 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17249}17249 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17250}17250     XmlReporter::XmlReporter( ReporterConfig \textcolor{keyword}{const}\& \_config )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17251}17251     :   StreamingReporterBase( \_config ),}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17252}17252         m\_xml(\_config.stream())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17253}17253     \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17254}17254         m\_reporterPrefs.shouldRedirectStdOut = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17255}17255         m\_reporterPrefs.shouldReportAllAssertions = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17256}17256     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17257}17257 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17258}17258     XmlReporter::\string~XmlReporter() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17259}17259 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17260}17260     std::string XmlReporter::getDescription() \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17261}17261         \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}Reports test results as an XML document"{}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17262}17262     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17263}17263 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17264}17264     std::string XmlReporter::getStylesheetRef()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17265}17265         \textcolor{keywordflow}{return} std::string();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17266}17266     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17267}17267 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17268}17268     \textcolor{keywordtype}{void} XmlReporter::writeSourceInfo( SourceLineInfo \textcolor{keyword}{const}\& sourceInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17269}17269         m\_xml}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17270}17270             .writeAttribute( \textcolor{stringliteral}{"{}filename"{}}, sourceInfo.file )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17271}17271             .writeAttribute( \textcolor{stringliteral}{"{}line"{}}, sourceInfo.line );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17272}17272     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17273}17273 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17274}17274     \textcolor{keywordtype}{void} XmlReporter::noMatchingTestCases( std::string \textcolor{keyword}{const}\& s ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17275}17275         StreamingReporterBase::noMatchingTestCases( s );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17276}17276     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17277}17277 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17278}17278     \textcolor{keywordtype}{void} XmlReporter::testRunStarting( TestRunInfo \textcolor{keyword}{const}\& testInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17279}17279         StreamingReporterBase::testRunStarting( testInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17280}17280         std::string stylesheetRef = getStylesheetRef();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17281}17281         \textcolor{keywordflow}{if}( !stylesheetRef.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17282}17282             m\_xml.writeStylesheetRef( stylesheetRef );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17283}17283         m\_xml.startElement( \textcolor{stringliteral}{"{}Catch"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17284}17284         \textcolor{keywordflow}{if}( !m\_config-\/>name().empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17285}17285             m\_xml.writeAttribute( \textcolor{stringliteral}{"{}name"{}}, m\_config-\/>name() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17286}17286         \textcolor{keywordflow}{if} (m\_config-\/>testSpec().hasFilters())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17287}17287             m\_xml.writeAttribute( \textcolor{stringliteral}{"{}filters"{}}, serializeFilters( m\_config-\/>getTestsOrTags() ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17288}17288         \textcolor{keywordflow}{if}( m\_config-\/>rngSeed() != 0 )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17289}17289             m\_xml.scopedElement( \textcolor{stringliteral}{"{}Randomness"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17290}17290                 .writeAttribute( \textcolor{stringliteral}{"{}seed"{}}, m\_config-\/>rngSeed() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17291}17291     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17292}17292 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17293}17293     \textcolor{keywordtype}{void} XmlReporter::testGroupStarting( GroupInfo \textcolor{keyword}{const}\& groupInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17294}17294         StreamingReporterBase::testGroupStarting( groupInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17295}17295         m\_xml.startElement( \textcolor{stringliteral}{"{}Group"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17296}17296             .writeAttribute( \textcolor{stringliteral}{"{}name"{}}, groupInfo.name );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17297}17297     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17298}17298 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17299}17299     \textcolor{keywordtype}{void} XmlReporter::testCaseStarting( TestCaseInfo \textcolor{keyword}{const}\& testInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17300}17300         StreamingReporterBase::testCaseStarting(testInfo);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17301}17301         m\_xml.startElement( \textcolor{stringliteral}{"{}TestCase"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17302}17302             .writeAttribute( \textcolor{stringliteral}{"{}name"{}}, \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( testInfo.name ) )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17303}17303             .writeAttribute( \textcolor{stringliteral}{"{}description"{}}, testInfo.description )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17304}17304             .writeAttribute( \textcolor{stringliteral}{"{}tags"{}}, testInfo.tagsAsString() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17305}17305 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17306}17306         writeSourceInfo( testInfo.lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17307}17307 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17308}17308         \textcolor{keywordflow}{if} ( m\_config-\/>showDurations() == \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1ac9dcaeb20b4d9ca94227ab3f6878ae0a}{ShowDurations::Always}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17309}17309             m\_testCaseTimer.start();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17310}17310         m\_xml.ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17311}17311     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17312}17312 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17313}17313     \textcolor{keywordtype}{void} XmlReporter::sectionStarting( SectionInfo \textcolor{keyword}{const}\& sectionInfo ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17314}17314         StreamingReporterBase::sectionStarting( sectionInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17315}17315         \textcolor{keywordflow}{if}( m\_sectionDepth++ > 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17316}17316             m\_xml.startElement( \textcolor{stringliteral}{"{}Section"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17317}17317                 .writeAttribute( \textcolor{stringliteral}{"{}name"{}}, \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( sectionInfo.name ) );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17318}17318             writeSourceInfo( sectionInfo.lineInfo );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17319}17319             m\_xml.ensureTagClosed();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17320}17320         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17321}17321     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17322}17322 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17323}17323     \textcolor{keywordtype}{void} XmlReporter::assertionStarting( AssertionInfo \textcolor{keyword}{const}\& ) \{ \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17324}17324 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17325}17325     \textcolor{keywordtype}{bool} XmlReporter::assertionEnded( AssertionStats \textcolor{keyword}{const}\& assertionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17326}17326 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17327}17327         AssertionResult \textcolor{keyword}{const}\& result = assertionStats.assertionResult;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17328}17328 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17329}17329         \textcolor{keywordtype}{bool} includeResults = m\_config-\/>includeSuccessfulResults() || !result.isOk();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17330}17330 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17331}17331         \textcolor{keywordflow}{if}( includeResults || result.getResultType() == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17332}17332             \textcolor{comment}{// Print any info messages in <Info> tags.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17333}17333             \textcolor{keywordflow}{for}( \textcolor{keyword}{auto} \textcolor{keyword}{const}\& msg : assertionStats.infoMessages ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17334}17334                 \textcolor{keywordflow}{if}( msg.type == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}} \&\& includeResults ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17335}17335                     m\_xml.scopedElement( \textcolor{stringliteral}{"{}Info"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17336}17336                             .writeText( msg.message );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17337}17337                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( msg.type == \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}} ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17338}17338                     m\_xml.scopedElement( \textcolor{stringliteral}{"{}Warning"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17339}17339                             .writeText( msg.message );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17340}17340                 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17341}17341             \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17342}17342         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17343}17343 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17344}17344         \textcolor{comment}{// Drop out if result was successful but we're not printing them.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17345}17345         \textcolor{keywordflow}{if}( !includeResults \&\& result.getResultType() != \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17346}17346             \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17347}17347 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17348}17348         \textcolor{comment}{// Print the expression if there is one.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17349}17349         \textcolor{keywordflow}{if}( result.hasExpression() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17350}17350             m\_xml.startElement( \textcolor{stringliteral}{"{}Expression"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17351}17351                 .writeAttribute( \textcolor{stringliteral}{"{}success"{}}, result.succeeded() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17352}17352                 .writeAttribute( \textcolor{stringliteral}{"{}type"{}}, result.getTestMacroName() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17353}17353 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17354}17354             writeSourceInfo( result.getSourceInfo() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17355}17355 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17356}17356             m\_xml.scopedElement( \textcolor{stringliteral}{"{}Original"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17357}17357                 .writeText( result.getExpression() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17358}17358             m\_xml.scopedElement( \textcolor{stringliteral}{"{}Expanded"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17359}17359                 .writeText( result.getExpandedExpression() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17360}17360         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17361}17361 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17362}17362         \textcolor{comment}{// And... Print a result applicable to each result type.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17363}17363         \textcolor{keywordflow}{switch}( result.getResultType() ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17364}17364             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa765782e127faff9d9796388edb4d7fcd}{ResultWas::ThrewException}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17365}17365                 m\_xml.startElement( \textcolor{stringliteral}{"{}Exception"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17366}17366                 writeSourceInfo( result.getSourceInfo() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17367}17367                 m\_xml.writeText( result.getMessage() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17368}17368                 m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17369}17369                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17370}17370             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efac7f0c2afadf75d1d24bf8729ebd32cee}{ResultWas::FatalErrorCondition}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17371}17371                 m\_xml.startElement( \textcolor{stringliteral}{"{}FatalErrorCondition"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17372}17372                 writeSourceInfo( result.getSourceInfo() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17373}17373                 m\_xml.writeText( result.getMessage() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17374}17374                 m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17375}17375                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17376}17376             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efae8d83c08b4e070286dd95134ad2152bb}{ResultWas::Info}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17377}17377                 m\_xml.scopedElement( \textcolor{stringliteral}{"{}Info"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17378}17378                     .writeText( result.getMessage() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17379}17379                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17380}17380             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa22806493991ee90456cfbd973ae8d1ab}{ResultWas::Warning}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17381}17381                 \textcolor{comment}{// Warning will already have been written}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17382}17382                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17383}17383             \textcolor{keywordflow}{case} \mbox{\hyperlink{struct_catch_1_1_result_was_a624e1ee3661fcf6094ceef1f654601efa0c08e9a7cc2a689bfb86ca3a6cfc6444}{ResultWas::ExplicitFailure}}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17384}17384                 m\_xml.startElement( \textcolor{stringliteral}{"{}Failure"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17385}17385                 writeSourceInfo( result.getSourceInfo() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17386}17386                 m\_xml.writeText( result.getMessage() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17387}17387                 m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17388}17388                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17389}17389             \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17390}17390                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17391}17391         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17392}17392 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17393}17393         \textcolor{keywordflow}{if}( result.hasExpression() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17394}17394             m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17395}17395 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17396}17396         \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17397}17397     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17398}17398 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17399}17399     \textcolor{keywordtype}{void} XmlReporter::sectionEnded( SectionStats \textcolor{keyword}{const}\& sectionStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17400}17400         StreamingReporterBase::sectionEnded( sectionStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17401}17401         \textcolor{keywordflow}{if}( -\/-\/m\_sectionDepth > 0 ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17402}17402             XmlWriter::ScopedElement \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} = m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResults"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17403}17403             \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}successes"{}}, sectionStats.assertions.passed );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17404}17404             \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, sectionStats.assertions.failed );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17405}17405             \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}expectedFailures"{}}, sectionStats.assertions.failedButOk );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17406}17406 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17407}17407             \textcolor{keywordflow}{if} ( m\_config-\/>showDurations() == \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1ac9dcaeb20b4d9ca94227ab3f6878ae0a}{ShowDurations::Always}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17408}17408                 \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}durationInSeconds"{}}, sectionStats.durationInSeconds );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17409}17409 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17410}17410             m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17411}17411         \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17412}17412     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17413}17413 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17414}17414     \textcolor{keywordtype}{void} XmlReporter::testCaseEnded( TestCaseStats \textcolor{keyword}{const}\& testCaseStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17415}17415         StreamingReporterBase::testCaseEnded( testCaseStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17416}17416         XmlWriter::ScopedElement \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} = m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResult"{}} );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17417}17417         \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}success"{}}, testCaseStats.totals.assertions.allOk() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17418}17418 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17419}17419         \textcolor{keywordflow}{if} ( m\_config-\/>showDurations() == \mbox{\hyperlink{struct_catch_1_1_show_durations_a82fa0174554187220c1eda175f122ee1ac9dcaeb20b4d9ca94227ab3f6878ae0a}{ShowDurations::Always}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17420}17420             \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}.writeAttribute( \textcolor{stringliteral}{"{}durationInSeconds"{}}, m\_testCaseTimer.getElapsedSeconds() );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17421}17421 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17422}17422         \textcolor{keywordflow}{if}( !testCaseStats.stdOut.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17423}17423             m\_xml.scopedElement( \textcolor{stringliteral}{"{}StdOut"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( testCaseStats.stdOut ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17424}17424         \textcolor{keywordflow}{if}( !testCaseStats.stdErr.empty() )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17425}17425             m\_xml.scopedElement( \textcolor{stringliteral}{"{}StdErr"{}} ).writeText( \mbox{\hyperlink{namespace_catch_a084108b47f37d8bfd5db51c50c7451b3}{trim}}( testCaseStats.stdErr ), XmlFormatting::Newline );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17426}17426 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17427}17427         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17428}17428     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17429}17429 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17430}17430     \textcolor{keywordtype}{void} XmlReporter::testGroupEnded( TestGroupStats \textcolor{keyword}{const}\& testGroupStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17431}17431         StreamingReporterBase::testGroupEnded( testGroupStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17432}17432         \textcolor{comment}{// TODO: Check testGroupStats.aborting and act accordingly.}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17433}17433         m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResults"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17434}17434             .writeAttribute( \textcolor{stringliteral}{"{}successes"{}}, testGroupStats.totals.assertions.passed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17435}17435             .writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, testGroupStats.totals.assertions.failed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17436}17436             .writeAttribute( \textcolor{stringliteral}{"{}expectedFailures"{}}, testGroupStats.totals.assertions.failedButOk );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17437}17437         m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResultsCases"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17438}17438             .writeAttribute( \textcolor{stringliteral}{"{}successes"{}}, testGroupStats.totals.testCases.passed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17439}17439             .writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, testGroupStats.totals.testCases.failed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17440}17440             .writeAttribute( \textcolor{stringliteral}{"{}expectedFailures"{}}, testGroupStats.totals.testCases.failedButOk );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17441}17441         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17442}17442     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17443}17443 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17444}17444     \textcolor{keywordtype}{void} XmlReporter::testRunEnded( TestRunStats \textcolor{keyword}{const}\& testRunStats ) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17445}17445         StreamingReporterBase::testRunEnded( testRunStats );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17446}17446         m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResults"{}} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17447}17447             .writeAttribute( \textcolor{stringliteral}{"{}successes"{}}, testRunStats.totals.assertions.passed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17448}17448             .writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, testRunStats.totals.assertions.failed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17449}17449             .writeAttribute( \textcolor{stringliteral}{"{}expectedFailures"{}}, testRunStats.totals.assertions.failedButOk );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17450}17450         m\_xml.scopedElement( \textcolor{stringliteral}{"{}OverallResultsCases"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17451}17451             .writeAttribute( \textcolor{stringliteral}{"{}successes"{}}, testRunStats.totals.testCases.passed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17452}17452             .writeAttribute( \textcolor{stringliteral}{"{}failures"{}}, testRunStats.totals.testCases.failed )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17453}17453             .writeAttribute( \textcolor{stringliteral}{"{}expectedFailures"{}}, testRunStats.totals.testCases.failedButOk );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17454}17454         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17455}17455     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17456}17456 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17457}17457 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17458}17458     \textcolor{keywordtype}{void} XmlReporter::benchmarkPreparing(std::string \textcolor{keyword}{const}\& name) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17459}17459         m\_xml.startElement(\textcolor{stringliteral}{"{}BenchmarkResults"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17460}17460             .writeAttribute(\textcolor{stringliteral}{"{}name"{}}, name);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17461}17461     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17462}17462 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17463}17463     \textcolor{keywordtype}{void} XmlReporter::benchmarkStarting(BenchmarkInfo \textcolor{keyword}{const} \&info) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17464}17464         m\_xml.writeAttribute(\textcolor{stringliteral}{"{}samples"{}}, info.samples)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17465}17465             .writeAttribute(\textcolor{stringliteral}{"{}resamples"{}}, info.resamples)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17466}17466             .writeAttribute(\textcolor{stringliteral}{"{}iterations"{}}, info.iterations)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17467}17467             .writeAttribute(\textcolor{stringliteral}{"{}clockResolution"{}}, info.clockResolution)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17468}17468             .writeAttribute(\textcolor{stringliteral}{"{}estimatedDuration"{}}, info.estimatedDuration)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17469}17469             .writeComment(\textcolor{stringliteral}{"{}All values in nano seconds"{}});}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17470}17470     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17471}17471 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17472}17472     \textcolor{keywordtype}{void} XmlReporter::benchmarkEnded(BenchmarkStats<> \textcolor{keyword}{const}\& benchmarkStats) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17473}17473         m\_xml.startElement(\textcolor{stringliteral}{"{}mean"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17474}17474             .writeAttribute(\textcolor{stringliteral}{"{}value"{}}, benchmarkStats.mean.point.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17475}17475             .writeAttribute(\textcolor{stringliteral}{"{}lowerBound"{}}, benchmarkStats.mean.lower\_bound.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17476}17476             .writeAttribute(\textcolor{stringliteral}{"{}upperBound"{}}, benchmarkStats.mean.upper\_bound.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17477}17477             .writeAttribute(\textcolor{stringliteral}{"{}ci"{}}, benchmarkStats.mean.confidence\_interval);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17478}17478         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17479}17479         m\_xml.startElement(\textcolor{stringliteral}{"{}standardDeviation"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17480}17480             .writeAttribute(\textcolor{stringliteral}{"{}value"{}}, benchmarkStats.standardDeviation.point.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17481}17481             .writeAttribute(\textcolor{stringliteral}{"{}lowerBound"{}}, benchmarkStats.standardDeviation.lower\_bound.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17482}17482             .writeAttribute(\textcolor{stringliteral}{"{}upperBound"{}}, benchmarkStats.standardDeviation.upper\_bound.count())}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17483}17483             .writeAttribute(\textcolor{stringliteral}{"{}ci"{}}, benchmarkStats.standardDeviation.confidence\_interval);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17484}17484         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17485}17485         m\_xml.startElement(\textcolor{stringliteral}{"{}outliers"{}})}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17486}17486             .writeAttribute(\textcolor{stringliteral}{"{}variance"{}}, benchmarkStats.outlierVariance)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17487}17487             .writeAttribute(\textcolor{stringliteral}{"{}lowMild"{}}, benchmarkStats.outliers.low\_mild)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17488}17488             .writeAttribute(\textcolor{stringliteral}{"{}lowSevere"{}}, benchmarkStats.outliers.low\_severe)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17489}17489             .writeAttribute(\textcolor{stringliteral}{"{}highMild"{}}, benchmarkStats.outliers.high\_mild)}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17490}17490             .writeAttribute(\textcolor{stringliteral}{"{}highSevere"{}}, benchmarkStats.outliers.high\_severe);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17491}17491         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17492}17492         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17493}17493     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17494}17494 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17495}17495     \textcolor{keywordtype}{void} XmlReporter::benchmarkFailed(std::string \textcolor{keyword}{const} \&error) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17496}17496         m\_xml.scopedElement(\textcolor{stringliteral}{"{}failed"{}}).}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17497}17497             writeAttribute(\textcolor{stringliteral}{"{}message"{}}, error);}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17498}17498         m\_xml.endElement();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17499}17499     \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17500}17500 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17501}17501 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17502}17502     CATCH\_REGISTER\_REPORTER( \textcolor{stringliteral}{"{}xml"{}}, XmlReporter )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17503}17503 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17504}17504 \} \textcolor{comment}{// end namespace Catch}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17505}17505 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17506}17506 \textcolor{preprocessor}{\#if defined(\_MSC\_VER)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17507}17507 \textcolor{preprocessor}{\#pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17508}17508 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17509}17509 \textcolor{comment}{// end catch\_reporter\_xml.cpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17510}17510 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17511}17511 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_catch}{Catch}} \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17512}17512     LeakDetector leakDetector;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17513}17513 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17514}17514 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17515}17515 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17516}17516 \textcolor{preprocessor}{\#pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17517}17517 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17518}17518 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17519}17519 \textcolor{comment}{// end catch\_impl.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17520}17520 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17521}17521 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17522}17522 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_MAIN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17523}17523 \textcolor{comment}{// start catch\_default\_main.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17524}17524 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17525}17525 \textcolor{preprocessor}{\#ifndef \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17526}17526 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17527}17527 \textcolor{preprocessor}{\#ifndef CATCH\_INTERNAL\_CDECL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17528}17528 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17529}17529 \textcolor{preprocessor}{\#define CATCH\_INTERNAL\_CDECL \_\_cdecl}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17530}17530 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17531}17531 \textcolor{preprocessor}{\#define CATCH\_INTERNAL\_CDECL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17532}17532 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17533}17533 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17534}17534 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17535}17535 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_WCHAR) \&\& defined(CATCH\_PLATFORM\_WINDOWS) \&\& defined(\_UNICODE) \&\& !defined(DO\_NOT\_USE\_WMAIN)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17536}17536 \textcolor{comment}{// Standard C/C++ Win32 Unicode wmain entry point}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17537}17537 \textcolor{keyword}{extern} \textcolor{stringliteral}{"{}C"{}} \textcolor{keywordtype}{int} CATCH\_INTERNAL\_CDECL wmain (\textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{wchar\_t} * argv[], \textcolor{keywordtype}{wchar\_t} * []) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17538}17538 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17539}17539 \textcolor{comment}{// Standard C/C++ main entry point}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17540}17540 \textcolor{keywordtype}{int} CATCH\_INTERNAL\_CDECL main (\textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} * argv[]) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17541}17541 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17542}17542 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17543}17543     \textcolor{keywordflow}{return} Catch::Session().run( argc, argv );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17544}17544 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17545}17545 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17546}17546 \textcolor{preprocessor}{\#else }\textcolor{comment}{// \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17547}17547 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17548}17548 \textcolor{comment}{// Objective-\/C entry point}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17549}17549 \textcolor{keywordtype}{int} main (\textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} * \textcolor{keyword}{const} argv[]) \{}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17550}17550 \textcolor{preprocessor}{\#if !CATCH\_ARC\_ENABLED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17551}17551     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17552}17552 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17553}17553 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17554}17554     Catch::registerTestMethods();}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17555}17555     \textcolor{keywordtype}{int} result = Catch::Session().run( argc, (\textcolor{keywordtype}{char}**)argv );}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17556}17556 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17557}17557 \textcolor{preprocessor}{\#if !CATCH\_ARC\_ENABLED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17558}17558     [pool drain];}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17559}17559 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17560}17560 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17561}17561     \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17562}17562 \}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17563}17563 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17564}17564 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_OBJC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17565}17565 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17566}17566 \textcolor{comment}{// end catch\_default\_main.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17567}17567 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17568}17568 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17569}17569 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_IMPL\_ONLY)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17570}17570 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17571}17571 \textcolor{preprocessor}{\#ifdef CLARA\_CONFIG\_MAIN\_NOT\_DEFINED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17572}17572 \textcolor{preprocessor}{\#  undef CLARA\_CONFIG\_MAIN}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17573}17573 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17574}17574 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17575}17575 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17577}17577 \textcolor{comment}{// If this config identifier is defined then all CATCH macros are prefixed with CATCH\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17578}17578 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_PREFIX\_ALL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17579}17579 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17580}17580 \textcolor{preprocessor}{\#define CATCH\_REQUIRE( ... ) INTERNAL\_CATCH\_TEST( "{}CATCH\_REQUIRE"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17581}17581 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_FALSE( ... ) INTERNAL\_CATCH\_TEST( "{}CATCH\_REQUIRE\_FALSE"{}}, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17582}17582 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17583}17583 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS( ... ) INTERNAL\_CATCH\_THROWS( "{}CATCH\_REQUIRE\_THROWS"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17584}17584 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_AS( expr, exceptionType ) INTERNAL\_CATCH\_THROWS\_AS( "{}CATCH\_REQUIRE\_THROWS\_AS"{}}, exceptionType, Catch::ResultDisposition::Normal, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17585}17585 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_WITH( expr, matcher ) INTERNAL\_CATCH\_THROWS\_STR\_MATCHES( "{}CATCH\_REQUIRE\_THROWS\_WITH"{}}, Catch::ResultDisposition::Normal, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17586}17586 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17587}17587 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_MATCHES( expr, exceptionType, matcher ) INTERNAL\_CATCH\_THROWS\_MATCHES( "{}CATCH\_REQUIRE\_THROWS\_MATCHES"{}}, exceptionType, Catch::ResultDisposition::Normal, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17588}17588 \textcolor{preprocessor}{\#endif}\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17589}17589 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_NOTHROW( ... ) INTERNAL\_CATCH\_NO\_THROW( "{}CATCH\_REQUIRE\_NOTHROW"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17590}17590 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17591}17591 \textcolor{preprocessor}{\#define CATCH\_CHECK( ... ) INTERNAL\_CATCH\_TEST( "{}CATCH\_CHECK"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17592}17592 \textcolor{preprocessor}{\#define CATCH\_CHECK\_FALSE( ... ) INTERNAL\_CATCH\_TEST( "{}CATCH\_CHECK\_FALSE"{}}, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17593}17593 \textcolor{preprocessor}{\#define CATCH\_CHECKED\_IF( ... ) INTERNAL\_CATCH\_IF( "{}CATCH\_CHECKED\_IF"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17594}17594 \textcolor{preprocessor}{\#define CATCH\_CHECKED\_ELSE( ... ) INTERNAL\_CATCH\_ELSE( "{}CATCH\_CHECKED\_ELSE"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17595}17595 \textcolor{preprocessor}{\#define CATCH\_CHECK\_NOFAIL( ... ) INTERNAL\_CATCH\_TEST( "{}CATCH\_CHECK\_NOFAIL"{}}, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17596}17596 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17597}17597 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS( ... )  INTERNAL\_CATCH\_THROWS( "{}CATCH\_CHECK\_THROWS"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17598}17598 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_AS( expr, exceptionType ) INTERNAL\_CATCH\_THROWS\_AS( "{}CATCH\_CHECK\_THROWS\_AS"{}}, exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17599}17599 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_WITH( expr, matcher ) INTERNAL\_CATCH\_THROWS\_STR\_MATCHES( "{}CATCH\_CHECK\_THROWS\_WITH"{}}, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17600}17600 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17601}17601 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_MATCHES( expr, exceptionType, matcher ) INTERNAL\_CATCH\_THROWS\_MATCHES( "{}CATCH\_CHECK\_THROWS\_MATCHES"{}}, exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17602}17602 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17603}17603 \textcolor{preprocessor}{\#define CATCH\_CHECK\_NOTHROW( ... ) INTERNAL\_CATCH\_NO\_THROW( "{}CATCH\_CHECK\_NOTHROW"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17604}17604 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17605}17605 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17606}17606 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THAT( arg, matcher ) INTERNAL\_CHECK\_THAT( "{}CATCH\_CHECK\_THAT"{}}, matcher, Catch::ResultDisposition::ContinueOnFailure, arg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17607}17607 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17608}17608 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THAT( arg, matcher ) INTERNAL\_CHECK\_THAT( "{}CATCH\_REQUIRE\_THAT"{}}, matcher, Catch::ResultDisposition::Normal, arg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17609}17609 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17610}17610 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17611}17611 \textcolor{preprocessor}{\#define CATCH\_INFO( msg ) INTERNAL\_CATCH\_INFO( "{}CATCH\_INFO"{}}, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17612}17612 \textcolor{preprocessor}{\#define CATCH\_UNSCOPED\_INFO( msg ) INTERNAL\_CATCH\_UNSCOPED\_INFO( "{}CATCH\_UNSCOPED\_INFO"{}}, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17613}17613 \textcolor{preprocessor}{\#define CATCH\_WARN( msg ) INTERNAL\_CATCH\_MSG( "{}CATCH\_WARN"{}}, Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17614}17614 \textcolor{preprocessor}{\#define CATCH\_CAPTURE( ... ) INTERNAL\_CATCH\_CAPTURE( INTERNAL\_CATCH\_UNIQUE\_NAME(capturer), "{}CATCH\_CAPTURE"{}},\_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17615}17615 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17616}17616 \textcolor{preprocessor}{\#define CATCH\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TESTCASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17617}17617 \textcolor{preprocessor}{\#define CATCH\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17618}17618 \textcolor{preprocessor}{\#define CATCH\_METHOD\_AS\_TEST\_CASE( method, ... ) INTERNAL\_CATCH\_METHOD\_AS\_TEST\_CASE( method, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17619}17619 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_TEST\_CASE( Function, ... ) INTERNAL\_CATCH\_REGISTER\_TESTCASE( Function, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17620}17620 \textcolor{preprocessor}{\#define CATCH\_SECTION( ... ) INTERNAL\_CATCH\_SECTION( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17621}17621 \textcolor{preprocessor}{\#define CATCH\_DYNAMIC\_SECTION( ... ) INTERNAL\_CATCH\_DYNAMIC\_SECTION( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17622}17622 \textcolor{preprocessor}{\#define CATCH\_FAIL( ... ) INTERNAL\_CATCH\_MSG( "{}CATCH\_FAIL"{}}, Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17623}17623 \textcolor{preprocessor}{\#define CATCH\_FAIL\_CHECK( ... ) INTERNAL\_CATCH\_MSG( "{}CATCH\_FAIL\_CHECK"{}}, Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17624}17624 \textcolor{preprocessor}{\#define CATCH\_SUCCEED( ... ) INTERNAL\_CATCH\_MSG( "{}CATCH\_SUCCEED"{}}, Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17625}17625 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17626}17626 \textcolor{preprocessor}{\#define CATCH\_ANON\_TEST\_CASE() INTERNAL\_CATCH\_TESTCASE()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17627}17627 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17628}17628 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17629}17629 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17630}17630 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17631}17631 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17632}17632 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17633}17633 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17634}17634 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17635}17635 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17636}17636 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17637}17637 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17638}17638 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17639}17639 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17640}17640 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17641}17641 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17642}17642 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17643}17643 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17644}17644 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17645}17645 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17646}17646 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17647}17647 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17648}17648 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_RUNTIME\_STATIC\_REQUIRE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17649}17649 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE( ... )       static\_assert(   \_\_VA\_ARGS\_\_ ,      \#\_\_VA\_ARGS\_\_ );     CATCH\_SUCCEED( \#\_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17650}17650 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE\_FALSE( ... ) static\_assert( !(\_\_VA\_ARGS\_\_), "{}!("{}} \#\_\_VA\_ARGS\_\_ "{})"{} ); CATCH\_SUCCEED( \#\_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17651}17651 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17652}17652 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE( ... )       CATCH\_REQUIRE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17653}17653 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE\_FALSE( ... ) CATCH\_REQUIRE\_FALSE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17654}17654 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17655}17655 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17656}17656 \textcolor{comment}{// "{}BDD-\/style"{} convenience wrappers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17657}17657 \textcolor{preprocessor}{\#define CATCH\_SCENARIO( ... ) CATCH\_TEST\_CASE( "{}Scenario: "{}} \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17658}17658 \textcolor{preprocessor}{\#define CATCH\_SCENARIO\_METHOD( className, ... ) INTERNAL\_CATCH\_TEST\_CASE\_METHOD( className, "{}Scenario: "{}} \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17659}17659 \textcolor{preprocessor}{\#define CATCH\_GIVEN( desc )     INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}    Given: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17660}17660 \textcolor{preprocessor}{\#define CATCH\_AND\_GIVEN( desc ) INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}And given: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17661}17661 \textcolor{preprocessor}{\#define CATCH\_WHEN( desc )      INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}     When: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17662}17662 \textcolor{preprocessor}{\#define CATCH\_AND\_WHEN( desc )  INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{} And when: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17663}17663 \textcolor{preprocessor}{\#define CATCH\_THEN( desc )      INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}     Then: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17664}17664 \textcolor{preprocessor}{\#define CATCH\_AND\_THEN( desc )  INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}      And: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17665}17665 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17666}17666 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17667}17667 \textcolor{preprocessor}{\#define CATCH\_BENCHMARK(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17668}17668 \textcolor{preprocessor}{    INTERNAL\_CATCH\_BENCHMARK(INTERNAL\_CATCH\_UNIQUE\_NAME(C\_A\_T\_C\_H\_B\_E\_N\_C\_H\_), INTERNAL\_CATCH\_GET\_1\_ARG(\_\_VA\_ARGS\_\_,,), INTERNAL\_CATCH\_GET\_2\_ARG(\_\_VA\_ARGS\_\_,,))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17669}17669 \textcolor{preprocessor}{\#define CATCH\_BENCHMARK\_ADVANCED(name) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17670}17670 \textcolor{preprocessor}{    INTERNAL\_CATCH\_BENCHMARK\_ADVANCED(INTERNAL\_CATCH\_UNIQUE\_NAME(C\_A\_T\_C\_H\_B\_E\_N\_C\_H\_), name)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17671}17671 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17672}17672 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17673}17673 \textcolor{comment}{// If CATCH\_CONFIG\_PREFIX\_ALL is not defined then the CATCH\_ prefix is not required}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17674}17674 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17675}17675 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17676}\mbox{\hyperlink{catch2_2catch_8hpp_ad57835ba8f1bb419a865ada6bd011a85}{17676}} \textcolor{preprocessor}{\#define REQUIRE( ... ) INTERNAL\_CATCH\_TEST( "{}REQUIRE"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_  )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17677}\mbox{\hyperlink{catch2_2catch_8hpp_ada5065594bafc152162761ace47c1dcb}{17677}} \textcolor{preprocessor}{\#define REQUIRE\_FALSE( ... ) INTERNAL\_CATCH\_TEST( "{}REQUIRE\_FALSE"{}}, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17678}17678 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17679}\mbox{\hyperlink{catch2_2catch_8hpp_ae3c33faa1d31a2bb0811dac74b994e3e}{17679}} \textcolor{preprocessor}{\#define REQUIRE\_THROWS( ... ) INTERNAL\_CATCH\_THROWS( "{}REQUIRE\_THROWS"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17680}\mbox{\hyperlink{catch2_2catch_8hpp_ae24a059e3c28ff3eea69be48282f5f81}{17680}} \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_AS( expr, exceptionType ) INTERNAL\_CATCH\_THROWS\_AS( "{}REQUIRE\_THROWS\_AS"{}}, exceptionType, Catch::ResultDisposition::Normal, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17681}\mbox{\hyperlink{catch2_2catch_8hpp_aa39a017db507132071d2819f087b2f28}{17681}} \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_WITH( expr, matcher ) INTERNAL\_CATCH\_THROWS\_STR\_MATCHES( "{}REQUIRE\_THROWS\_WITH"{}}, Catch::ResultDisposition::Normal, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17682}17682 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17683}\mbox{\hyperlink{catch2_2catch_8hpp_a54473a48ac2ac55bfe1165b69e1b8010}{17683}} \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_MATCHES( expr, exceptionType, matcher ) INTERNAL\_CATCH\_THROWS\_MATCHES( "{}REQUIRE\_THROWS\_MATCHES"{}}, exceptionType, Catch::ResultDisposition::Normal, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17684}17684 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17685}\mbox{\hyperlink{catch2_2catch_8hpp_ab0148f0dfca438f7aa01974e9c33216a}{17685}} \textcolor{preprocessor}{\#define REQUIRE\_NOTHROW( ... ) INTERNAL\_CATCH\_NO\_THROW( "{}REQUIRE\_NOTHROW"{}}, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17686}17686 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17687}\mbox{\hyperlink{catch2_2catch_8hpp_a836cca6b6ed3a1706353f6d1bca0935f}{17687}} \textcolor{preprocessor}{\#define CHECK( ... ) INTERNAL\_CATCH\_TEST( "{}CHECK"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17688}\mbox{\hyperlink{catch2_2catch_8hpp_a7bf095d8512cb180f8ff3a2258a6eaac}{17688}} \textcolor{preprocessor}{\#define CHECK\_FALSE( ... ) INTERNAL\_CATCH\_TEST( "{}CHECK\_FALSE"{}}, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17689}\mbox{\hyperlink{catch2_2catch_8hpp_a354466c7b989ec55784c02d74013263c}{17689}} \textcolor{preprocessor}{\#define CHECKED\_IF( ... ) INTERNAL\_CATCH\_IF( "{}CHECKED\_IF"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17690}\mbox{\hyperlink{catch2_2catch_8hpp_a5fa42bb950a65e22eac778c86b27d832}{17690}} \textcolor{preprocessor}{\#define CHECKED\_ELSE( ... ) INTERNAL\_CATCH\_ELSE( "{}CHECKED\_ELSE"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17691}\mbox{\hyperlink{catch2_2catch_8hpp_a13c6feaf82c3c419104c50dbb8caa3ef}{17691}} \textcolor{preprocessor}{\#define CHECK\_NOFAIL( ... ) INTERNAL\_CATCH\_TEST( "{}CHECK\_NOFAIL"{}}, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17692}17692 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17693}\mbox{\hyperlink{catch2_2catch_8hpp_a5c646dfe831e596b59073014c1c8b9e5}{17693}} \textcolor{preprocessor}{\#define CHECK\_THROWS( ... )  INTERNAL\_CATCH\_THROWS( "{}CHECK\_THROWS"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17694}\mbox{\hyperlink{catch2_2catch_8hpp_a1fb6439098d2a12bb69188034e03baf2}{17694}} \textcolor{preprocessor}{\#define CHECK\_THROWS\_AS( expr, exceptionType ) INTERNAL\_CATCH\_THROWS\_AS( "{}CHECK\_THROWS\_AS"{}}, exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17695}\mbox{\hyperlink{catch2_2catch_8hpp_a4903733490f526b58053836575e99066}{17695}} \textcolor{preprocessor}{\#define CHECK\_THROWS\_WITH( expr, matcher ) INTERNAL\_CATCH\_THROWS\_STR\_MATCHES( "{}CHECK\_THROWS\_WITH"{}}, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17696}17696 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17697}\mbox{\hyperlink{catch2_2catch_8hpp_a74fcc14d39e8cc35ff39f69c5b60e375}{17697}} \textcolor{preprocessor}{\#define CHECK\_THROWS\_MATCHES( expr, exceptionType, matcher ) INTERNAL\_CATCH\_THROWS\_MATCHES( "{}CHECK\_THROWS\_MATCHES"{}}, exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17698}17698 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17699}\mbox{\hyperlink{catch2_2catch_8hpp_a78e70f011f20c4ade1d1ac2b8fd33626}{17699}} \textcolor{preprocessor}{\#define CHECK\_NOTHROW( ... ) INTERNAL\_CATCH\_NO\_THROW( "{}CHECK\_NOTHROW"{}}, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17700}17700 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17701}17701 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17702}\mbox{\hyperlink{catch2_2catch_8hpp_a5b8c33c63e0804d4458e2c761370b75d}{17702}} \textcolor{preprocessor}{\#define CHECK\_THAT( arg, matcher ) INTERNAL\_CHECK\_THAT( "{}CHECK\_THAT"{}}, matcher, Catch::ResultDisposition::ContinueOnFailure, arg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17703}17703 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17704}\mbox{\hyperlink{catch2_2catch_8hpp_ac1354db6f3e9c1e0a8eda0eea7ff1f0a}{17704}} \textcolor{preprocessor}{\#define REQUIRE\_THAT( arg, matcher ) INTERNAL\_CHECK\_THAT( "{}REQUIRE\_THAT"{}}, matcher, Catch::ResultDisposition::Normal, arg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17705}17705 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17706}17706 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17707}\mbox{\hyperlink{catch2_2catch_8hpp_a3ae64706314066fdc8b6c8029a915aa7}{17707}} \textcolor{preprocessor}{\#define INFO( msg ) INTERNAL\_CATCH\_INFO( "{}INFO"{}}, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17708}\mbox{\hyperlink{catch2_2catch_8hpp_a8dd723bbdb751f1c2f3af8c4f264b7a3}{17708}} \textcolor{preprocessor}{\#define UNSCOPED\_INFO( msg ) INTERNAL\_CATCH\_UNSCOPED\_INFO( "{}UNSCOPED\_INFO"{}}, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17709}\mbox{\hyperlink{catch2_2catch_8hpp_a108d6c5c51dd46e82a62b262394f0242}{17709}} \textcolor{preprocessor}{\#define WARN( msg ) INTERNAL\_CATCH\_MSG( "{}WARN"{}}, Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17710}\mbox{\hyperlink{catch2_2catch_8hpp_aaf9fe43c53965ff8d94bbd522fd1fd7a}{17710}} \textcolor{preprocessor}{\#define CAPTURE( ... ) INTERNAL\_CATCH\_CAPTURE( INTERNAL\_CATCH\_UNIQUE\_NAME(capturer), "{}CAPTURE"{}},\_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17711}17711 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17712}\mbox{\hyperlink{catch2_2catch_8hpp_abd6e2aec703006b3da62cf7860c9808f}{17712}} \textcolor{preprocessor}{\#define TEST\_CASE( ... ) INTERNAL\_CATCH\_TESTCASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17713}\mbox{\hyperlink{catch2_2catch_8hpp_adf06142f54a9e271590fa0e270bc41d2}{17713}} \textcolor{preprocessor}{\#define TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17714}\mbox{\hyperlink{catch2_2catch_8hpp_add790b4107e8b013f21b0272be7bcc76}{17714}} \textcolor{preprocessor}{\#define METHOD\_AS\_TEST\_CASE( method, ... ) INTERNAL\_CATCH\_METHOD\_AS\_TEST\_CASE( method, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17715}\mbox{\hyperlink{catch2_2catch_8hpp_a784b9192db328b4f21186f9b26e4146e}{17715}} \textcolor{preprocessor}{\#define REGISTER\_TEST\_CASE( Function, ... ) INTERNAL\_CATCH\_REGISTER\_TESTCASE( Function, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17716}\mbox{\hyperlink{catch2_2catch_8hpp_ad512fd95a78b95770b9759823f8fbc21}{17716}} \textcolor{preprocessor}{\#define SECTION( ... ) INTERNAL\_CATCH\_SECTION( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17717}\mbox{\hyperlink{catch2_2catch_8hpp_aa1caa37b980555de35faefa9191b5128}{17717}} \textcolor{preprocessor}{\#define DYNAMIC\_SECTION( ... ) INTERNAL\_CATCH\_DYNAMIC\_SECTION( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17718}\mbox{\hyperlink{catch2_2catch_8hpp_ac8d1eaf65528f86b445cf6e45b2d72c9}{17718}} \textcolor{preprocessor}{\#define FAIL( ... ) INTERNAL\_CATCH\_MSG( "{}FAIL"{}}, Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17719}\mbox{\hyperlink{catch2_2catch_8hpp_a3c2341a3238242fdc02d33a1968bd1d2}{17719}} \textcolor{preprocessor}{\#define FAIL\_CHECK( ... ) INTERNAL\_CATCH\_MSG( "{}FAIL\_CHECK"{}}, Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17720}\mbox{\hyperlink{catch2_2catch_8hpp_a8e852a9421caf4fda4e1903d9f02bcf5}{17720}} \textcolor{preprocessor}{\#define SUCCEED( ... ) INTERNAL\_CATCH\_MSG( "{}SUCCEED"{}}, Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17721}\mbox{\hyperlink{catch2_2catch_8hpp_ab41cb63be394c30d48fa579bf8352f18}{17721}} \textcolor{preprocessor}{\#define ANON\_TEST\_CASE() INTERNAL\_CATCH\_TESTCASE()}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17722}17722 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17723}17723 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17724}\mbox{\hyperlink{catch2_2catch_8hpp_a9a88d21bfca0d58782cc5f0811801303}{17724}} \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17725}\mbox{\hyperlink{catch2_2catch_8hpp_a4286bffddeb38a4e793ef35b7555f474}{17725}} \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17726}\mbox{\hyperlink{catch2_2catch_8hpp_a5922ee8a997f9f6c5016b186f148b73b}{17726}} \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17727}\mbox{\hyperlink{catch2_2catch_8hpp_a7b7cfca8f5e204e872ec31dc186957ac}{17727}} \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17728}\mbox{\hyperlink{catch2_2catch_8hpp_a76578a19e481e4ccdb928e68a17478d5}{17728}} \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17729}\mbox{\hyperlink{catch2_2catch_8hpp_a52bd728f9409ff8fc6a24d49282a1994}{17729}} \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17730}\mbox{\hyperlink{catch2_2catch_8hpp_a15aefc2b8f75059606bebf400a348870}{17730}} \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17731}\mbox{\hyperlink{catch2_2catch_8hpp_af9e44fff2a2bdba1d66ee625e8ed126d}{17731}} \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17732}\mbox{\hyperlink{catch2_2catch_8hpp_a6c5f7165be1abd8331be1a47a446f20a}{17732}} \textcolor{preprocessor}{\#define TEMPLATE\_LIST\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17733}\mbox{\hyperlink{catch2_2catch_8hpp_a00cdc7c1452d76b386c3b85f9cce80c0}{17733}} \textcolor{preprocessor}{\#define TEMPLATE\_LIST\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17734}17734 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17735}17735 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17736}17736 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17737}17737 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17738}17738 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17739}17739 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17740}17740 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17741}17741 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17742}17742 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17743}17743 \textcolor{preprocessor}{\#define TEMPLATE\_LIST\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE( \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17744}17744 \textcolor{preprocessor}{\#define TEMPLATE\_LIST\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_LIST\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17745}17745 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17746}17746 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17747}17747 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_RUNTIME\_STATIC\_REQUIRE)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17748}\mbox{\hyperlink{catch2_2catch_8hpp_abad9ff23b730469f209b010e0ac4687c}{17748}} \textcolor{preprocessor}{\#define STATIC\_REQUIRE( ... )       static\_assert(   \_\_VA\_ARGS\_\_,  \#\_\_VA\_ARGS\_\_ ); SUCCEED( \#\_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17749}\mbox{\hyperlink{catch2_2catch_8hpp_ae7506af68f12e7efdb22e951b911b5a0}{17749}} \textcolor{preprocessor}{\#define STATIC\_REQUIRE\_FALSE( ... ) static\_assert( !(\_\_VA\_ARGS\_\_), "{}!("{}} \#\_\_VA\_ARGS\_\_ "{})"{} ); SUCCEED( "{}!("{} \#\_\_VA\_ARGS\_\_ "{})"{} )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17750}17750 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17751}17751 \textcolor{preprocessor}{\#define STATIC\_REQUIRE( ... )       REQUIRE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17752}17752 \textcolor{preprocessor}{\#define STATIC\_REQUIRE\_FALSE( ... ) REQUIRE\_FALSE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17753}17753 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17754}17754 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17755}17755 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17756}17756 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17757}\mbox{\hyperlink{catch2_2catch_8hpp_a094602ff56422c96e501eaaef1ef8c12}{17757}} \textcolor{preprocessor}{\#define CATCH\_TRANSLATE\_EXCEPTION( signature ) INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION( signature )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17758}17758 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17759}17759 \textcolor{comment}{// "{}BDD-\/style"{} convenience wrappers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17760}\mbox{\hyperlink{catch2_2catch_8hpp_acf8f441c7b9d70251ccbb7ccd8b83183}{17760}} \textcolor{preprocessor}{\#define SCENARIO( ... ) TEST\_CASE( "{}Scenario: "{}} \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17761}\mbox{\hyperlink{catch2_2catch_8hpp_add17eb8f8d85412a08a8a048cd38f33b}{17761}} \textcolor{preprocessor}{\#define SCENARIO\_METHOD( className, ... ) INTERNAL\_CATCH\_TEST\_CASE\_METHOD( className, "{}Scenario: "{}} \_\_VA\_ARGS\_\_ )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17762}17762 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17763}\mbox{\hyperlink{catch2_2catch_8hpp_a2b70c603786d759242856d883dbe93bd}{17763}} \textcolor{preprocessor}{\#define GIVEN( desc )     INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}    Given: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17764}\mbox{\hyperlink{catch2_2catch_8hpp_a89dcfbe509f3f81fd865d4acd1632b66}{17764}} \textcolor{preprocessor}{\#define AND\_GIVEN( desc ) INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}And given: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17765}\mbox{\hyperlink{catch2_2catch_8hpp_ab09e9b8186233f676ce6a23aebe89d6e}{17765}} \textcolor{preprocessor}{\#define WHEN( desc )      INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}     When: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17766}\mbox{\hyperlink{catch2_2catch_8hpp_a054a37584492a5dfbdb5ee0f2fc10b7a}{17766}} \textcolor{preprocessor}{\#define AND\_WHEN( desc )  INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{} And when: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17767}\mbox{\hyperlink{catch2_2catch_8hpp_a27987092139727fd7a471b5f74dc62de}{17767}} \textcolor{preprocessor}{\#define THEN( desc )      INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}     Then: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17768}\mbox{\hyperlink{catch2_2catch_8hpp_aafdc2a6cfbcecedec25e64bcbd6c09c6}{17768}} \textcolor{preprocessor}{\#define AND\_THEN( desc )  INTERNAL\_CATCH\_DYNAMIC\_SECTION( "{}      And: "{}} << desc )}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17769}17769 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17770}17770 \textcolor{preprocessor}{\#if defined(CATCH\_CONFIG\_ENABLE\_BENCHMARKING)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17771}17771 \textcolor{preprocessor}{\#define BENCHMARK(...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17772}17772 \textcolor{preprocessor}{    INTERNAL\_CATCH\_BENCHMARK(INTERNAL\_CATCH\_UNIQUE\_NAME(C\_A\_T\_C\_H\_B\_E\_N\_C\_H\_), INTERNAL\_CATCH\_GET\_1\_ARG(\_\_VA\_ARGS\_\_,,), INTERNAL\_CATCH\_GET\_2\_ARG(\_\_VA\_ARGS\_\_,,))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17773}17773 \textcolor{preprocessor}{\#define BENCHMARK\_ADVANCED(name) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17774}17774 \textcolor{preprocessor}{    INTERNAL\_CATCH\_BENCHMARK\_ADVANCED(INTERNAL\_CATCH\_UNIQUE\_NAME(C\_A\_T\_C\_H\_B\_E\_N\_C\_H\_), name)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17775}17775 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_ENABLE\_BENCHMARKING}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17776}17776 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17777}17777 \textcolor{keyword}{using }\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Catch::Detail::Approx}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17778}17778 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17779}17779 \textcolor{preprocessor}{\#else }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17780}17780 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17782}17782 \textcolor{comment}{// If this config identifier is defined then all CATCH macros are prefixed with CATCH\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17783}17783 \textcolor{preprocessor}{\#ifdef CATCH\_CONFIG\_PREFIX\_ALL}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17784}17784 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17785}17785 \textcolor{preprocessor}{\#define CATCH\_REQUIRE( ... )        (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17786}17786 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_FALSE( ... )  (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17787}17787 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17788}17788 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17789}17789 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_AS( expr, exceptionType ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17790}17790 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_WITH( expr, matcher )     (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17791}17791 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17792}17792 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THROWS\_MATCHES( expr, exceptionType, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17793}17793 \textcolor{preprocessor}{\#endif}\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17794}17794 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_NOTHROW( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17795}17795 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17796}17796 \textcolor{preprocessor}{\#define CATCH\_CHECK( ... )         (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17797}17797 \textcolor{preprocessor}{\#define CATCH\_CHECK\_FALSE( ... )   (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17798}17798 \textcolor{preprocessor}{\#define CATCH\_CHECKED\_IF( ... )    if (\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17799}17799 \textcolor{preprocessor}{\#define CATCH\_CHECKED\_ELSE( ... )  if (!(\_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17800}17800 \textcolor{preprocessor}{\#define CATCH\_CHECK\_NOFAIL( ... )  (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17801}17801 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17802}17802 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS( ... )  (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17803}17803 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_AS( expr, exceptionType ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17804}17804 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_WITH( expr, matcher )     (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17805}17805 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17806}17806 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THROWS\_MATCHES( expr, exceptionType, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17807}17807 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17808}17808 \textcolor{preprocessor}{\#define CATCH\_CHECK\_NOTHROW( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17809}17809 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17810}17810 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17811}17811 \textcolor{preprocessor}{\#define CATCH\_CHECK\_THAT( arg, matcher )   (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17812}17812 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17813}17813 \textcolor{preprocessor}{\#define CATCH\_REQUIRE\_THAT( arg, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17814}17814 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17815}17815 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17816}17816 \textcolor{preprocessor}{\#define CATCH\_INFO( msg )          (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17817}17817 \textcolor{preprocessor}{\#define CATCH\_UNSCOPED\_INFO( msg ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17818}17818 \textcolor{preprocessor}{\#define CATCH\_WARN( msg )          (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17819}17819 \textcolor{preprocessor}{\#define CATCH\_CAPTURE( msg )       (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17820}17820 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17821}17821 \textcolor{preprocessor}{\#define CATCH\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17822}17822 \textcolor{preprocessor}{\#define CATCH\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17823}17823 \textcolor{preprocessor}{\#define CATCH\_METHOD\_AS\_TEST\_CASE( method, ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17824}17824 \textcolor{preprocessor}{\#define CATCH\_REGISTER\_TEST\_CASE( Function, ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17825}17825 \textcolor{preprocessor}{\#define CATCH\_SECTION( ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17826}17826 \textcolor{preprocessor}{\#define CATCH\_DYNAMIC\_SECTION( ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17827}17827 \textcolor{preprocessor}{\#define CATCH\_FAIL( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17828}17828 \textcolor{preprocessor}{\#define CATCH\_FAIL\_CHECK( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17829}17829 \textcolor{preprocessor}{\#define CATCH\_SUCCEED( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17830}17830 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17831}17831 \textcolor{preprocessor}{\#define CATCH\_ANON\_TEST\_CASE() INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17832}17832 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17833}17833 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17834}17834 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17835}17835 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17836}17836 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17837}17837 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17838}17838 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17839}17839 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17840}17840 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17841}17841 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17842}17842 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17843}17843 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17844}17844 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17845}17845 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17846}17846 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17847}17847 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17848}17848 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) CATCH\_TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17849}17849 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17850}17850 \textcolor{preprocessor}{\#define CATCH\_TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) CATCH\_TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17851}17851 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17852}17852 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17853}17853 \textcolor{comment}{// "{}BDD-\/style"{} convenience wrappers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17854}17854 \textcolor{preprocessor}{\#define CATCH\_SCENARIO( ... ) INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17855}17855 \textcolor{preprocessor}{\#define CATCH\_SCENARIO\_METHOD( className, ... ) INTERNAL\_CATCH\_TESTCASE\_METHOD\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ), className )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17856}17856 \textcolor{preprocessor}{\#define CATCH\_GIVEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17857}17857 \textcolor{preprocessor}{\#define CATCH\_AND\_GIVEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17858}17858 \textcolor{preprocessor}{\#define CATCH\_WHEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17859}17859 \textcolor{preprocessor}{\#define CATCH\_AND\_WHEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17860}17860 \textcolor{preprocessor}{\#define CATCH\_THEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17861}17861 \textcolor{preprocessor}{\#define CATCH\_AND\_THEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17862}17862 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17863}17863 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE( ... )       (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17864}17864 \textcolor{preprocessor}{\#define CATCH\_STATIC\_REQUIRE\_FALSE( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17865}17865 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17866}17866 \textcolor{comment}{// If CATCH\_CONFIG\_PREFIX\_ALL is not defined then the CATCH\_ prefix is not required}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17867}17867 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17868}17868 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17869}17869 \textcolor{preprocessor}{\#define REQUIRE( ... )       (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17870}17870 \textcolor{preprocessor}{\#define REQUIRE\_FALSE( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17871}17871 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17872}17872 \textcolor{preprocessor}{\#define REQUIRE\_THROWS( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17873}17873 \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_AS( expr, exceptionType ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17874}17874 \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_WITH( expr, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17875}17875 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17876}17876 \textcolor{preprocessor}{\#define REQUIRE\_THROWS\_MATCHES( expr, exceptionType, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17877}17877 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17878}17878 \textcolor{preprocessor}{\#define REQUIRE\_NOTHROW( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17879}17879 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17880}17880 \textcolor{preprocessor}{\#define CHECK( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17881}17881 \textcolor{preprocessor}{\#define CHECK\_FALSE( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17882}17882 \textcolor{preprocessor}{\#define CHECKED\_IF( ... ) if (\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17883}17883 \textcolor{preprocessor}{\#define CHECKED\_ELSE( ... ) if (!(\_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17884}17884 \textcolor{preprocessor}{\#define CHECK\_NOFAIL( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17885}17885 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17886}17886 \textcolor{preprocessor}{\#define CHECK\_THROWS( ... )  (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17887}17887 \textcolor{preprocessor}{\#define CHECK\_THROWS\_AS( expr, exceptionType ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17888}17888 \textcolor{preprocessor}{\#define CHECK\_THROWS\_WITH( expr, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17889}17889 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17890}17890 \textcolor{preprocessor}{\#define CHECK\_THROWS\_MATCHES( expr, exceptionType, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17891}17891 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17892}17892 \textcolor{preprocessor}{\#define CHECK\_NOTHROW( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17893}17893 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17894}17894 \textcolor{preprocessor}{\#if !defined(CATCH\_CONFIG\_DISABLE\_MATCHERS)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17895}17895 \textcolor{preprocessor}{\#define CHECK\_THAT( arg, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17896}17896 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17897}17897 \textcolor{preprocessor}{\#define REQUIRE\_THAT( arg, matcher ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17898}17898 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// CATCH\_CONFIG\_DISABLE\_MATCHERS}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17899}17899 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17900}17900 \textcolor{preprocessor}{\#define INFO( msg ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17901}17901 \textcolor{preprocessor}{\#define UNSCOPED\_INFO( msg ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17902}17902 \textcolor{preprocessor}{\#define WARN( msg ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17903}17903 \textcolor{preprocessor}{\#define CAPTURE( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17904}17904 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17905}17905 \textcolor{preprocessor}{\#define TEST\_CASE( ... )  INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17906}17906 \textcolor{preprocessor}{\#define TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17907}17907 \textcolor{preprocessor}{\#define METHOD\_AS\_TEST\_CASE( method, ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17908}17908 \textcolor{preprocessor}{\#define REGISTER\_TEST\_CASE( Function, ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17909}17909 \textcolor{preprocessor}{\#define SECTION( ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17910}17910 \textcolor{preprocessor}{\#define DYNAMIC\_SECTION( ... )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17911}17911 \textcolor{preprocessor}{\#define FAIL( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17912}17912 \textcolor{preprocessor}{\#define FAIL\_CHECK( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17913}17913 \textcolor{preprocessor}{\#define SUCCEED( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17914}17914 \textcolor{preprocessor}{\#define ANON\_TEST\_CASE() INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ))}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17915}17915 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17916}17916 \textcolor{preprocessor}{\#ifndef CATCH\_CONFIG\_TRADITIONAL\_MSVC\_PREPROCESSOR}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17917}17917 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17918}17918 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17919}17919 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17920}17920 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17921}17921 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17922}17922 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17923}17923 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17924}17924 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17925}17925 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17926}17926 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17927}17927 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_SIG( ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_SIG\_NO\_REGISTRATION(\_\_VA\_ARGS\_\_) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17928}17928 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17929}17929 \textcolor{preprocessor}{\#define TEMPLATE\_TEST\_CASE\_METHOD\_SIG( className, ... ) INTERNAL\_CATCH\_EXPAND\_VARGS( INTERNAL\_CATCH\_TEMPLATE\_TEST\_CASE\_METHOD\_SIG\_NO\_REGISTRATION(className, \_\_VA\_ARGS\_\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17930}17930 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE( ... ) TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17931}17931 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_SIG( ... ) TEMPLATE\_TEST\_CASE( \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17932}17932 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD( className, ... ) TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17933}17933 \textcolor{preprocessor}{\#define TEMPLATE\_PRODUCT\_TEST\_CASE\_METHOD\_SIG( className, ... ) TEMPLATE\_TEST\_CASE\_METHOD( className, \_\_VA\_ARGS\_\_ )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17934}17934 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17935}17935 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17936}17936 \textcolor{preprocessor}{\#define STATIC\_REQUIRE( ... )       (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17937}17937 \textcolor{preprocessor}{\#define STATIC\_REQUIRE\_FALSE( ... ) (void)(0)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17938}17938 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17939}17939 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17940}17940 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17941}17941 \textcolor{preprocessor}{\#define CATCH\_TRANSLATE\_EXCEPTION( signature ) INTERNAL\_CATCH\_TRANSLATE\_EXCEPTION\_NO\_REG( INTERNAL\_CATCH\_UNIQUE\_NAME( catch\_internal\_ExceptionTranslator ), signature )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17942}17942 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17943}17943 \textcolor{comment}{// "{}BDD-\/style"{} convenience wrappers}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17944}17944 \textcolor{preprocessor}{\#define SCENARIO( ... ) INTERNAL\_CATCH\_TESTCASE\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ) )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17945}17945 \textcolor{preprocessor}{\#define SCENARIO\_METHOD( className, ... ) INTERNAL\_CATCH\_TESTCASE\_METHOD\_NO\_REGISTRATION(INTERNAL\_CATCH\_UNIQUE\_NAME( C\_A\_T\_C\_H\_T\_E\_S\_T\_ ), className )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17946}17946 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17947}17947 \textcolor{preprocessor}{\#define GIVEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17948}17948 \textcolor{preprocessor}{\#define AND\_GIVEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17949}17949 \textcolor{preprocessor}{\#define WHEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17950}17950 \textcolor{preprocessor}{\#define AND\_WHEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17951}17951 \textcolor{preprocessor}{\#define THEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17952}17952 \textcolor{preprocessor}{\#define AND\_THEN( desc )}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17953}17953 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17954}17954 \textcolor{keyword}{using }\mbox{\hyperlink{class_catch_1_1_detail_1_1_approx}{Catch::Detail::Approx}};}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17955}17955 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17956}17956 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17957}17957 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17958}17958 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// ! CATCH\_CONFIG\_IMPL\_ONLY}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17959}17959 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17960}17960 \textcolor{comment}{// start catch\_reenable\_warnings.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17961}17961 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17962}17962 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17963}17963 \textcolor{preprocessor}{\#ifdef \_\_clang\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17964}17964 \textcolor{preprocessor}{\#    ifdef \_\_ICC }\textcolor{comment}{// icpc defines the \_\_clang\_\_ macro}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17965}17965 \textcolor{preprocessor}{\#        pragma warning(pop)}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17966}17966 \textcolor{preprocessor}{\#    else}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17967}17967 \textcolor{preprocessor}{\#        pragma clang diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17968}17968 \textcolor{preprocessor}{\#    endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17969}17969 \textcolor{preprocessor}{\#elif defined \_\_GNUC\_\_}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17970}17970 \textcolor{preprocessor}{\#    pragma GCC diagnostic pop}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17971}17971 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17972}17972 }
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17973}17973 \textcolor{comment}{// end catch\_reenable\_warnings.h}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17974}17974 \textcolor{comment}{// end catch.hpp}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17975}17975 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// TWOBLUECUBES\_SINGLE\_INCLUDE\_CATCH\_HPP\_INCLUDED}}
\DoxyCodeLine{\Hypertarget{catch2_2catch_8hpp_source_l17976}17976 }

\end{DoxyCode}
