15789 lines
2.9 MiB
15789 lines
2.9 MiB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>QtRocket: tests/vendor/catch_amalgamated.hpp Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { init_search(); });
|
|
/* @license-end */
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">QtRocket
|
|
</div>
|
|
</td>
|
|
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
|
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('catch__amalgamated_8hpp_source.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">catch_amalgamated.hpp</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="catch__amalgamated_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// Copyright Catch2 Authors</span></div>
|
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// Distributed under the Boost Software License, Version 1.0.</span></div>
|
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">// (See accompanying file LICENSE.txt or copy at</span></div>
|
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">// https://www.boost.org/LICENSE_1_0.txt)</span></div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">// SPDX-License-Identifier: BSL-1.0</span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">// Catch v3.8.1</span></div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// Generated: 2025-04-08 12:33:19.851017</span></div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// ----------------------------------------------------------</span></div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">// This file is an amalgamation of multiple different files.</span></div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">// You probably shouldn't edit it directly.</span></div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// ----------------------------------------------------------</span></div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifndef CATCH_AMALGAMATED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define CATCH_AMALGAMATED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span></div>
|
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifndef CATCH_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a46e230da206ed7d95ccf9f8c57f39f99"> 34</a></span><span class="preprocessor">#define CATCH_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
|
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span></div>
|
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#ifndef CATCH_BENCHMARK_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad6a01ef4bd9ea7c95981b91f31a04c5a"> 52</a></span><span class="preprocessor">#define CATCH_BENCHMARK_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#ifndef CATCH_BENCHMARK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afeab901018860643a3f5bf0bd842427d"> 59</a></span><span class="preprocessor">#define CATCH_BENCHMARK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#ifndef CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a552be2b6128808bbe7cf86f74d97c77c"> 64</a></span><span class="preprocessor">#define CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">// Detect a number of compiler features - by compiler</span></div>
|
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">// The following features are defined:</span></div>
|
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported?</span></div>
|
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported?</span></div>
|
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment">// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled?</span></div>
|
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment">// ****************</span></div>
|
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">// Note to maintainers: if new toggles are added please document them</span></div>
|
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">// in configuration.md, too</span></div>
|
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment">// ****************</span></div>
|
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">// In general each macro has a _NO_<feature name> form</span></div>
|
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature.</span></div>
|
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment">// Many features, at point of detection, define an _INTERNAL_ macro, so they</span></div>
|
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment">// can be combined, en-mass, with the _NO_ forms later.</span></div>
|
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
|
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
|
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#ifndef CATCH_PLATFORM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a43b0de34291d1f77d2ee4ab87843ba7a"> 85</a></span><span class="preprocessor">#define CATCH_PLATFORM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment">// See e.g.:</span></div>
|
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment">// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h.auto.html</span></div>
|
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor">#ifdef __APPLE__</span></div>
|
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor"># ifndef __has_extension</span></div>
|
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor"># define __has_extension(x) 0</span></div>
|
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor"># include <TargetConditionals.h></span></div>
|
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor"># if (defined(TARGET_OS_OSX) && TARGET_OS_OSX == 1) || \</span></div>
|
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"> (defined(TARGET_OS_MAC) && TARGET_OS_MAC == 1)</span></div>
|
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor"># define CATCH_PLATFORM_MAC</span></div>
|
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"># elif (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1)</span></div>
|
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor"># define CATCH_PLATFORM_IPHONE</span></div>
|
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
|
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#elif defined(linux) || defined(__linux) || defined(__linux__)</span></div>
|
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor"># define CATCH_PLATFORM_LINUX</span></div>
|
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
|
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__)</span></div>
|
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor"># define CATCH_PLATFORM_WINDOWS</span></div>
|
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
|
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"># if defined( WINAPI_FAMILY ) && ( WINAPI_FAMILY == WINAPI_FAMILY_APP )</span></div>
|
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor"># define CATCH_PLATFORM_WINDOWS_UWP</span></div>
|
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
|
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor">#elif defined(__ORBIS__) || defined(__PROSPERO__)</span></div>
|
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor"># define CATCH_PLATFORM_PLAYSTATION</span></div>
|
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_PLATFORM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
|
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#ifdef __cplusplus</span></div>
|
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
|
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor"># if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)</span></div>
|
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor"># define CATCH_CPP17_OR_GREATER</span></div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="preprocessor"># if (__cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L)</span></div>
|
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor"># define CATCH_CPP20_OR_GREATER</span></div>
|
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
|
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
|
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment">// Only GCC compiler should be used in this block, so other compilers trying to</span></div>
|
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment">// mask themselves as GCC should be ignored.</span></div>
|
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__) && !defined(__NVCOMPILER)</span></div>
|
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" )</span></div>
|
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" )</span></div>
|
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
|
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment">// This only works on GCC 9+. so we have to also add a global suppression of Wparentheses</span></div>
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">// for older versions of GCC.</span></div>
|
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor"> _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )</span></div>
|
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
|
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT \</span></div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="preprocessor"> _Pragma( "GCC diagnostic ignored \"-Wunused-result\"" )</span></div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
|
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor"> _Pragma( "GCC diagnostic ignored \"-Wunused-variable\"" )</span></div>
|
|
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
|
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor"> _Pragma( "GCC diagnostic ignored \"-Wuseless-cast\"" )</span></div>
|
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
|
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="preprocessor"> _Pragma( "GCC diagnostic ignored \"-Wshadow\"" )</span></div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_USE_BUILTIN_CONSTANT_P</span></div>
|
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
|
|
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
|
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor">#if defined(__NVCOMPILER)</span></div>
|
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "diag push" )</span></div>
|
|
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "diag pop" )</span></div>
|
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS _Pragma( "diag_suppress declared_but_not_referenced" )</span></div>
|
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
|
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor">#if defined(__CUDACC__) && !defined(__clang__)</span></div>
|
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="preprocessor"># ifdef __NVCC_DIAG_PRAGMA_SUPPORT__</span></div>
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment">// New pragmas introduced in CUDA 11.5+</span></div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "nv_diagnostic push" )</span></div>
|
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "nv_diagnostic pop" )</span></div>
|
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS _Pragma( "nv_diag_suppress 177" )</span></div>
|
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="preprocessor"># else</span></div>
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS _Pragma( "diag_suppress 177" )</span></div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
|
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment">// clang-cl defines _MSC_VER as well as __clang__, which could cause the</span></div>
|
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment">// start/stop internal suppression macros to be double defined.</span></div>
|
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="preprocessor">#if defined(__clang__) && !defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_USE_BUILTIN_CONSTANT_P</span></div>
|
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" )</span></div>
|
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" )</span></div>
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="preprocessor">#endif </span><span class="comment">// __clang__ && !_MSC_VER</span></div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="preprocessor">#if defined(__clang__)</span></div>
|
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
|
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \</span></div>
|
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"")</span></div>
|
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
|
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )</span></div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" )</span></div>
|
|
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
|
|
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="preprocessor"># if (__clang_major__ >= 20)</span></div>
|
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wvariadic-macro-arguments-omitted\"" )</span></div>
|
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="preprocessor"># elif (__clang_major__ == 19)</span></div>
|
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wc++20-extensions\"" )</span></div>
|
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="preprocessor"># else</span></div>
|
|
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS</span></div>
|
|
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> _Pragma( <span class="stringliteral">"clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\""</span> )</div>
|
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
|
|
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wunused-template\"" )</span></div>
|
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
|
|
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wcomma\"" )</span></div>
|
|
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
|
|
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS \</span></div>
|
|
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor"> _Pragma( "clang diagnostic ignored \"-Wshadow\"" )</span></div>
|
|
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
|
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor">#endif </span><span class="comment">// __clang__</span></div>
|
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
|
|
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment">// As of this writing, IBM XL's implementation of __builtin_constant_p has a bug</span></div>
|
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment">// which results in calls to destructors being emitted for each temporary,</span></div>
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment">// without a matching initialization. In practice, this can result in something</span></div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment">// like `std::string::~string` being called on an uninitialized value.</span></div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment">// For example, this code will likely segfault under IBM XL:</span></div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment">// ```</span></div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment">// REQUIRE(std::string("12") + "34" == "1234")</span></div>
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">// ```</span></div>
|
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment">// Similarly, NVHPC's implementation of `__builtin_constant_p` has a bug which</span></div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment">// results in calls to the immediately evaluated lambda expressions to be</span></div>
|
|
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment">// reported as unevaluated lambdas.</span></div>
|
|
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="comment">// https://developer.nvidia.com/nvidia_bug/3321845.</span></div>
|
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="comment">// Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented.</span></div>
|
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="preprocessor">#if defined( __ibmxl__ ) || defined( __CUDACC__ ) || defined( __NVCOMPILER )</span></div>
|
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_USE_BUILTIN_CONSTANT_P</span></div>
|
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
|
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
|
|
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span></div>
|
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">// We know some environments not to support full POSIX signals</span></div>
|
|
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="preprocessor">#if defined( CATCH_PLATFORM_WINDOWS ) || \</span></div>
|
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor"> defined( CATCH_PLATFORM_PLAYSTATION ) || \</span></div>
|
|
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor"> defined( __CYGWIN__ ) || \</span></div>
|
|
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="preprocessor"> defined( __QNX__ ) || \</span></div>
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="preprocessor"> defined( __EMSCRIPTEN__ ) || \</span></div>
|
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="preprocessor"> defined( __DJGPP__ ) || \</span></div>
|
|
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="preprocessor"> defined( __OS400__ )</span></div>
|
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS</span></div>
|
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3c8d4b828da004fc3ad2511c1900ec19"> 249</a></span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS</span></div>
|
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span></div>
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment">// Assume that some platforms do not support getenv.</span></div>
|
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="preprocessor">#if defined( CATCH_PLATFORM_WINDOWS_UWP ) || \</span></div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="preprocessor"> defined( CATCH_PLATFORM_PLAYSTATION ) || \</span></div>
|
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="preprocessor"> defined( _GAMING_XBOX )</span></div>
|
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_GETENV</span></div>
|
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af1d39364eef8e638ff7d96d0a47bed92"> 259</a></span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_GETENV</span></div>
|
|
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span></div>
|
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment">// Android somehow still does not support std::to_string</span></div>
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="preprocessor">#if defined(__ANDROID__)</span></div>
|
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING</span></div>
|
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span></div>
|
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="comment">// Not all Windows environments support SEH properly</span></div>
|
|
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="preprocessor">#if defined(__MINGW32__)</span></div>
|
|
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH</span></div>
|
|
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span></div>
|
|
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment">// PS4</span></div>
|
|
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="preprocessor">#if defined(__ORBIS__)</span></div>
|
|
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE</span></div>
|
|
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span></div>
|
|
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="comment">// Cygwin</span></div>
|
|
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="preprocessor">#ifdef __CYGWIN__</span></div>
|
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </div>
|
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="comment">// Required for some versions of Cygwin to declare gettimeofday</span></div>
|
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="comment">// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin</span></div>
|
|
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="preprocessor"># define _BSD_SOURCE</span></div>
|
|
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment">// some versions of cygwin (most) do not support std::to_string. Use the libstd check.</span></div>
|
|
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="comment">// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813</span></div>
|
|
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><span class="preprocessor"># if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \</span></div>
|
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="preprocessor"> && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))</span></div>
|
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
|
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING</span></div>
|
|
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
|
|
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="preprocessor">#endif </span><span class="comment">// __CYGWIN__</span></div>
|
|
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span></div>
|
|
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="comment">// Visual C++</span></div>
|
|
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="preprocessor">#if defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
|
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="comment">// We want to defer to nvcc-specific warning suppression if we are compiled</span></div>
|
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="comment">// with nvcc masquerading for MSVC.</span></div>
|
|
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="preprocessor"># if !defined( __CUDACC__ )</span></div>
|
|
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="preprocessor"> __pragma( warning( push ) )</span></div>
|
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="preprocessor"> __pragma( warning( pop ) )</span></div>
|
|
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
|
|
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="comment">// Universal Windows platform does not support SEH</span></div>
|
|
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="comment">// Or console colours (or console at all...)</span></div>
|
|
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="preprocessor"># if defined(CATCH_PLATFORM_WINDOWS_UWP)</span></div>
|
|
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_COLOUR_WIN32</span></div>
|
|
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="preprocessor"># else</span></div>
|
|
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_WINDOWS_SEH</span></div>
|
|
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
|
|
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment">// MSVC traditional preprocessor needs some workaround for __VA_ARGS__</span></div>
|
|
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment">// _MSVC_TRADITIONAL == 0 means new conformant preprocessor</span></div>
|
|
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="comment">// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor</span></div>
|
|
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="preprocessor"># if !defined(__clang__) </span><span class="comment">// Handle Clang masquerading for msvc</span></div>
|
|
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span><span class="preprocessor"># if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL)</span></div>
|
|
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span><span class="preprocessor"># endif </span><span class="comment">// MSVC_TRADITIONAL</span></div>
|
|
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="preprocessor"># endif </span><span class="comment">// __clang__</span></div>
|
|
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
|
|
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="preprocessor">#endif </span><span class="comment">// _MSC_VER</span></div>
|
|
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
|
|
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="preprocessor">#if defined(_REENTRANT) || defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="comment">// Enable async processing, as -pthread is specified or no additional linking is required</span></div>
|
|
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_USE_ASYNC</span></div>
|
|
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="preprocessor">#endif </span><span class="comment">// _MSC_VER</span></div>
|
|
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span></div>
|
|
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="comment">// Check if we are compiled with -fno-exceptions or equivalent</span></div>
|
|
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="preprocessor">#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND)</span></div>
|
|
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED</span></div>
|
|
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
|
|
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span></div>
|
|
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="comment">// Embarcadero C++Build</span></div>
|
|
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="preprocessor">#if defined(__BORLANDC__)</span></div>
|
|
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN</span></div>
|
|
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span></div>
|
|
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
|
|
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="comment">// RTX is a special version of Windows that is real time.</span></div>
|
|
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span><span class="comment">// This means that it is detected as Windows, but does not provide</span></div>
|
|
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span><span class="comment">// the same set of capabilities as real Windows does.</span></div>
|
|
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span><span class="preprocessor">#if defined(UNDER_RTSS) || defined(RTX64_BUILD)</span></div>
|
|
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH</span></div>
|
|
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_NO_ASYNC</span></div>
|
|
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_NO_COLOUR_WIN32</span></div>
|
|
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
|
|
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="preprocessor">#if !defined(_GLIBCXX_USE_C99_MATH_TR1)</span></div>
|
|
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a48ae5ed6ff9168c5ad3d5058527fbfae"> 359</a></span><span class="preprocessor">#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER</span></div>
|
|
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
|
|
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span><span class="comment">// Various stdlib support checks that require __has_include</span></div>
|
|
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="preprocessor">#if defined(__has_include)</span></div>
|
|
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// Check if string_view is available and usable</span></div>
|
|
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="preprocessor"> #if __has_include(<string_view>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span><span class="preprocessor"> # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW</span></div>
|
|
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> </div>
|
|
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// Check if optional is available and usable</span></div>
|
|
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span><span class="preprocessor"> # if __has_include(<optional>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span><span class="preprocessor"> # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL</span></div>
|
|
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="preprocessor"> # endif </span><span class="comment">// __has_include(<optional>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> </div>
|
|
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// Check if byte is available and usable</span></div>
|
|
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span><span class="preprocessor"> # if __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span><span class="preprocessor"> # include <cstddef></span></div>
|
|
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span><span class="preprocessor"> # if defined(__cpp_lib_byte) && (__cpp_lib_byte > 0)</span></div>
|
|
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span><span class="preprocessor"> # define CATCH_INTERNAL_CONFIG_CPP17_BYTE</span></div>
|
|
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="preprocessor"> # endif</span></div>
|
|
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span><span class="preprocessor"> # endif </span><span class="comment">// __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> </div>
|
|
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <span class="comment">// Check if variant is available and usable</span></div>
|
|
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="preprocessor"> # if __has_include(<variant>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span><span class="preprocessor"> # if defined(__clang__) && (__clang_major__ < 8)</span></div>
|
|
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="comment">// work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852</span></div>
|
|
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> <span class="comment">// fix should be in clang 8, workaround in libstdc++ 8.2</span></div>
|
|
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span><span class="preprocessor"> # include <ciso646></span></div>
|
|
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="preprocessor"> # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9)</span></div>
|
|
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="preprocessor"> # define CATCH_CONFIG_NO_CPP17_VARIANT</span></div>
|
|
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span><span class="preprocessor"> # else</span></div>
|
|
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span><span class="preprocessor"> # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT</span></div>
|
|
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span><span class="preprocessor"> # endif </span><span class="comment">// defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9)</span></div>
|
|
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span><span class="preprocessor"> # else</span></div>
|
|
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="preprocessor"> # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT</span></div>
|
|
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span><span class="preprocessor"> # endif </span><span class="comment">// defined(__clang__) && (__clang_major__ < 8)</span></div>
|
|
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span><span class="preprocessor"> # endif </span><span class="comment">// __has_include(<variant>) && defined(CATCH_CPP17_OR_GREATER)</span></div>
|
|
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span><span class="preprocessor">#endif </span><span class="comment">// defined(__has_include)</span></div>
|
|
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
|
|
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
|
|
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span><span class="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)</span></div>
|
|
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span><span class="preprocessor"># define CATCH_CONFIG_WINDOWS_SEH</span></div>
|
|
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span><span class="comment">// This is set by default, because we assume that unix compilers are posix-signal-compatible by default.</span></div>
|
|
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span><span class="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)</span></div>
|
|
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac5eee4f90512985d2043f971c6f08707"> 405</a></span><span class="preprocessor"># define CATCH_CONFIG_POSIX_SIGNALS</span></div>
|
|
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
|
|
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_GETENV) && !defined(CATCH_INTERNAL_CONFIG_NO_GETENV) && !defined(CATCH_CONFIG_NO_GETENV) && !defined(CATCH_CONFIG_GETENV)</span></div>
|
|
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a031d6a2aef5109e070f77e0d87a32b17"> 409</a></span><span class="preprocessor"># define CATCH_CONFIG_GETENV</span></div>
|
|
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
|
|
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING)</span></div>
|
|
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5e8669f07e3db1e9e1604508689bc28a"> 413</a></span><span class="preprocessor"># define CATCH_CONFIG_CPP11_TO_STRING</span></div>
|
|
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
|
|
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL)</span></div>
|
|
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span><span class="preprocessor"># define CATCH_CONFIG_CPP17_OPTIONAL</span></div>
|
|
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
|
|
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW)</span></div>
|
|
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="preprocessor"># define CATCH_CONFIG_CPP17_STRING_VIEW</span></div>
|
|
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
|
|
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT)</span></div>
|
|
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span><span class="preprocessor"># define CATCH_CONFIG_CPP17_VARIANT</span></div>
|
|
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
|
|
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE)</span></div>
|
|
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span><span class="preprocessor"># define CATCH_CONFIG_CPP17_BYTE</span></div>
|
|
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
|
|
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> </div>
|
|
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span><span class="preprocessor">#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)</span></div>
|
|
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NEW_CAPTURE</span></div>
|
|
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> </div>
|
|
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span><span class="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)</span></div>
|
|
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span><span class="preprocessor"># define CATCH_CONFIG_NEW_CAPTURE</span></div>
|
|
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
|
|
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span><span class="preprocessor">#if !defined( CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED ) && \</span></div>
|
|
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span><span class="preprocessor"> !defined( CATCH_CONFIG_DISABLE_EXCEPTIONS ) && \</span></div>
|
|
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_DISABLE_EXCEPTIONS )</span></div>
|
|
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a893712b2ba6e7400136a0a023b12e9db"> 444</a></span><span class="preprocessor"># define CATCH_CONFIG_DISABLE_EXCEPTIONS</span></div>
|
|
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
|
|
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN)</span></div>
|
|
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span><span class="preprocessor"># define CATCH_CONFIG_POLYFILL_ISNAN</span></div>
|
|
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
|
|
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span><span class="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)</span></div>
|
|
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span><span class="preprocessor"># define CATCH_CONFIG_USE_ASYNC</span></div>
|
|
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
|
|
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER)</span></div>
|
|
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3271a306c531fd4a2c6c6180e4903fd9"> 456</a></span><span class="preprocessor"># define CATCH_CONFIG_GLOBAL_NEXTAFTER</span></div>
|
|
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> </div>
|
|
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> </div>
|
|
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span><span class="comment">// The goal of this macro is to avoid evaluation of the arguments, but</span></div>
|
|
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span><span class="comment">// still have the compiler warn on problems inside...</span></div>
|
|
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span><span class="preprocessor">#if defined( CATCH_INTERNAL_CONFIG_USE_BUILTIN_CONSTANT_P ) && \</span></div>
|
|
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span><span class="preprocessor"> !defined( CATCH_INTERNAL_CONFIG_NO_USE_BUILTIN_CONSTANT_P ) && !defined(CATCH_CONFIG_USE_BUILTIN_CONSTANT_P)</span></div>
|
|
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span><span class="preprocessor">#define CATCH_CONFIG_USE_BUILTIN_CONSTANT_P</span></div>
|
|
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> </div>
|
|
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span><span class="preprocessor">#if defined( CATCH_CONFIG_USE_BUILTIN_CONSTANT_P ) && \</span></div>
|
|
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_USE_BUILTIN_CONSTANT_P )</span></div>
|
|
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="preprocessor"># define CATCH_INTERNAL_IGNORE_BUT_WARN( ... ) \</span></div>
|
|
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="preprocessor"> (void)__builtin_constant_p( __VA_ARGS__ ) </span><span class="comment">/* NOLINT(cppcoreguidelines-pro-type-vararg, \</span></div>
|
|
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span><span class="comment"> hicpp-vararg) */</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa7ffc39ff2307d382e766a867d49b67a"> 473</a></span><span class="preprocessor"># define CATCH_INTERNAL_IGNORE_BUT_WARN( ... )</span></div>
|
|
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
|
|
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span><span class="comment">// Even if we do not think the compiler has that warning, we still have</span></div>
|
|
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span><span class="comment">// to provide a macro that can be used by the code.</span></div>
|
|
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION)</span></div>
|
|
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1500dca9a578a0bd2f85771cfa3fd35d"> 479</a></span><span class="preprocessor"># define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION)</span></div>
|
|
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad9594e9891b032f0dd0279960dc861a5"> 482</a></span><span class="preprocessor"># define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)</span></div>
|
|
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a89c1608a68775aca1bb7c265f7ba923a"> 485</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS</span></div>
|
|
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS)</span></div>
|
|
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa0200c23b35ba2bd8ebed69a8f3c1c66"> 488</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS</span></div>
|
|
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT)</span></div>
|
|
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4928300ab3058e4b594e93bf73a9a3c2"> 491</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT</span></div>
|
|
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS)</span></div>
|
|
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afd86e877ae53a18ac74078959b8af053"> 494</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS</span></div>
|
|
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS)</span></div>
|
|
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4ccd8a84431fe6636f9e9ab492941491"> 497</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS</span></div>
|
|
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span><span class="preprocessor">#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS)</span></div>
|
|
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af9c2d6807f17109481b536551c0c10bf"> 500</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS</span></div>
|
|
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span><span class="preprocessor">#if !defined( CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS )</span></div>
|
|
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a10a275cf93b99d6f1246d9d9df09d1d8"> 503</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS</span></div>
|
|
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span><span class="preprocessor">#if !defined( CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS )</span></div>
|
|
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7bc5b3c9171a2b0d9d2e23459c25d4b0"> 506</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS</span></div>
|
|
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="preprocessor">#if !defined( CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS )</span></div>
|
|
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#adcf1ca30d92d27477df5490f6568ea34"> 509</a></span><span class="preprocessor"># define CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS</span></div>
|
|
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
|
|
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span><span class="preprocessor">#if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10)</span></div>
|
|
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span><span class="preprocessor"># undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS</span></div>
|
|
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span><span class="preprocessor">#elif defined(__clang__) && (__clang_major__ < 5)</span></div>
|
|
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span><span class="preprocessor"># undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS</span></div>
|
|
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
|
|
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> </div>
|
|
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="preprocessor">#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab76c2d22e571ab1a828f5c60d2f485a6"> 520</a></span><span class="preprocessor">#define CATCH_TRY if ((true))</span></div>
|
|
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afa0ae14e70806dca4f8bf06d06645fa9"> 521</a></span><span class="preprocessor">#define CATCH_CATCH_ALL if ((false))</span></div>
|
|
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3caecf3cbc55848423d744df50d84d5b"> 522</a></span><span class="preprocessor">#define CATCH_CATCH_ANON(type) if ((false))</span></div>
|
|
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span><span class="preprocessor">#define CATCH_TRY try</span></div>
|
|
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="preprocessor">#define CATCH_CATCH_ALL catch (...)</span></div>
|
|
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span><span class="preprocessor">#define CATCH_CATCH_ANON(type) catch (type)</span></div>
|
|
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> </div>
|
|
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR)</span></div>
|
|
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span><span class="preprocessor">#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
|
|
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span><span class="preprocessor">#if defined( CATCH_PLATFORM_WINDOWS ) && \</span></div>
|
|
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span><span class="preprocessor"> !defined( CATCH_CONFIG_COLOUR_WIN32 ) && \</span></div>
|
|
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_COLOUR_WIN32 ) && \</span></div>
|
|
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span><span class="preprocessor"> !defined( CATCH_INTERNAL_CONFIG_NO_COLOUR_WIN32 )</span></div>
|
|
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="preprocessor"># define CATCH_CONFIG_COLOUR_WIN32</span></div>
|
|
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
|
|
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><span class="preprocessor">#if defined( CATCH_CONFIG_SHARED_LIBRARY ) && defined( _MSC_VER ) && \</span></div>
|
|
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="preprocessor"> !defined( CATCH_CONFIG_STATIC )</span></div>
|
|
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span><span class="preprocessor"># ifdef Catch2_EXPORTS</span></div>
|
|
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span><span class="preprocessor"># define CATCH_EXPORT </span><span class="comment">//__declspec( dllexport ) // not needed</span></div>
|
|
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span><span class="preprocessor"># else</span></div>
|
|
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span><span class="preprocessor"># define CATCH_EXPORT __declspec( dllimport )</span></div>
|
|
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7a076eb1c404d5e057d159c9b271cc6f"> 548</a></span><span class="preprocessor"># define CATCH_EXPORT</span></div>
|
|
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
|
|
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> </div>
|
|
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
|
|
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span><span class="preprocessor">#ifndef CATCH_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5d523c28b800abdefeb25b23bfa9c765"> 555</a></span><span class="preprocessor">#define CATCH_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> </div>
|
|
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> </div>
|
|
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
|
|
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="keyword">class </span>IResultCapture;</div>
|
|
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> </div>
|
|
<div class="foldopen" id="foldopen00563" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html"> 563</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Context.html">Context</a> {</div>
|
|
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#a12fa72b7a9659a712bfa4c9833134e0f"> 564</a></span> <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> <span class="keyword">const</span>* <a class="code hl_variable" href="classCatch_1_1Context.html#a12fa72b7a9659a712bfa4c9833134e0f">m_config</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#a39f49850dc5e3f917cd2b92391a89bd8"> 565</a></span> <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>* <a class="code hl_variable" href="classCatch_1_1Context.html#a39f49850dc5e3f917cd2b92391a89bd8">m_resultCapture</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> </div>
|
|
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#ac4ba79b6c2667f0c54dee09ae9b0a6d6"> 567</a></span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a7a076eb1c404d5e057d159c9b271cc6f">CATCH_EXPORT</a> <span class="keyword">static</span> <a class="code hl_class" href="classCatch_1_1Context.html">Context</a>* <a class="code hl_variable" href="classCatch_1_1Context.html#ac4ba79b6c2667f0c54dee09ae9b0a6d6">currentContext</a>;</div>
|
|
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Context.html">Context</a>& <a class="code hl_friend" href="classCatch_1_1Context.html#abaf57ad1081788ced532da4609578b21">getCurrentMutableContext</a>();</div>
|
|
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Context.html">Context</a> <span class="keyword">const</span>& <a class="code hl_friend" href="classCatch_1_1Context.html#af881f79b2f58b449f1d55ce2a46fefab">getCurrentContext</a>();</div>
|
|
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Context.html#a8791e458c00734bcbaa403d02a731c48">createContext</a>();</div>
|
|
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code hl_friend" href="classCatch_1_1Context.html#ac07cdb7d744cc8f09672d924324b55fd">cleanUpContext</a>();</div>
|
|
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
|
|
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00574" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#af982da2ffec655cc4b95af6c86d3e2d2"> 574</a></span> <span class="keyword">constexpr</span> <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>* <a class="code hl_function" href="classCatch_1_1Context.html#af982da2ffec655cc4b95af6c86d3e2d2">getResultCapture</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Context.html#a39f49850dc5e3f917cd2b92391a89bd8">m_resultCapture</a>;</div>
|
|
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#a9b9038b5e6bd8495cbb247ff8a39fc41"> 577</a></span> <span class="keyword">constexpr</span> <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> <span class="keyword">const</span>* <a class="code hl_function" href="classCatch_1_1Context.html#a9b9038b5e6bd8495cbb247ff8a39fc41">getConfig</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Context.html#a12fa72b7a9659a712bfa4c9833134e0f">m_config</a>; }</div>
|
|
<div class="foldopen" id="foldopen00578" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#a43810eeee01821fe7b0f9f7f5bd9fb4c"> 578</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Context.html#a43810eeee01821fe7b0f9f7f5bd9fb4c">setResultCapture</a>( <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>* resultCapture ) {</div>
|
|
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <a class="code hl_variable" href="classCatch_1_1Context.html#a39f49850dc5e3f917cd2b92391a89bd8">m_resultCapture</a> = resultCapture;</div>
|
|
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#ab888e693701673adef316571fab0cf77"> 581</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Context.html#ab888e693701673adef316571fab0cf77">setConfig</a>( <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> <span class="keyword">const</span>* config ) { <a class="code hl_variable" href="classCatch_1_1Context.html#a12fa72b7a9659a712bfa4c9833134e0f">m_config</a> = config; }</div>
|
|
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> </div>
|
|
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
|
|
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> Context& <a class="code hl_function" href="namespaceCatch.html#aeb5fab7ca94d3e959fd7db6167caf5ee">getCurrentMutableContext</a>();</div>
|
|
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
|
|
<div class="foldopen" id="foldopen00587" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="classCatch_1_1Context.html#af881f79b2f58b449f1d55ce2a46fefab"> 587</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="classCatch_1_1Context.html">Context</a> <span class="keyword">const</span>& <a class="code hl_function" href="namespaceCatch.html#a8b23533de8c7d123687ac2c8d36b653a">getCurrentContext</a>() {</div>
|
|
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="comment">// We duplicate the logic from `getCurrentMutableContext` here,</span></div>
|
|
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="comment">// to avoid paying the call overhead in debug mode.</span></div>
|
|
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">if</span> ( !<a class="code hl_variable" href="classCatch_1_1Context.html#ac4ba79b6c2667f0c54dee09ae9b0a6d6">Context::currentContext</a> ) { <a class="code hl_function" href="classCatch_1_1Context.html#a8791e458c00734bcbaa403d02a731c48">Context::createContext</a>(); }</div>
|
|
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)</span></div>
|
|
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Context.html#ac4ba79b6c2667f0c54dee09ae9b0a6d6">Context::currentContext</a>;</div>
|
|
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> </div>
|
|
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#ae50508f10ffc4ed873a31a4db4caea16">cleanUpContext</a>();</div>
|
|
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> </div>
|
|
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a>;</div>
|
|
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a>& <a class="code hl_function" href="namespaceCatch.html#a95e86995bfdce76fca887634094ef2e9">sharedRng</a>();</div>
|
|
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span>}</div>
|
|
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
|
|
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> </div>
|
|
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
|
|
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="preprocessor">#ifndef CATCH_MOVE_AND_FORWARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad5f57a9aad7f6a65cae0d79cff26199a"> 605</a></span><span class="preprocessor">#define CATCH_MOVE_AND_FORWARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> </div>
|
|
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span></div>
|
|
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207"> 610</a></span><span class="preprocessor">#define CATCH_MOVE(...) static_cast<std::remove_reference_t<decltype(__VA_ARGS__)>&&>(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span></div>
|
|
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a"> 613</a></span><span class="preprocessor">#define CATCH_FORWARD(...) static_cast<decltype(__VA_ARGS__)&&>(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> </div>
|
|
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MOVE_AND_FORWARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
|
|
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> </div>
|
|
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span><span class="preprocessor">#ifndef CATCH_TEST_FAILURE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2b34f55d1005560ee219721099a31a41"> 619</a></span><span class="preprocessor">#define CATCH_TEST_FAILURE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> </div>
|
|
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span></div>
|
|
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="structCatch_1_1TestFailureException.html"> 624</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1TestFailureException.html">TestFailureException</a>{};</div>
|
|
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSkipException.html"> 626</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1TestSkipException.html">TestSkipException</a> {};</div>
|
|
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span></div>
|
|
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> [[noreturn]] <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a2236988eae84fb6bcc456bbf8ddfd2bf">throw_test_failure_exception</a>();</div>
|
|
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span></div>
|
|
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> [[noreturn]] <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a7c6db2bf035e2e570d0b6703f6f5a3d8">throw_test_skip_exception</a>();</div>
|
|
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> </div>
|
|
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> </div>
|
|
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_FAILURE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
|
|
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
|
|
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span><span class="preprocessor">#ifndef CATCH_UNIQUE_NAME_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5c60b04bb57a9f9e4a222e4d2a6b6628"> 648</a></span><span class="preprocessor">#define CATCH_UNIQUE_NAME_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
|
|
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
|
|
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
|
|
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span></div>
|
|
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> </div>
|
|
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span><span class="preprocessor">#ifndef CATCH_CONFIG_COUNTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a27fd75eb7e8bd2796569c1690f259cd7"> 663</a></span><span class="preprocessor">#define CATCH_CONFIG_COUNTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> </div>
|
|
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
|
|
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span><span class="preprocessor">#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L )</span></div>
|
|
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a18b42ab8d6d1efdf417f97e5474dc450"> 667</a></span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_COUNTER</span></div>
|
|
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> </div>
|
|
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span><span class="preprocessor">#if defined( CATCH_INTERNAL_CONFIG_COUNTER ) && \</span></div>
|
|
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_COUNTER ) && \</span></div>
|
|
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span><span class="preprocessor"> !defined( CATCH_CONFIG_COUNTER )</span></div>
|
|
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa70cff16ca513ff81704961bed5e01b0"> 673</a></span><span class="preprocessor"># define CATCH_CONFIG_COUNTER</span></div>
|
|
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> </div>
|
|
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> </div>
|
|
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_COUNTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7c21e89d8b7727757ce9ca2b848f1cda"> 678</a></span><span class="preprocessor">#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line</span></div>
|
|
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1b51a086ea21a750bd306ac0ed4d2a95"> 679</a></span><span class="preprocessor">#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )</span></div>
|
|
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span><span class="preprocessor">#ifdef CATCH_CONFIG_COUNTER</span></div>
|
|
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afe320ceec108fc8c160f9ac3938f1bc8"> 681</a></span><span class="preprocessor"># define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )</span></div>
|
|
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span><span class="preprocessor"># define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )</span></div>
|
|
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> </div>
|
|
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_UNIQUE_NAME_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> </div>
|
|
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
|
|
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span><span class="preprocessor">#ifndef CATCH_INTERFACES_CAPTURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a89e08dfbcb69987c02871fd6198ad38d"> 690</a></span><span class="preprocessor">#define CATCH_INTERFACES_CAPTURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> </div>
|
|
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> </div>
|
|
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> </div>
|
|
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> </div>
|
|
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span><span class="preprocessor">#ifndef CATCH_STRINGREF_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae695542717236f6bc6367c5dad5c866e"> 697</a></span><span class="preprocessor">#define CATCH_STRINGREF_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> </div>
|
|
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> </div>
|
|
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span><span class="preprocessor">#include <cstring></span></div>
|
|
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> </div>
|
|
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span></div>
|
|
<div class="foldopen" id="foldopen00711" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html"> 711</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a> {</div>
|
|
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c"> 713</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> = std::size_t;</div>
|
|
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#ac3aa3d16f48b5429a480f823c504f93c"> 714</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1StringRef.html#ac3aa3d16f48b5429a480f823c504f93c">const_iterator</a> = <span class="keyword">const</span> <span class="keywordtype">char</span>*;</div>
|
|
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> </div>
|
|
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a505ac756fc052fd96cdbc9de3c04d398"> 716</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a505ac756fc052fd96cdbc9de3c04d398">npos</a>{ <span class="keyword">static_cast<</span><a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a><span class="keyword">></span>( -1 ) };</div>
|
|
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> </div>
|
|
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a38d077e89f7f2ce666507ab28dd28653"> 719</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <span class="keyword">const</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a38d077e89f7f2ce666507ab28dd28653">s_empty</a> = <span class="stringliteral">""</span>;</div>
|
|
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
|
|
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c"> 721</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a> = <a class="code hl_variable" href="classCatch_1_1StringRef.html#a38d077e89f7f2ce666507ab28dd28653">s_empty</a>;</div>
|
|
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753"> 722</a></span> <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a> = 0;</div>
|
|
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> </div>
|
|
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keyword">public</span>: <span class="comment">// construction</span></div>
|
|
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d"> 725</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a>() noexcept = default;</div>
|
|
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> </div>
|
|
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a>( <span class="keywordtype">char</span> const* rawChars ) noexcept;</div>
|
|
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> </div>
|
|
<div class="foldopen" id="foldopen00729" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a36df94807491c0ad84184fb8e44e1a7c"> 729</a></span> constexpr <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a>( <span class="keywordtype">char</span> const* rawChars, <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> <a class="code hl_function" href="classCatch_1_1StringRef.html#acb22719801de2b64361b4c283080d4e5">size</a> ) noexcept</div>
|
|
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> : <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>( rawChars ),</div>
|
|
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>( <a class="code hl_function" href="classCatch_1_1StringRef.html#acb22719801de2b64361b4c283080d4e5">size</a> )</div>
|
|
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> </div>
|
|
<div class="foldopen" id="foldopen00734" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a7fe41469048f906e9a847798cd335f23"> 734</a></span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a7fe41469048f906e9a847798cd335f23">StringRef</a>( std::string <span class="keyword">const</span>& stdString ) noexcept</div>
|
|
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> : <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>( stdString.c_str() ),</div>
|
|
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>( stdString.size() )</div>
|
|
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> </div>
|
|
<div class="foldopen" id="foldopen00739" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#ad9fde21785affacc32d7da7a70d74e93"> 739</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> std::string()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <span class="keywordflow">return</span> std::string(<a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>, <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>);</div>
|
|
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> </div>
|
|
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> <span class="keyword">public</span>: <span class="comment">// operators</span></div>
|
|
<div class="foldopen" id="foldopen00744" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a6f0336769aed4b5c1a9001314c2e2451"> 744</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a6f0336769aed4b5c1a9001314c2e2451">operator == </a>( <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a> other ) <span class="keyword">const</span> <span class="keyword">noexcept</span> -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a> == other.m_size</div>
|
|
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> && (std::memcmp( <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>, other.m_start, <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a> ) == 0);</div>
|
|
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00748" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a22adacb4efefaaed6cf899153bfbc1b8"> 748</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a22adacb4efefaaed6cf899153bfbc1b8">operator != </a>(<a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a> other) <span class="keyword">const</span> <span class="keyword">noexcept</span> -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == other);</div>
|
|
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
|
|
<div class="foldopen" id="foldopen00752" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a2f91b207a5797f0e2633c13d63f06929"> 752</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a2f91b207a5797f0e2633c13d63f06929">operator[] </a>( <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> index ) <span class="keyword">const</span> <span class="keyword">noexcept</span> -> <span class="keywordtype">char</span> {</div>
|
|
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> assert(index < <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>);</div>
|
|
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>[index];</div>
|
|
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> </div>
|
|
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a53ffc0e61b39326c3347042bcf1f5424">operator<</a>(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> rhs) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> </div>
|
|
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <span class="keyword">public</span>: <span class="comment">// named queries</span></div>
|
|
<div class="foldopen" id="foldopen00760" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a0b4841c28cbb14ba07296964a0187023"> 760</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a0b4841c28cbb14ba07296964a0187023">empty</a>() const noexcept -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a> == 0;</div>
|
|
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00763" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#acb22719801de2b64361b4c283080d4e5"> 763</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#acb22719801de2b64361b4c283080d4e5">size</a>() const noexcept -> <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> {</div>
|
|
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>;</div>
|
|
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> </div>
|
|
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <span class="comment">// Returns a substring of [start, start + length).</span></div>
|
|
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="comment">// If start + length > size(), then the substring is [start, size()).</span></div>
|
|
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="comment">// If start > size(), then the substring is empty.</span></div>
|
|
<div class="foldopen" id="foldopen00770" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#aabf71767dfce1066e721456d54972bc5"> 770</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a> <a class="code hl_function" href="classCatch_1_1StringRef.html#aabf71767dfce1066e721456d54972bc5">substr</a>(<a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> start, <a class="code hl_typedef" href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">size_type</a> length) <span class="keyword">const</span> <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">if</span> (start < <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>) {</div>
|
|
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <span class="keyword">const</span> <span class="keyword">auto</span> shortened_size = <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a> - start;</div>
|
|
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a>(<a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a> + start, (shortened_size < length) ? shortened_size : length);</div>
|
|
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">StringRef</a>();</div>
|
|
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> }</div>
|
|
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> </div>
|
|
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="comment">// Returns the current start pointer. May not be null-terminated.</span></div>
|
|
<div class="foldopen" id="foldopen00780" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a7f6ea2c2386b3800687ad1f7327b704b"> 780</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code hl_function" href="classCatch_1_1StringRef.html#a7f6ea2c2386b3800687ad1f7327b704b">data</a>() const noexcept {</div>
|
|
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>;</div>
|
|
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> </div>
|
|
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#ab0adc7198d60867c2842b998ae456795"> 784</a></span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classCatch_1_1StringRef.html#ac3aa3d16f48b5429a480f823c504f93c">const_iterator</a> <a class="code hl_function" href="classCatch_1_1StringRef.html#ab0adc7198d60867c2842b998ae456795">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a>; }</div>
|
|
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"><a class="line" href="classCatch_1_1StringRef.html#a3ce9afc711b559d6cc59666898fc0828"> 785</a></span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classCatch_1_1StringRef.html#ac3aa3d16f48b5429a480f823c504f93c">const_iterator</a> <a class="code hl_function" href="classCatch_1_1StringRef.html#a3ce9afc711b559d6cc59666898fc0828">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">m_start</a> + <a class="code hl_variable" href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">m_size</a>; }</div>
|
|
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> </div>
|
|
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> </div>
|
|
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keyword">friend</span> std::string& <a class="code hl_friend" href="classCatch_1_1StringRef.html#ae0f042cea0672f394e866f4b54560747">operator += </a>(std::string& lhs, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> rhs);</div>
|
|
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_friend" href="classCatch_1_1StringRef.html#a41c0073b47c737088ae557ab8a07e773">operator << </a>(std::ostream& os, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> str);</div>
|
|
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <span class="keyword">friend</span> std::string <a class="code hl_friend" href="classCatch_1_1StringRef.html#a0e8d47921104f73376ad48337339edef">operator+</a>(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> lhs, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> rhs);</div>
|
|
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span></div>
|
|
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1StringRef.html#a4634fb03222f376c5d76e8c16f1743d1">compare</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> rhs ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> </div>
|
|
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> </div>
|
|
<div class="foldopen" id="foldopen00802" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"><a class="line" href="namespaceCatch.html#adc1e84abf2d7a8b971948ec4ab373280"> 802</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <span class="keyword">operator</span> <span class="stringliteral">""</span>_sr( <span class="keywordtype">char</span> <span class="keyword">const</span>* rawChars, std::size_t size ) <span class="keyword">noexcept</span> -> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> {</div>
|
|
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>( rawChars, size );</div>
|
|
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> </div>
|
|
<div class="foldopen" id="foldopen00807" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad678c2afffe520362e3bb7d51f0e8f8d"> 807</a></span><span class="keyword">constexpr</span> <span class="keyword">auto</span> <span class="keyword">operator</span> <span class="stringliteral">""</span>_catch_sr( <span class="keywordtype">char</span> <span class="keyword">const</span>* rawChars, std::size_t size ) <span class="keyword">noexcept</span> -> <a class="code hl_class" href="classCatch_1_1StringRef.html">Catch::StringRef</a> {</div>
|
|
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">Catch::StringRef</a>( rawChars, size );</div>
|
|
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> </div>
|
|
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STRINGREF_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> </div>
|
|
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> </div>
|
|
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span><span class="preprocessor">#ifndef CATCH_RESULT_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#adf086e132b3e21912e3277859e99efaa"> 815</a></span><span class="preprocessor">#define CATCH_RESULT_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> </div>
|
|
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> </div>
|
|
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> <span class="comment">// ResultWas::OfType enum</span></div>
|
|
<div class="foldopen" id="foldopen00820" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef"> 820</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ResultWas.html">ResultWas</a> { <span class="keyword">enum</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">OfType</a> {</div>
|
|
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa65721dda02fe5efb522e7449e496608a"> 821</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa65721dda02fe5efb522e7449e496608a">Unknown</a> = -1,</div>
|
|
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efae7cbe89bb9ec7ece9b44d48b63d01b63"> 822</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efae7cbe89bb9ec7ece9b44d48b63d01b63">Ok</a> = 0,</div>
|
|
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa30222063929ca1b6318faa78e8242f1c"> 823</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa30222063929ca1b6318faa78e8242f1c">Info</a> = 1,</div>
|
|
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa67e9d36ba0f04a60a19896834d840c21"> 824</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa67e9d36ba0f04a60a19896834d840c21">Warning</a> = 2,</div>
|
|
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="comment">// TODO: Should explicit skip be considered "not OK" (cf. isOk)? I.e., should it have the failure bit?</span></div>
|
|
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa99a9169d030778cf863b92ef02a4de2c"> 826</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa99a9169d030778cf863b92ef02a4de2c">ExplicitSkip</a> = 4,</div>
|
|
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> </div>
|
|
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c"> 828</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">FailureBit</a> = 0x10,</div>
|
|
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> </div>
|
|
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa5e7126b8458dc1376ac870a719f7873f"> 830</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa5e7126b8458dc1376ac870a719f7873f">ExpressionFailed</a> = <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">FailureBit</a> | 1,</div>
|
|
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efacecfc052e2499499b13304249303cc36"> 831</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efacecfc052e2499499b13304249303cc36">ExplicitFailure</a> = <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">FailureBit</a> | 2,</div>
|
|
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> </div>
|
|
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7"> 833</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7">Exception</a> = 0x100 | <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">FailureBit</a>,</div>
|
|
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> </div>
|
|
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa3bb56296483947280cf7fa1ad074ab45"> 835</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa3bb56296483947280cf7fa1ad074ab45">ThrewException</a> = <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7">Exception</a> | 1,</div>
|
|
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa8b6d3d5bc78d4e7a95543b6ecfbdb57d"> 836</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa8b6d3d5bc78d4e7a95543b6ecfbdb57d">DidntThrowException</a> = <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7">Exception</a> | 2,</div>
|
|
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> </div>
|
|
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa87fa1f2a2a63290b61948002e2935377"> 838</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa87fa1f2a2a63290b61948002e2935377">FatalErrorCondition</a> = 0x200 | <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">FailureBit</a></div>
|
|
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> </div>
|
|
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> }; };</div>
|
|
</div>
|
|
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> </div>
|
|
<div class="foldopen" id="foldopen00842" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a4f62175677952a64dfbc90887726180d"> 842</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a4f62175677952a64dfbc90887726180d">isOk</a>( <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> resultType ) {</div>
|
|
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">return</span> ( resultType & <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">ResultWas::FailureBit</a> ) == 0;</div>
|
|
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"><a class="line" href="namespaceCatch.html#ad4f2869d96986c4956f5cb9649d0119d"> 845</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ad4f2869d96986c4956f5cb9649d0119d">isJustInfo</a>( <span class="keywordtype">int</span> flags ) { <span class="keywordflow">return</span> flags == <a class="code hl_enumvalue" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa30222063929ca1b6318faa78e8242f1c">ResultWas::Info</a>; }</div>
|
|
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> </div>
|
|
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> </div>
|
|
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="comment">// ResultDisposition::Flags enum</span></div>
|
|
<div class="foldopen" id="foldopen00849" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8"> 849</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ResultDisposition.html">ResultDisposition</a> { <span class="keyword">enum</span> <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">Flags</a> {</div>
|
|
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8af3bd52347ed6f8796e8ce2f77bb39ea5"> 850</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8af3bd52347ed6f8796e8ce2f77bb39ea5">Normal</a> = 0x01,</div>
|
|
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
|
|
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8aa18c94bd60c5614e17a84c2ced3bbfd5"> 852</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8aa18c94bd60c5614e17a84c2ced3bbfd5">ContinueOnFailure</a> = 0x02, <span class="comment">// Failures fail test, but execution continues</span></div>
|
|
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a9980604245f19884691f941dec03eeb8"> 853</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a9980604245f19884691f941dec03eeb8">FalseTest</a> = 0x04, <span class="comment">// Prefix expression with !</span></div>
|
|
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a1a88eb6004bddee4ccae4b421991bf54"> 854</a></span> <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a1a88eb6004bddee4ccae4b421991bf54">SuppressFail</a> = 0x08 <span class="comment">// Failures are reported but do not fail the test</span></div>
|
|
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> }; };</div>
|
|
</div>
|
|
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> </div>
|
|
<div class="foldopen" id="foldopen00857" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a669c2650aec6ea2e3e0710b7fc552e68"> 857</a></span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a> <a class="code hl_function" href="namespaceCatch.html#a669c2650aec6ea2e3e0710b7fc552e68">operator|</a>( <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a> lhs,</div>
|
|
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a> rhs ) {</div>
|
|
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a><span class="keyword">></span>( <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>( lhs ) |</div>
|
|
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>( rhs ) );</div>
|
|
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> </div>
|
|
<div class="foldopen" id="foldopen00863" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a6976174b3c594c40f8ed2019360b6581"> 863</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a6976174b3c594c40f8ed2019360b6581">isFalseTest</a>( <span class="keywordtype">int</span> flags ) {</div>
|
|
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> <span class="keywordflow">return</span> ( flags & <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a9980604245f19884691f941dec03eeb8">ResultDisposition::FalseTest</a> ) != 0;</div>
|
|
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00866" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a63cf8932647769fc52be1175210ed89f"> 866</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a63cf8932647769fc52be1175210ed89f">shouldSuppressFailure</a>( <span class="keywordtype">int</span> flags ) {</div>
|
|
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> <span class="keywordflow">return</span> ( flags & <a class="code hl_enumvalue" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a1a88eb6004bddee4ccae4b421991bf54">ResultDisposition::SuppressFail</a> ) != 0;</div>
|
|
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> </div>
|
|
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> </div>
|
|
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RESULT_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> </div>
|
|
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> </div>
|
|
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span><span class="preprocessor">#ifndef CATCH_UNIQUE_PTR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a12264df27a248abe33d773bad9c6bf4a"> 876</a></span><span class="preprocessor">#define CATCH_UNIQUE_PTR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> </div>
|
|
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> </div>
|
|
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> </div>
|
|
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen00890" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html"> 890</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a> {</div>
|
|
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be"> 891</a></span> T* <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00893" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d"> 893</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>(std::nullptr_t = <span class="keyword">nullptr</span>):</div>
|
|
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>{}</div>
|
|
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> {}</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00896" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#ade89e9372df0a1d95755a9d2a36cb161"> 896</a></span> <span class="keyword">explicit</span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ade89e9372df0a1d95755a9d2a36cb161">unique_ptr</a>(T* ptr):</div>
|
|
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>(ptr)</div>
|
|
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> </div>
|
|
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> template <typename U, typename = std::enable_if_t<std::is_base_of<T, U>::value>></div>
|
|
<div class="foldopen" id="foldopen00901" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#af9a3368047f17545019d9f59e393dbd2"> 901</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#af9a3368047f17545019d9f59e393dbd2">unique_ptr</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr<U></a>&& from):</div>
|
|
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>(from.<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a827187e435c61bdf9f0d65f1c8b2011b">release</a>())</div>
|
|
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> </div>
|
|
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> template <typename U, typename = std::enable_if_t<std::is_base_of<T, U>::value>></div>
|
|
<div class="foldopen" id="foldopen00906" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#ad2c3124e37521192d044e1c9ed862d1f"> 906</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>& <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ad2c3124e37521192d044e1c9ed862d1f">operator=</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr<U></a>&& from) {</div>
|
|
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ab7ef130f75c1073991ac87db1dea7a9a">reset</a>(from.release());</div>
|
|
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> </div>
|
|
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> </div>
|
|
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#aa9c7f2059c8c6ef34bbd5e6968c31c0c"> 912</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#aa9c7f2059c8c6ef34bbd5e6968c31c0c">unique_ptr</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a> <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#aa7724a0a130998010d8db5edb6260c49"> 913</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>& <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#aa7724a0a130998010d8db5edb6260c49">operator=</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a> <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> </div>
|
|
<div class="foldopen" id="foldopen00915" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a5266a33f00a306a6156c6d4356e772ae"> 915</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a5266a33f00a306a6156c6d4356e772ae">unique_ptr</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>&& rhs) <span class="keyword">noexcept</span>:</div>
|
|
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>(rhs.m_ptr) {</div>
|
|
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> rhs.m_ptr = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00919" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a66c5b83def672a0749d9bcd601a67a58"> 919</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>& <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a66c5b83def672a0749d9bcd601a67a58">operator=</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>&& rhs) <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ab7ef130f75c1073991ac87db1dea7a9a">reset</a>(rhs.release());</div>
|
|
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> </div>
|
|
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> </div>
|
|
<div class="foldopen" id="foldopen00925" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a92f161a72218c4522f29c70552cd1f88"> 925</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a92f161a72218c4522f29c70552cd1f88">~unique_ptr</a>() {</div>
|
|
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <span class="keyword">delete</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> </div>
|
|
<div class="foldopen" id="foldopen00929" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a1c313a0159917cf27fa4d9376114e38b"> 929</a></span> T& <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a1c313a0159917cf27fa4d9376114e38b">operator*</a>() {</div>
|
|
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> assert(<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>);</div>
|
|
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00933" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#ada945d412babbf029959b777e3b94657"> 933</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ada945d412babbf029959b777e3b94657">operator*</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> assert(<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>);</div>
|
|
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00937" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a7c4bb525194df5d27654c5a8d8e3a670"> 937</a></span> T* <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7c4bb525194df5d27654c5a8d8e3a670">operator-></a>() noexcept {</div>
|
|
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> assert(<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>);</div>
|
|
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00941" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#ac9b4b4097ba1688d21b40aac08bd030b"> 941</a></span> T <span class="keyword">const</span>* <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ac9b4b4097ba1688d21b40aac08bd030b">operator-></a>() const noexcept {</div>
|
|
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> assert(<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>);</div>
|
|
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> </div>
|
|
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a8075fa379f6cc67ed0ab211004e6e627"> 946</a></span> T* <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a8075fa379f6cc67ed0ab211004e6e627">get</a>() { <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>; }</div>
|
|
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#aeb280c701b547d66f4816e814eca5713"> 947</a></span> T <span class="keyword">const</span>* <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#aeb280c701b547d66f4816e814eca5713">get</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>; }</div>
|
|
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> </div>
|
|
<div class="foldopen" id="foldopen00949" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#ab7ef130f75c1073991ac87db1dea7a9a"> 949</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#ab7ef130f75c1073991ac87db1dea7a9a">reset</a>(T* ptr = <span class="keyword">nullptr</span>) {</div>
|
|
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <span class="keyword">delete</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a> = ptr;</div>
|
|
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> </div>
|
|
<div class="foldopen" id="foldopen00954" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a827187e435c61bdf9f0d65f1c8b2011b"> 954</a></span> T* <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a827187e435c61bdf9f0d65f1c8b2011b">release</a>() {</div>
|
|
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <span class="keyword">auto</span> temp = <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <span class="keywordflow">return</span> temp;</div>
|
|
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> </div>
|
|
<div class="foldopen" id="foldopen00960" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#aa3bb65a8d1bee50025335052b088372f"> 960</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> </div>
|
|
<div class="foldopen" id="foldopen00964" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1unique__ptr.html#a6b7061af88a95f3ca8ec86dac1ac0c47"> 964</a></span> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code hl_friend" href="classCatch_1_1Detail_1_1unique__ptr.html#a6b7061af88a95f3ca8ec86dac1ac0c47">swap</a>(<a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>& lhs, <a class="code hl_function" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">unique_ptr</a>& rhs) {</div>
|
|
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> <span class="keyword">auto</span> temp = lhs.<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> lhs.<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a> = rhs.<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a>;</div>
|
|
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> rhs.<a class="code hl_variable" href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">m_ptr</a> = temp;</div>
|
|
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span></div>
|
|
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> <span class="keyword">class </span>unique_ptr<T[]>;</div>
|
|
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> </div>
|
|
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen00976" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9"> 976</a></span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">unique_ptr<T></a> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">make_unique</a>(Args&&... args) {</div>
|
|
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">unique_ptr<T></a>(<span class="keyword">new</span> T(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...));</div>
|
|
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> </div>
|
|
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> </div>
|
|
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span>} <span class="comment">// end namespace Detail</span></div>
|
|
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> </div>
|
|
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_UNIQUE_PTR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> </div>
|
|
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> </div>
|
|
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span><span class="preprocessor">#ifndef CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1ef788f07d97c731c56da9f99d8aada6"> 988</a></span><span class="preprocessor">#define CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> </div>
|
|
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> </div>
|
|
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> </div>
|
|
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> </div>
|
|
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span><span class="preprocessor">#ifndef CATCH_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab9909994bdd25fe1859668b21d445006"> 995</a></span><span class="preprocessor">#define CATCH_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> </div>
|
|
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span><span class="preprocessor">#include <chrono></span></div>
|
|
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> </div>
|
|
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0"> 1001</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0">IDuration</a> = std::chrono::nanoseconds;</div>
|
|
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02"> 1002</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a> = std::chrono::duration<double, std::nano>;</div>
|
|
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> </div>
|
|
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a839ab043d92ae34f0c83e6142674ffa5"> 1005</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a839ab043d92ae34f0c83e6142674ffa5">TimePoint</a> = <span class="keyword">typename</span> Clock::time_point;</div>
|
|
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> </div>
|
|
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a5ffee9674c457dfb4a868ea55290089c"> 1007</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5ffee9674c457dfb4a868ea55290089c">default_clock</a> = std::chrono::steady_clock;</div>
|
|
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
|
|
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> </div>
|
|
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> </div>
|
|
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">// We cannot forward declare the type with default template argument</span></div>
|
|
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">// multiple times, so it is split out into a separate header so that</span></div>
|
|
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">// we can prevent multiple declarations in dependees</span></div>
|
|
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Duration = Benchmark::FDuration></div>
|
|
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <span class="keyword">struct </span>BenchmarkStats;</div>
|
|
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> </div>
|
|
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> </div>
|
|
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> </div>
|
|
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
|
|
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1AssertionResult.html">AssertionResult</a>;</div>
|
|
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a>;</div>
|
|
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1SectionInfo.html">SectionInfo</a>;</div>
|
|
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1SectionEndInfo.html">SectionEndInfo</a>;</div>
|
|
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1MessageInfo.html">MessageInfo</a>;</div>
|
|
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1MessageBuilder.html">MessageBuilder</a>;</div>
|
|
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a>;</div>
|
|
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a>;</div>
|
|
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a>;</div>
|
|
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> </div>
|
|
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1ITransientExpression.html">ITransientExpression</a>;</div>
|
|
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>;</div>
|
|
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> </div>
|
|
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1BenchmarkInfo.html">BenchmarkInfo</a>;</div>
|
|
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
|
|
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1Generators.html">Generators</a> {</div>
|
|
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html">GeneratorUntypedBase</a>;</div>
|
|
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#aa9dc8fef28828fe351480d5be7bb287d"> 1044</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Generators.html#aa9dc8fef28828fe351480d5be7bb287d">GeneratorBasePtr</a> = <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr<GeneratorUntypedBase></a>;</div>
|
|
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> }</div>
|
|
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> </div>
|
|
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> </div>
|
|
<div class="foldopen" id="foldopen01048" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html"> 1048</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a> {</div>
|
|
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a70ac2d7c143aaba84e5ce8a8dbcfdf88"> 1050</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a70ac2d7c143aaba84e5ce8a8dbcfdf88">~IResultCapture</a>();</div>
|
|
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> </div>
|
|
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a5b31d0da45a3e45bd2a99cee7c81fbe9"> 1052</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a5b31d0da45a3e45bd2a99cee7c81fbe9">notifyAssertionStarted</a>( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info ) = 0;</div>
|
|
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#aaa54841942b2fc40e6be19b94f57f18b"> 1053</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#aaa54841942b2fc40e6be19b94f57f18b">sectionStarted</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> sectionName,</div>
|
|
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& sectionLineInfo,</div>
|
|
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a>& assertions ) = 0;</div>
|
|
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a911474796a49609a26da3cb726595077"> 1056</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a911474796a49609a26da3cb726595077">sectionEnded</a>( <a class="code hl_struct" href="structCatch_1_1SectionEndInfo.html">SectionEndInfo</a>&& endInfo ) = 0;</div>
|
|
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#ac95c81a362630e5f80084e1a42a806d6"> 1057</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#ac95c81a362630e5f80084e1a42a806d6">sectionEndedEarly</a>( <a class="code hl_struct" href="structCatch_1_1SectionEndInfo.html">SectionEndInfo</a>&& endInfo ) = 0;</div>
|
|
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> </div>
|
|
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>*</div>
|
|
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#aa587a5e482902f91c14a4d575589fb70"> 1060</a></span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#aa587a5e482902f91c14a4d575589fb70">acquireGeneratorTracker</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> generatorName,</div>
|
|
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo ) = 0;</div>
|
|
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>*</div>
|
|
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a347c416a766bf77cde2aa05a2a27d034"> 1063</a></span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a347c416a766bf77cde2aa05a2a27d034">createGeneratorTracker</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> generatorName,</div>
|
|
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> lineInfo,</div>
|
|
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <a class="code hl_typedef" href="namespaceCatch_1_1Generators.html#aa9dc8fef28828fe351480d5be7bb287d">Generators::GeneratorBasePtr</a>&& generator ) = 0;</div>
|
|
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> </div>
|
|
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#aff96862103881a6e002066000de65ae2"> 1067</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#aff96862103881a6e002066000de65ae2">benchmarkPreparing</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> name ) = 0;</div>
|
|
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a264ae12330c74b2daae41715a30d51bf"> 1068</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a264ae12330c74b2daae41715a30d51bf">benchmarkStarting</a>( <a class="code hl_struct" href="structCatch_1_1BenchmarkInfo.html">BenchmarkInfo</a> <span class="keyword">const</span>& info ) = 0;</div>
|
|
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a2d101e96f7001f917db6aac96e17b3a5"> 1069</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a2d101e96f7001f917db6aac96e17b3a5">benchmarkEnded</a>( <a class="code hl_struct" href="structCatch_1_1BenchmarkStats.html">BenchmarkStats<></a> <span class="keyword">const</span>& stats ) = 0;</div>
|
|
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a68894109a49c7c6d62e583bbd6f6556b"> 1070</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a68894109a49c7c6d62e583bbd6f6556b">benchmarkFailed</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> error ) = 0;</div>
|
|
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> </div>
|
|
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a91d154c1e087e383dcde5aad95cb6a05"> 1072</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a91d154c1e087e383dcde5aad95cb6a05">pushScopedMessage</a>( <a class="code hl_struct" href="structCatch_1_1MessageInfo.html">MessageInfo</a> <span class="keyword">const</span>& message ) = 0;</div>
|
|
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a42bcb13276706bf8c3ce081ce16d37fd"> 1073</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a42bcb13276706bf8c3ce081ce16d37fd">popScopedMessage</a>( <a class="code hl_struct" href="structCatch_1_1MessageInfo.html">MessageInfo</a> <span class="keyword">const</span>& message ) = 0;</div>
|
|
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> </div>
|
|
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a1aa4505b96a637a44b5d3580cd90f18b"> 1075</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a1aa4505b96a637a44b5d3580cd90f18b">emplaceUnscopedMessage</a>( <a class="code hl_struct" href="structCatch_1_1MessageBuilder.html">MessageBuilder</a>&& builder ) = 0;</div>
|
|
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> </div>
|
|
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a48559e6598ba9474b903697b69c769b2"> 1077</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a48559e6598ba9474b903697b69c769b2">handleFatalErrorCondition</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> message ) = 0;</div>
|
|
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> </div>
|
|
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a59a2b05391e464954575d2afb6d5d607"> 1079</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a59a2b05391e464954575d2afb6d5d607">handleExpr</a></div>
|
|
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <a class="code hl_class" href="classCatch_1_1ITransientExpression.html">ITransientExpression</a> <span class="keyword">const</span>& expr,</div>
|
|
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a>& reaction ) = 0;</div>
|
|
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a5dd461a2beebddd4459c8267500dbfcc"> 1083</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a5dd461a2beebddd4459c8267500dbfcc">handleMessage</a></div>
|
|
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> resultType,</div>
|
|
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> std::string&& message,</div>
|
|
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a>& reaction ) = 0;</div>
|
|
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a6382ed20486e2d9a020da971c6d5c53d"> 1088</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a6382ed20486e2d9a020da971c6d5c53d">handleUnexpectedExceptionNotThrown</a></div>
|
|
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a>& reaction ) = 0;</div>
|
|
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a524756bea06c8807ba08dbeb5da9c34d"> 1091</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a524756bea06c8807ba08dbeb5da9c34d">handleUnexpectedInflightException</a></div>
|
|
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> std::string&& message,</div>
|
|
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a>& reaction ) = 0;</div>
|
|
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a89b89372eb09cc44f8dcad363de6157d"> 1095</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a89b89372eb09cc44f8dcad363de6157d">handleIncomplete</a></div>
|
|
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info ) = 0;</div>
|
|
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#ab7dbdf8aa28427119583e24dbb302c63"> 1097</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#ab7dbdf8aa28427119583e24dbb302c63">handleNonExpr</a></div>
|
|
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> ( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span> &info,</div>
|
|
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> resultType,</div>
|
|
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a> &reaction ) = 0;</div>
|
|
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> </div>
|
|
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
|
|
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> </div>
|
|
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a973435fbdcb2f6f07a0ec5719a01e956"> 1104</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a973435fbdcb2f6f07a0ec5719a01e956">lastAssertionPassed</a>() = 0;</div>
|
|
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a9b0ef2cb071e9a9dc6ec1b533026aea7"> 1105</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a9b0ef2cb071e9a9dc6ec1b533026aea7">assertionPassed</a>() = 0;</div>
|
|
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> </div>
|
|
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">// Deprecated, do not use:</span></div>
|
|
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#aea1617f4a84cc648246aa3ed6918b5bf"> 1108</a></span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classCatch_1_1IResultCapture.html#aea1617f4a84cc648246aa3ed6918b5bf">getCurrentTestName</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#a2f44f3fa0bb898ce1aef650c1e063cc9"> 1109</a></span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code hl_class" href="classCatch_1_1AssertionResult.html">AssertionResult</a>* <a class="code hl_function" href="classCatch_1_1IResultCapture.html#a2f44f3fa0bb898ce1aef650c1e063cc9">getLastResult</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"><a class="line" href="classCatch_1_1IResultCapture.html#ae63ecec95db4c236c63ecf616f483810"> 1110</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IResultCapture.html#ae63ecec95db4c236c63ecf616f483810">exceptionEarlyReported</a>() = 0;</div>
|
|
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> </div>
|
|
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>& <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>();</div>
|
|
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span>}</div>
|
|
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> </div>
|
|
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_CAPTURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> </div>
|
|
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> </div>
|
|
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span><span class="preprocessor">#ifndef CATCH_INTERFACES_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a335ba9d290b4ac6038d306dbf7c6bf0a"> 1120</a></span><span class="preprocessor">#define CATCH_INTERFACES_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> </div>
|
|
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> </div>
|
|
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> </div>
|
|
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span><span class="preprocessor">#ifndef CATCH_NONCOPYABLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a53f0f2fa539d4cc6af3f6ae8deb7a121"> 1125</a></span><span class="preprocessor">#define CATCH_NONCOPYABLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> </div>
|
|
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span></div>
|
|
<div class="foldopen" id="foldopen01131" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html"> 1131</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a> {</div>
|
|
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877"> 1132</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a>( <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a> <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html#a887aaefdc2f77d0e5ecfd67cf5f88400"> 1133</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a887aaefdc2f77d0e5ecfd67cf5f88400">NonCopyable</a>( <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a>&& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html#a7f0e313665c25273c85b06e219b6406d"> 1134</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a>& <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a7f0e313665c25273c85b06e219b6406d">operator=</a>( <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a> <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html#a315cfc89a382ba3a8b268067f022740a"> 1135</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a>& <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a315cfc89a382ba3a8b268067f022740a">operator=</a>( <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">NonCopyable</a>&& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> </div>
|
|
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1NonCopyable.html#abd28b961dddb3f72466b29bc6184cbe0"> 1138</a></span> <a class="code hl_function" href="classCatch_1_1Detail_1_1NonCopyable.html#abd28b961dddb3f72466b29bc6184cbe0">NonCopyable</a>() noexcept = default;</div>
|
|
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> </div>
|
|
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> </div>
|
|
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_NONCOPYABLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> </div>
|
|
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span><span class="preprocessor">#include <chrono></span></div>
|
|
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
|
|
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> </div>
|
|
<div class="foldopen" id="foldopen01153" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"><a class="line" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737"> 1153</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737">Verbosity</a> {</div>
|
|
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"><a class="line" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111"> 1154</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111">Quiet</a> = 0,</div>
|
|
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"><a class="line" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0"> 1155</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0">Normal</a>,</div>
|
|
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"><a class="line" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35"> 1156</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35">High</a></div>
|
|
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> </div>
|
|
<div class="foldopen" id="foldopen01159" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"><a class="line" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3"> 1159</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1WarnAbout.html">WarnAbout</a> { <span class="keyword">enum</span> <a class="code hl_enumeration" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3">What</a> {</div>
|
|
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"><a class="line" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a9ac33f9211280cca9082557329706d27"> 1160</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a9ac33f9211280cca9082557329706d27">Nothing</a> = 0x00,</div>
|
|
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"><a class="line" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a516a40a437d6ff29898e2fa93bca8f82"> 1162</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a516a40a437d6ff29898e2fa93bca8f82">NoAssertions</a> = 0x01,</div>
|
|
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"><a class="line" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a406f24c13feb68f70034c29ee64508c4"> 1164</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a406f24c13feb68f70034c29ee64508c4">UnmatchedTestSpec</a> = 0x02,</div>
|
|
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> }; };</div>
|
|
</div>
|
|
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> </div>
|
|
<div class="foldopen" id="foldopen01167" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"><a class="line" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8"> 1167</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8">ShowDurations</a> {</div>
|
|
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"><a class="line" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a03cdfbdf8eac6fa7716a480c492f386e"> 1168</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a03cdfbdf8eac6fa7716a480c492f386e">DefaultForReporter</a>,</div>
|
|
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"><a class="line" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a68eec46437c384d8dad18d5464ebc35c"> 1169</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a68eec46437c384d8dad18d5464ebc35c">Always</a>,</div>
|
|
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"><a class="line" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a6e7b34fa59e1bd229b207892956dc41c"> 1170</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a6e7b34fa59e1bd229b207892956dc41c">Never</a></div>
|
|
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01172" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100"> 1172</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">TestRunOrder</a> {</div>
|
|
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a8fe1ef91d6420c0e64838512106ec229"> 1173</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a8fe1ef91d6420c0e64838512106ec229">Declared</a>,</div>
|
|
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a925be02b7396cbc3eb07c0de96126a74"> 1174</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a925be02b7396cbc3eb07c0de96126a74">LexicographicallySorted</a>,</div>
|
|
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100ad0bcdd909ab6eff96996ccd91f90d2bb"> 1175</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100ad0bcdd909ab6eff96996ccd91f90d2bb">Randomized</a></div>
|
|
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01177" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a91308e87521e370e591065a22b010025"> 1177</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> : std::uint8_t {</div>
|
|
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a896ac0b4a6597d34fee67269b1d50a7f"> 1179</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a896ac0b4a6597d34fee67269b1d50a7f">PlatformDefault</a>,</div>
|
|
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a91308e87521e370e591065a22b010025ad403321c965e6b83c88e6d3b1eca5270"> 1181</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025ad403321c965e6b83c88e6d3b1eca5270">ANSI</a>,</div>
|
|
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a91308e87521e370e591065a22b010025aa99913111481b4f0bcb70e08e3e99405"> 1183</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025aa99913111481b4f0bcb70e08e3e99405">Win32</a>,</div>
|
|
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754"> 1185</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a></div>
|
|
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01187" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"><a class="line" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399ba"> 1187</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1WaitForKeypress.html">WaitForKeypress</a> { <span class="keyword">enum</span> <a class="code hl_enumeration" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399ba">When</a> {</div>
|
|
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"><a class="line" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baa3a78e4f64675e7ce54ffd29e6109f1ce"> 1188</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baa3a78e4f64675e7ce54ffd29e6109f1ce">Never</a>,</div>
|
|
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"><a class="line" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baaba7f6d9b2377122a118b371ab7ae3185"> 1189</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baaba7f6d9b2377122a118b371ab7ae3185">BeforeStart</a> = 1,</div>
|
|
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"><a class="line" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baad6c3e4a5797b7ee0a812e4fc88128983"> 1190</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baad6c3e4a5797b7ee0a812e4fc88128983">BeforeExit</a> = 2,</div>
|
|
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"><a class="line" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baae8beb496b712aef908028a7cbfdd0c46"> 1191</a></span> <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baae8beb496b712aef908028a7cbfdd0c46">BeforeStartAndExit</a> = <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baaba7f6d9b2377122a118b371ab7ae3185">BeforeStart</a> | <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baad6c3e4a5797b7ee0a812e4fc88128983">BeforeExit</a></div>
|
|
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> }; };</div>
|
|
</div>
|
|
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> </div>
|
|
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> <span class="keyword">class </span>TestSpec;</div>
|
|
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> <span class="keyword">class </span>IStream;</div>
|
|
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
|
|
<div class="foldopen" id="foldopen01197" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html"> 1197</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a001afe9548a978b25f048f889f98f65a"> 1199</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a001afe9548a978b25f048f889f98f65a">~IConfig</a>();</div>
|
|
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> </div>
|
|
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#aadb95f849359de1e6eb915aab063e542"> 1201</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#aadb95f849359de1e6eb915aab063e542">allowThrows</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#ad67bb593486213c6918732f73177b7a5"> 1202</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1IConfig.html#ad67bb593486213c6918732f73177b7a5">name</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a2f1b0391019b9ce69921527a684eab23"> 1203</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a2f1b0391019b9ce69921527a684eab23">includeSuccessfulResults</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a5b886c5aad9001e90f63a7cf0726af63"> 1204</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a5b886c5aad9001e90f63a7cf0726af63">shouldDebugBreak</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a75d970c495a28e46b8e9b04a1d32149f"> 1205</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a75d970c495a28e46b8e9b04a1d32149f">warnAboutMissingAssertions</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a62498b40b04b87b721537f8e0e7d333e"> 1206</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a62498b40b04b87b721537f8e0e7d333e">warnAboutUnmatchedTestSpecs</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a6ff06a3e00a2002992d3139d9c21718d"> 1207</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a6ff06a3e00a2002992d3139d9c21718d">zeroTestsCountAsSuccess</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a363f3388a439d02217f37198eff96744"> 1208</a></span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a363f3388a439d02217f37198eff96744">abortAfter</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#aa288bf92ccd0aafd85409d8aefdf738c"> 1209</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#aa288bf92ccd0aafd85409d8aefdf738c">showInvisibles</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a5a9e2fbbb8150bd197d8abd9af18da14"> 1210</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8">ShowDurations</a> <a class="code hl_function" href="classCatch_1_1IConfig.html#a5a9e2fbbb8150bd197d8abd9af18da14">showDurations</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a160c6f6e19ed6ae946f7a9e737099189"> 1211</a></span> <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a160c6f6e19ed6ae946f7a9e737099189">minDuration</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a6c021a1bf5cae58cb6c4b754af6cd4b5"> 1212</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCatch_1_1TestSpec.html">TestSpec</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IConfig.html#a6c021a1bf5cae58cb6c4b754af6cd4b5">testSpec</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a49a475bbeb3180c06799d6d958914649"> 1213</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a49a475bbeb3180c06799d6d958914649">hasTestFilters</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a439d37638d37248d8a7f3f39ad5dc6f2"> 1214</a></span> <span class="keyword">virtual</span> std::vector<std::string> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IConfig.html#a439d37638d37248d8a7f3f39ad5dc6f2">getTestsOrTags</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#afef98a620d17d1ef1cba91550146ca28"> 1215</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">TestRunOrder</a> <a class="code hl_function" href="classCatch_1_1IConfig.html#afef98a620d17d1ef1cba91550146ca28">runOrder</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a71994ea53eb66e353e5e195088f9bad7"> 1216</a></span> <span class="keyword">virtual</span> uint32_t <a class="code hl_function" href="classCatch_1_1IConfig.html#a71994ea53eb66e353e5e195088f9bad7">rngSeed</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#ad286c00a41278a94e89791be29b920a1"> 1217</a></span> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#ad286c00a41278a94e89791be29b920a1">shardCount</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a7d7b5de3ff81f08e343b3b6266efbeba"> 1218</a></span> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a7d7b5de3ff81f08e343b3b6266efbeba">shardIndex</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a1e50ac75407e1e7d808eae26a4e353dd"> 1219</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> <a class="code hl_function" href="classCatch_1_1IConfig.html#a1e50ac75407e1e7d808eae26a4e353dd">defaultColourMode</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#aeb282b2b74d01c0d95ef1a4dbd2d12df"> 1220</a></span> <span class="keyword">virtual</span> std::vector<std::string> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IConfig.html#aeb282b2b74d01c0d95ef1a4dbd2d12df">getSectionsToRun</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a55aff5924bdbb3f558775821b1eb4b3d"> 1221</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737">Verbosity</a> <a class="code hl_function" href="classCatch_1_1IConfig.html#a55aff5924bdbb3f558775821b1eb4b3d">verbosity</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> </div>
|
|
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#acd7e1cb74682279ba1e460510d6b5859"> 1223</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#acd7e1cb74682279ba1e460510d6b5859">skipBenchmarks</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#aa9aa1eafdbe510e27bf319233969ee2c"> 1224</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#aa9aa1eafdbe510e27bf319233969ee2c">benchmarkNoAnalysis</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a1634aa220fc1c822d1f4d54614443d47"> 1225</a></span> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a1634aa220fc1c822d1f4d54614443d47">benchmarkSamples</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#ae1ec73d460a2b58c7c9b022a430a34dd"> 1226</a></span> <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#ae1ec73d460a2b58c7c9b022a430a34dd">benchmarkConfidenceInterval</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a3b8e5581be01f4773593f8b85eb7db98"> 1227</a></span> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1IConfig.html#a3b8e5581be01f4773593f8b85eb7db98">benchmarkResamples</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"><a class="line" href="classCatch_1_1IConfig.html#a516879e39f2e46f69bb4ef1f1fe7023c"> 1228</a></span> <span class="keyword">virtual</span> std::chrono::milliseconds <a class="code hl_function" href="classCatch_1_1IConfig.html#a516879e39f2e46f69bb4ef1f1fe7023c">benchmarkWarmupTime</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>}</div>
|
|
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> </div>
|
|
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> </div>
|
|
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> </div>
|
|
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span><span class="preprocessor">#ifndef CATCH_INTERFACES_REGISTRY_HUB_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a47537aeac3e55d8e99cc9ca0fd3a02ed"> 1236</a></span><span class="preprocessor">#define CATCH_INTERFACES_REGISTRY_HUB_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> </div>
|
|
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> </div>
|
|
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> </div>
|
|
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> </div>
|
|
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> <span class="keyword">struct </span>TestCaseInfo;</div>
|
|
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> <span class="keyword">class </span>ITestCaseRegistry;</div>
|
|
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> <span class="keyword">class </span>IExceptionTranslatorRegistry;</div>
|
|
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> <span class="keyword">class </span>IExceptionTranslator;</div>
|
|
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> <span class="keyword">class </span>ReporterRegistry;</div>
|
|
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> <span class="keyword">class </span>IReporterFactory;</div>
|
|
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> <span class="keyword">class </span>ITagAliasRegistry;</div>
|
|
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <span class="keyword">class </span>ITestInvoker;</div>
|
|
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <span class="keyword">class </span>IMutableEnumValuesRegistry;</div>
|
|
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> <span class="keyword">struct </span>SourceLineInfo;</div>
|
|
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> </div>
|
|
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> <span class="keyword">class </span>StartupExceptionRegistry;</div>
|
|
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="keyword">class </span>EventListenerFactory;</div>
|
|
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> </div>
|
|
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3"> 1258</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">IReporterFactoryPtr</a> = <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<IReporterFactory></a>;</div>
|
|
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> </div>
|
|
<div class="foldopen" id="foldopen01260" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html"> 1260</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IRegistryHub.html">IRegistryHub</a> {</div>
|
|
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#a697c64b61add26349b875d18435ce451"> 1262</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#a697c64b61add26349b875d18435ce451">~IRegistryHub</a>(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> </div>
|
|
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#aecb81b9fcf4fc3348778adc57531f079"> 1264</a></span> <span class="keyword">virtual</span> ReporterRegistry <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#aecb81b9fcf4fc3348778adc57531f079">getReporterRegistry</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#a3016c8766e42bae7b021f02d1cbd356b"> 1265</a></span> <span class="keyword">virtual</span> ITestCaseRegistry <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#a3016c8766e42bae7b021f02d1cbd356b">getTestCaseRegistry</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#a3fb24564dba3f679dfa58792f1e21708"> 1266</a></span> <span class="keyword">virtual</span> ITagAliasRegistry <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#a3fb24564dba3f679dfa58792f1e21708">getTagAliasRegistry</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#aa97defa756fe28dd6249b19c12bbbec1"> 1267</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCatch_1_1IExceptionTranslatorRegistry.html">IExceptionTranslatorRegistry</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#aa97defa756fe28dd6249b19c12bbbec1">getExceptionTranslatorRegistry</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> </div>
|
|
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> </div>
|
|
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"><a class="line" href="classCatch_1_1IRegistryHub.html#a6a1810bb78ba99c3be091958bcc12f29"> 1270</a></span> <span class="keyword">virtual</span> StartupExceptionRegistry <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IRegistryHub.html#a6a1810bb78ba99c3be091958bcc12f29">getStartupExceptionRegistry</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> </div>
|
|
<div class="foldopen" id="foldopen01273" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html"> 1273</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IMutableRegistryHub.html">IMutableRegistryHub</a> {</div>
|
|
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#a91993b5de4d60adf3ecf9b8db203bde7"> 1275</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#a91993b5de4d60adf3ecf9b8db203bde7">~IMutableRegistryHub</a>(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#aa94a804d04ed6ca0dbd0553d6acd6257"> 1276</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#aa94a804d04ed6ca0dbd0553d6acd6257">registerReporter</a>( std::string <span class="keyword">const</span>& name, <a class="code hl_typedef" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">IReporterFactoryPtr</a> factory ) = 0;</div>
|
|
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#a8c70c6e8f0d2ac0c83fe4e5c53d193f6"> 1277</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#a8c70c6e8f0d2ac0c83fe4e5c53d193f6">registerListener</a>( <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<EventListenerFactory></a> factory ) = 0;</div>
|
|
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#a07ecec9d39a4ec17ee6a12c9a5a7c8a6"> 1278</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#a07ecec9d39a4ec17ee6a12c9a5a7c8a6">registerTest</a>(<a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<TestCaseInfo></a>&& testInfo, <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<ITestInvoker></a>&& invoker) = 0;</div>
|
|
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#aed579e45f9d9082d8e45f93fa028d11e"> 1279</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#aed579e45f9d9082d8e45f93fa028d11e">registerTranslator</a>( <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<IExceptionTranslator></a>&& translator ) = 0;</div>
|
|
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#abf2e386b6f94f615719ada711adbf822"> 1280</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#abf2e386b6f94f615719ada711adbf822">registerTagAlias</a>( std::string <span class="keyword">const</span>& alias, std::string <span class="keyword">const</span>& tag, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo ) = 0;</div>
|
|
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#a72a7d5386851ac3200f8da794a009c86"> 1281</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#a72a7d5386851ac3200f8da794a009c86">registerStartupException</a>() noexcept = 0;</div>
|
|
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableRegistryHub.html#ab1f0013630047f8295e5969b624ad632"> 1282</a></span> virtual <a class="code hl_class" href="classCatch_1_1IMutableEnumValuesRegistry.html">IMutableEnumValuesRegistry</a>& <a class="code hl_function" href="classCatch_1_1IMutableRegistryHub.html#ab1f0013630047f8295e5969b624ad632">getMutableEnumValuesRegistry</a>() = 0;</div>
|
|
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> </div>
|
|
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> <a class="code hl_class" href="classCatch_1_1IRegistryHub.html">IRegistryHub</a> const& <a class="code hl_function" href="namespaceCatch.html#a5d328566cb8da87b48f1fac3f319ac7a">getRegistryHub</a>();</div>
|
|
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> <a class="code hl_class" href="classCatch_1_1IMutableRegistryHub.html">IMutableRegistryHub</a>& <a class="code hl_function" href="namespaceCatch.html#a585459763f2c7610e57de2dd22dd1ad8">getMutableRegistryHub</a>();</div>
|
|
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a0f78e9afdebc6d4512d18e76fbf54b8c">cleanUp</a>();</div>
|
|
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> std::<span class="keywordtype">string</span> <a class="code hl_function" href="namespaceCatch.html#adafff91485eeeeb9e9333f317cc0e3b1">translateActiveException</a>();</div>
|
|
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> </div>
|
|
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span>}</div>
|
|
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> </div>
|
|
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_REGISTRY_HUB_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> </div>
|
|
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> </div>
|
|
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span><span class="preprocessor">#ifndef CATCH_BENCHMARK_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6b2516dfb85cfecb26af8c5e30b0c565"> 1296</a></span><span class="preprocessor">#define CATCH_BENCHMARK_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> </div>
|
|
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> </div>
|
|
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> </div>
|
|
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> </div>
|
|
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span><span class="preprocessor">#ifndef CATCH_ESTIMATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a97d3b2fa7e0124bc9ba511ddf8b10847"> 1303</a></span><span class="preprocessor">#define CATCH_ESTIMATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> </div>
|
|
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Type></div>
|
|
<div class="foldopen" id="foldopen01308" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Estimate.html"> 1308</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate</a> {</div>
|
|
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Estimate.html#a8aeffe971b4dfb39e7ebde31d96b755a"> 1309</a></span> Type <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Estimate.html#a8aeffe971b4dfb39e7ebde31d96b755a">point</a>;</div>
|
|
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Estimate.html#a856766ce401640365dc70ac5c2bd9374"> 1310</a></span> Type <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Estimate.html#a856766ce401640365dc70ac5c2bd9374">lower_bound</a>;</div>
|
|
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Estimate.html#acb93436c334a1c0c0c59f997a9bf26f5"> 1311</a></span> Type <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Estimate.html#acb93436c334a1c0c0c59f997a9bf26f5">upper_bound</a>;</div>
|
|
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Estimate.html#ac7c0199cc99a53c3f81457b6fdb451a6"> 1312</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Estimate.html#ac7c0199cc99a53c3f81457b6fdb451a6">confidence_interval</a>;</div>
|
|
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> </div>
|
|
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ESTIMATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> </div>
|
|
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> </div>
|
|
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> </div>
|
|
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span><span class="preprocessor">#ifndef CATCH_OUTLIER_CLASSIFICATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa50a527ffd7732b8c60ee45b1d182417"> 1323</a></span><span class="preprocessor">#define CATCH_OUTLIER_CLASSIFICATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> </div>
|
|
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="foldopen" id="foldopen01327" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html"> 1327</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1OutlierClassification.html">OutlierClassification</a> {</div>
|
|
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#afa72bf7b54b3fc26b943daa0ad99a623"> 1328</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#afa72bf7b54b3fc26b943daa0ad99a623">samples_seen</a> = 0;</div>
|
|
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#ae364853059fe2dfe0f8b66c165165d24"> 1329</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#ae364853059fe2dfe0f8b66c165165d24">low_severe</a> = 0; <span class="comment">// more than 3 times IQR below Q1</span></div>
|
|
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#af92ce83fae2e50b16a6e534c75ee518a"> 1330</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#af92ce83fae2e50b16a6e534c75ee518a">low_mild</a> = 0; <span class="comment">// 1.5 to 3 times IQR below Q1</span></div>
|
|
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a4faba77474cb2b23184fd7e530723868"> 1331</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a4faba77474cb2b23184fd7e530723868">high_mild</a> = 0; <span class="comment">// 1.5 to 3 times IQR above Q3</span></div>
|
|
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a20c52ffef6ff024ddda03d1348bf8beb"> 1332</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a20c52ffef6ff024ddda03d1348bf8beb">high_severe</a> = 0; <span class="comment">// more than 3 times IQR above Q3</span></div>
|
|
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> </div>
|
|
<div class="foldopen" id="foldopen01334" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a78c026709f1d2cf71fd80c26332c5528"> 1334</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a78c026709f1d2cf71fd80c26332c5528">total</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#ae364853059fe2dfe0f8b66c165165d24">low_severe</a> + <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#af92ce83fae2e50b16a6e534c75ee518a">low_mild</a> + <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a4faba77474cb2b23184fd7e530723868">high_mild</a> + <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a20c52ffef6ff024ddda03d1348bf8beb">high_severe</a>;</div>
|
|
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> </div>
|
|
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_OUTLIERS_CLASSIFICATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span><span class="comment">// The fwd decl & default specialization needs to be seen by VS2017 before</span></div>
|
|
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span><span class="comment">// BenchmarkStats itself, or VS2017 will report compilation error.</span></div>
|
|
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> </div>
|
|
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> </div>
|
|
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> </div>
|
|
<div class="foldopen" id="foldopen01350" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html"> 1350</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1BenchmarkInfo.html">BenchmarkInfo</a> {</div>
|
|
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#ad5f585aedc8f5d51f36b030f7f4f8e7d"> 1351</a></span> std::string <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#ad5f585aedc8f5d51f36b030f7f4f8e7d">name</a>;</div>
|
|
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#ac3e87a646e9fb0771e495938ef878cd4"> 1352</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#ac3e87a646e9fb0771e495938ef878cd4">estimatedDuration</a>;</div>
|
|
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#a8e98fbc4d1069209dd74da4fffc42439"> 1353</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#a8e98fbc4d1069209dd74da4fffc42439">iterations</a>;</div>
|
|
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#a37701972650bbbbfbd748dc675cf46d8"> 1354</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#a37701972650bbbbfbd748dc675cf46d8">samples</a>;</div>
|
|
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#a565ef1992e7b15da65d99629a7d7b362"> 1355</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#a565ef1992e7b15da65d99629a7d7b362">resamples</a>;</div>
|
|
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#afc6fa85797067ea9af01fb0e2bc0d790"> 1356</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#afc6fa85797067ea9af01fb0e2bc0d790">clockResolution</a>;</div>
|
|
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkInfo.html#a1e5b58de921a9e88b72749cf3bd6efea"> 1357</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkInfo.html#a1e5b58de921a9e88b72749cf3bd6efea">clockCost</a>;</div>
|
|
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> </div>
|
|
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> <span class="comment">// We need to keep template parameter for backwards compatibility,</span></div>
|
|
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">// but we also do not want to use the template paraneter.</span></div>
|
|
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> <span class="keyword">template</span> <<span class="keyword">class</span> Dummy></div>
|
|
<div class="foldopen" id="foldopen01363" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html"> 1363</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1BenchmarkStats.html">BenchmarkStats</a> {</div>
|
|
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#ad2185a91f6b121b11f67f0438f55757f"> 1364</a></span> <a class="code hl_struct" href="structCatch_1_1BenchmarkInfo.html">BenchmarkInfo</a> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#ad2185a91f6b121b11f67f0438f55757f">info</a>;</div>
|
|
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> </div>
|
|
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#abb160c094a8f9230e6cd8d34f573440a"> 1366</a></span> std::vector<Benchmark::FDuration> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#abb160c094a8f9230e6cd8d34f573440a">samples</a>;</div>
|
|
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#ade33d0c1ff10028f41c222e6b17c919e"> 1367</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Benchmark::Estimate<Benchmark::FDuration></a> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#ade33d0c1ff10028f41c222e6b17c919e">mean</a>;</div>
|
|
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#a205056fc86de7f3cee181886fdaa1f9b"> 1368</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Benchmark::Estimate<Benchmark::FDuration></a> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#a205056fc86de7f3cee181886fdaa1f9b">standardDeviation</a>;</div>
|
|
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#a1287a52bd41715dde01e267fd76414b2"> 1369</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1OutlierClassification.html">Benchmark::OutlierClassification</a> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#a1287a52bd41715dde01e267fd76414b2">outliers</a>;</div>
|
|
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"><a class="line" href="structCatch_1_1BenchmarkStats.html#a9d3ea6132bd9d311497a9c59c8229f89"> 1370</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1BenchmarkStats.html#a9d3ea6132bd9d311497a9c59c8229f89">outlierVariance</a>;</div>
|
|
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span> </div>
|
|
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span> </div>
|
|
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> </div>
|
|
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_BENCHMARK_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> </div>
|
|
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> </div>
|
|
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> </div>
|
|
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span><span class="preprocessor">#ifndef CATCH_ENVIRONMENT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a322f0f9357fceb296c5ca9ee87369292"> 1382</a></span><span class="preprocessor">#define CATCH_ENVIRONMENT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> </div>
|
|
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> </div>
|
|
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="foldopen" id="foldopen01387" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html"> 1387</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">EnvironmentEstimate</a> {</div>
|
|
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#ac6170403cdd6a7fc15355cb13e4fb3dd"> 1388</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#ac6170403cdd6a7fc15355cb13e4fb3dd">mean</a>;</div>
|
|
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#a6cf37d807f3f3b1350adaa7cc3280ba3"> 1389</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1OutlierClassification.html">OutlierClassification</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#a6cf37d807f3f3b1350adaa7cc3280ba3">outliers</a>;</div>
|
|
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01391" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Environment.html"> 1391</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Environment.html">Environment</a> {</div>
|
|
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Environment.html#ae9a6cf5625ef688e8b2739c14e427ce8"> 1392</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">EnvironmentEstimate</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Environment.html#ae9a6cf5625ef688e8b2739c14e427ce8">clock_resolution</a>;</div>
|
|
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Environment.html#adf68bbccb5c7e231324f4e244593280c"> 1393</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">EnvironmentEstimate</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Environment.html#adf68bbccb5c7e231324f4e244593280c">clock_cost</a>;</div>
|
|
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> </div>
|
|
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ENVIRONMENT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> </div>
|
|
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> </div>
|
|
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> </div>
|
|
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span><span class="preprocessor">#ifndef CATCH_EXECUTION_PLAN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a83e8181426f0dee38df5ce5641c55c3e"> 1404</a></span><span class="preprocessor">#define CATCH_EXECUTION_PLAN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> </div>
|
|
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> </div>
|
|
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> </div>
|
|
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> </div>
|
|
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span><span class="preprocessor">#ifndef CATCH_BENCHMARK_FUNCTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abb3672026493910b92eecf5ba2eeb38f"> 1411</a></span><span class="preprocessor">#define CATCH_BENCHMARK_FUNCTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> </div>
|
|
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span> </div>
|
|
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span> </div>
|
|
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> </div>
|
|
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span><span class="preprocessor">#ifndef CATCH_CHRONOMETER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9198b212f48a57789d4fae126242d5ca"> 1418</a></span><span class="preprocessor">#define CATCH_CHRONOMETER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span> </div>
|
|
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span> </div>
|
|
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span> </div>
|
|
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span> </div>
|
|
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span><span class="preprocessor">#ifndef CATCH_OPTIMIZER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae83f6b5e7271989d2f62616e4d75deaf"> 1425</a></span><span class="preprocessor">#define CATCH_OPTIMIZER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> </div>
|
|
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span><span class="preprocessor">#if defined(_MSC_VER) || defined(__IAR_SYSTEMS_ICC__)</span></div>
|
|
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span><span class="preprocessor"># include <atomic></span> <span class="comment">// atomic_thread_fence</span></div>
|
|
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span> </div>
|
|
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span> </div>
|
|
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span> </div>
|
|
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span><span class="preprocessor">#if defined(__GNUC__) || defined(__clang__)</span></div>
|
|
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> keep_memory(T* p) {</div>
|
|
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span> <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">""</span> : : <span class="stringliteral">"g"</span>(p) : <span class="stringliteral">"memory"</span>);</div>
|
|
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> }</div>
|
|
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> keep_memory() {</div>
|
|
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">""</span> : : : <span class="stringliteral">"memory"</span>);</div>
|
|
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> }</div>
|
|
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span> </div>
|
|
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> optimizer_barrier() { keep_memory(); }</div>
|
|
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span><span class="preprocessor">#elif defined(_MSC_VER) || defined(__IAR_SYSTEMS_ICC__)</span></div>
|
|
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> </div>
|
|
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span><span class="preprocessor">#if defined(_MSVC_VER)</span></div>
|
|
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span><span class="preprocessor">#pragma optimize("", off)</span></div>
|
|
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span><span class="preprocessor">#elif defined(__IAR_SYSTEMS_ICC__)</span></div>
|
|
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span><span class="comment">// For IAR the pragma only affects the following function</span></div>
|
|
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span><span class="preprocessor">#pragma optimize=disable</span></div>
|
|
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> keep_memory(T* p) {</div>
|
|
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> <span class="comment">// thanks @milleniumbug</span></div>
|
|
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> *<span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span> volatile*<span class="keyword">></span>(p) = *<span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span> <span class="keyword">const </span>volatile*<span class="keyword">></span>(p);</div>
|
|
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> }</div>
|
|
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> <span class="comment">// TODO equivalent keep_memory()</span></div>
|
|
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span><span class="preprocessor">#if defined(_MSVC_VER)</span></div>
|
|
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span><span class="preprocessor">#pragma optimize("", on)</span></div>
|
|
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span> </div>
|
|
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> optimizer_barrier() {</div>
|
|
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> std::atomic_thread_fence(std::memory_order_seq_cst);</div>
|
|
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> }</div>
|
|
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> </div>
|
|
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span> </div>
|
|
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen01475" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#af5d85780971e55f9337023ad04caa247"> 1475</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#af5d85780971e55f9337023ad04caa247">deoptimize_value</a>(T&& x) {</div>
|
|
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> keep_memory(&x);</div>
|
|
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span> </div>
|
|
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fn, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen01480" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a9aa891ce6b44df3561292fc1a44b11fb"> 1480</a></span> <span class="keyword">inline</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#a9aa891ce6b44df3561292fc1a44b11fb">invoke_deoptimized</a>(Fn&& fn, Args&&... args) -> std::enable_if_t<!std::is_same<void, <span class="keyword">decltype</span>(fn(args...))>::value> {</div>
|
|
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#af5d85780971e55f9337023ad04caa247">deoptimize_value</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fn) (<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...));</div>
|
|
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> </div>
|
|
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fn, <span class="keyword">typename</span>... Args></div>
|
|
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> <span class="keyword">inline</span> <span class="keyword">auto</span> invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<std::is_same<void, <span class="keyword">decltype</span>(fn(args...))>::value> {</div>
|
|
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>((fn)) (<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> }</div>
|
|
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> </div>
|
|
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_OPTIMIZER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span> </div>
|
|
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> </div>
|
|
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span><span class="preprocessor">#ifndef CATCH_META_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3143197b9f0e2f4e532fcf6880d71286"> 1495</a></span><span class="preprocessor">#define CATCH_META_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span> </div>
|
|
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> </div>
|
|
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span> <span class="keyword">template</span> <<span class="keyword">typename</span>></div>
|
|
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"><a class="line" href="structCatch_1_1true__given.html"> 1501</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1true__given.html">true_given</a> : std::true_type {};</div>
|
|
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span> </div>
|
|
<div class="foldopen" id="foldopen01503" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"><a class="line" href="structCatch_1_1is__callable__tester.html"> 1503</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1is__callable__tester.html">is_callable_tester</a> {</div>
|
|
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"><a class="line" href="structCatch_1_1is__callable__tester.html#a9f770cae4c16dfa96d4c0299a6b4f980"> 1505</a></span> <span class="keyword">static</span> <a class="code hl_struct" href="structCatch_1_1true__given.html">true_given<decltype(std::declval<Fun></a>()(std::declval<Args>()...))> <a class="code hl_function" href="structCatch_1_1is__callable__tester.html#a9f770cae4c16dfa96d4c0299a6b4f980">test</a>(<span class="keywordtype">int</span>);</div>
|
|
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span> <span class="keyword">template</span> <<span class="keyword">typename</span>...></div>
|
|
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"><a class="line" href="structCatch_1_1is__callable__tester.html#adce16c4accb860bf46f6491dd70cfd63"> 1507</a></span> <span class="keyword">static</span> std::false_type <a class="code hl_function" href="structCatch_1_1is__callable__tester.html#adce16c4accb860bf46f6491dd70cfd63">test</a>(...);</div>
|
|
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> </div>
|
|
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"><a class="line" href="structCatch_1_1is__callable.html"> 1511</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a>;</div>
|
|
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span> </div>
|
|
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"><a class="line" href="structCatch_1_1is__callable_3_01Fun_07Args_8_8_8_08_4.html"> 1514</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a><Fun(Args...)> : decltype(is_callable_tester::test<Fun, Args...>(0)) {};</div>
|
|
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> </div>
|
|
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span> </div>
|
|
<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span><span class="preprocessor">#if defined(__cpp_lib_is_invocable) && __cpp_lib_is_invocable >= 201703</span></div>
|
|
<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">// std::result_of is deprecated in C++17 and removed in C++20. Hence, it is</span></div>
|
|
<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span> <span class="comment">// replaced with std::invoke_result here.</span></div>
|
|
<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Func, <span class="keyword">typename</span>... U></div>
|
|
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">FunctionReturnType</a> = std::remove_reference_t<std::remove_cv_t<std::invoke_result_t<Func, U...>>>;</div>
|
|
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Func, <span class="keyword">typename</span>... U></div>
|
|
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1"> 1524</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">FunctionReturnType</a> = std::remove_reference_t<std::remove_cv_t<std::result_of_t<Func(U...)>>>;</div>
|
|
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> </div>
|
|
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span> </div>
|
|
<div class="foldopen" id="foldopen01529" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"><a class="line" href="namespacempl__.html"> 1529</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacempl__.html">mpl_</a>{</div>
|
|
<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span> <span class="keyword">struct </span>na;</div>
|
|
<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> </div>
|
|
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_META_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> </div>
|
|
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="foldopen" id="foldopen01538" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html"> 1538</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a> {</div>
|
|
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#af3d2250976b47920b4f3f4936fdffbc7"> 1539</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#af3d2250976b47920b4f3f4936fdffbc7">start</a>() = 0;</div>
|
|
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a066c884155da1ab1efcde265b2ea80bf"> 1540</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a066c884155da1ab1efcde265b2ea80bf">finish</a>() = 0;</div>
|
|
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a3af87e71a7000662cd1448fa1c54d568"> 1541</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a3af87e71a7000662cd1448fa1c54d568">~ChronometerConcept</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> </div>
|
|
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318"> 1543</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ac4cbd1f841d745b9d638c5342e8d9c39"> 1544</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ac4cbd1f841d745b9d638c5342e8d9c39">ChronometerConcept</a>(<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a93cafc1a451fd4022ee08a9cfa20bea6"> 1545</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a>& <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a93cafc1a451fd4022ee08a9cfa20bea6">operator=</a>(<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen01548" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html"> 1548</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html">ChronometerModel</a> final : <span class="keyword">public</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">ChronometerConcept</a> {</div>
|
|
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a73645cbcc831ab32de029006072b70dd"> 1549</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a73645cbcc831ab32de029006072b70dd">start</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a56f0814c0b13b21dd8a86135b66256ea">started</a> = Clock::now(); }</div>
|
|
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a1c6d75cc74ff8663eea029d1760e0d95"> 1550</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a1c6d75cc74ff8663eea029d1760e0d95">finish</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#ab3cfa080dee083a2ca79683eed55d732">finished</a> = Clock::now(); }</div>
|
|
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> </div>
|
|
<div class="foldopen" id="foldopen01552" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a888ac0188449f74cb7c5ffb1a9e918c8"> 1552</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0">IDuration</a> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a888ac0188449f74cb7c5ffb1a9e918c8">elapsed</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span> <span class="keywordflow">return</span> std::chrono::duration_cast<std::chrono::nanoseconds>(</div>
|
|
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#ab3cfa080dee083a2ca79683eed55d732">finished</a> - <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a56f0814c0b13b21dd8a86135b66256ea">started</a> );</div>
|
|
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> </div>
|
|
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a56f0814c0b13b21dd8a86135b66256ea"> 1557</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a839ab043d92ae34f0c83e6142674ffa5">TimePoint<Clock></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a56f0814c0b13b21dd8a86135b66256ea">started</a>;</div>
|
|
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#ab3cfa080dee083a2ca79683eed55d732"> 1558</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a839ab043d92ae34f0c83e6142674ffa5">TimePoint<Clock></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#ab3cfa080dee083a2ca79683eed55d732">finished</a>;</div>
|
|
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> </div>
|
|
<div class="foldopen" id="foldopen01562" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html"> 1562</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a3302c48061da0cc3eeed30fe38caebc9">Chronometer</a> {</div>
|
|
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb"> 1565</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb">measure</a>(Fun&& fun) { <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb">measure</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun), <a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a><Fun(<span class="keywordtype">int</span>)>()); }</div>
|
|
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> </div>
|
|
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#a0042e09974d3c4e7f445fb0c75a9a51d"> 1567</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a0042e09974d3c4e7f445fb0c75a9a51d">runs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551">repeats</a>; }</div>
|
|
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span> </div>
|
|
<div class="foldopen" id="foldopen01569" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#a3302c48061da0cc3eeed30fe38caebc9"> 1569</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a3302c48061da0cc3eeed30fe38caebc9">Chronometer</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html">Detail::ChronometerConcept</a>& meter, <span class="keywordtype">int</span> repeats_)</div>
|
|
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42">impl</a>(&meter)</div>
|
|
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> , <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551">repeats</a>(repeats_) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> </div>
|
|
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01575" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#afbc63bf6896e0d510ed35f0d4fc8127e"> 1575</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#afbc63bf6896e0d510ed35f0d4fc8127e">measure</a>(Fun&& fun, std::false_type) {</div>
|
|
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb">measure</a>([&fun](<span class="keywordtype">int</span>) { <span class="keywordflow">return</span> fun(); }, std::true_type());</div>
|
|
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> </div>
|
|
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01580" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#a48e7c1a08f021f9c1b94f6bf48ecab11"> 1580</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a48e7c1a08f021f9c1b94f6bf48ecab11">measure</a>(Fun&& fun, std::true_type) {</div>
|
|
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> Detail::optimizer_barrier();</div>
|
|
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42">impl</a>->start();</div>
|
|
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551">repeats</a>; ++i) <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#a9aa891ce6b44df3561292fc1a44b11fb">invoke_deoptimized</a>(fun, i);</div>
|
|
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42">impl</a>->finish();</div>
|
|
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span> Detail::optimizer_barrier();</div>
|
|
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span> </div>
|
|
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42"> 1588</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html">Detail::ChronometerConcept</a>* <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42">impl</a>;</div>
|
|
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551"> 1589</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551">repeats</a>;</div>
|
|
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span> </div>
|
|
<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CHRONOMETER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span> </div>
|
|
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span> </div>
|
|
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
|
|
<div class="foldopen" id="foldopen01602" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1is__related.html"> 1602</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1is__related.html">is_related</a></div>
|
|
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span> : std::is_same<std::decay_t<T>, std::decay_t<U>> {};</div>
|
|
</div>
|
|
<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span></div>
|
|
<div class="foldopen" id="foldopen01612" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html"> 1612</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a2806f1bd3beabb40a0dbfacc59d92ad0">BenchmarkFunction</a> {</div>
|
|
<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"> 1613</span> <span class="keyword">private</span>:</div>
|
|
<div class="foldopen" id="foldopen01614" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html"> 1614</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a> {</div>
|
|
<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a33d160b42238bdab21b37f75c617a24a"> 1615</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a33d160b42238bdab21b37f75c617a24a">call</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a> meter) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l01616" name="l01616"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a340c5008c9f7f0c612c6f0b1e0f56cd7"> 1616</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a340c5008c9f7f0c612c6f0b1e0f56cd7">~callable</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span> </div>
|
|
<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560"> 1618</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#ad08b417b9fe9b87d38bb06da1e696963"> 1619</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#ad08b417b9fe9b87d38bb06da1e696963">callable</a>(<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a10430cd3e0c1619f739cdaf246e247b4"> 1620</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a>& <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a10430cd3e0c1619f739cdaf246e247b4">operator=</a>(<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01623" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html"> 1623</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6d91267ef60f6d7f36ff001b1a36391b">model</a> : <span class="keyword">public</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">callable</a> {</div>
|
|
<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6d91267ef60f6d7f36ff001b1a36391b"> 1624</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6d91267ef60f6d7f36ff001b1a36391b">model</a>(Fun&& fun_) : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">fun</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(fun_)) {}</div>
|
|
<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ac483aef41b94e384cb36db1bb05b557f"> 1625</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ac483aef41b94e384cb36db1bb05b557f">model</a>(Fun <span class="keyword">const</span>& fun_) : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">fun</a>(fun_) {}</div>
|
|
<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span> </div>
|
|
<div class="foldopen" id="foldopen01627" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6c5805db4815767dc71f9a5b62eeb6ef"> 1627</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6c5805db4815767dc71f9a5b62eeb6ef">call</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a> meter)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6c5805db4815767dc71f9a5b62eeb6ef">call</a>(meter, <a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a><Fun(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>)>());</div>
|
|
<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01630" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a2281599b1aa17f328db578d31f188ffd"> 1630</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a2281599b1aa17f328db578d31f188ffd">call</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a> meter, std::true_type)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">fun</a>(meter);</div>
|
|
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01633" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a82c4fd40b00e9f24bebc46893b19071c"> 1633</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a82c4fd40b00e9f24bebc46893b19071c">call</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a> meter, std::false_type)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span> meter.<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb">measure</a>(<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">fun</a>);</div>
|
|
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span> </div>
|
|
<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75"> 1637</a></span> Fun <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">fun</a>;</div>
|
|
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> </div>
|
|
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01641" name="l01641"></a><span class="lineno"> 1641</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a2806f1bd3beabb40a0dbfacc59d92ad0">BenchmarkFunction</a>();</div>
|
|
<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"> 1642</span> </div>
|
|
<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun,</div>
|
|
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> std::enable_if_t<!is_related<Fun, BenchmarkFunction>::value, <span class="keywordtype">int</span>> = 0></div>
|
|
<div class="foldopen" id="foldopen01645" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a6d0382763e5fef9706efa32c5f0c09d7"> 1645</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a6d0382763e5fef9706efa32c5f0c09d7">BenchmarkFunction</a>(Fun&& fun)</div>
|
|
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span> : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">f</a>(new <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html">model</a><std::decay_t<Fun>>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun))) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span> </div>
|
|
<div class="foldopen" id="foldopen01648" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a3b377f8e165a715089431c2fdd8dcd57"> 1648</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a3b377f8e165a715089431c2fdd8dcd57">BenchmarkFunction</a>( <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a2806f1bd3beabb40a0dbfacc59d92ad0">BenchmarkFunction</a>&& that ) <span class="keyword">noexcept</span>:</div>
|
|
<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">f</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( that.f ) ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span> </div>
|
|
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html">BenchmarkFunction</a>&</div>
|
|
<div class="foldopen" id="foldopen01652" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a0f747ab53d9012d935a916e646091740"> 1652</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a0f747ab53d9012d935a916e646091740">operator=</a>( <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a2806f1bd3beabb40a0dbfacc59d92ad0">BenchmarkFunction</a>&& that ) <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">f</a> = <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( that.f );</div>
|
|
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span> </div>
|
|
<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#ab78ffb29682af780ec2a4eac521351a5"> 1657</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#ab78ffb29682af780ec2a4eac521351a5">operator()</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a> meter)<span class="keyword"> const </span>{ <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">f</a>->call(meter); }</div>
|
|
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span> </div>
|
|
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06"> 1660</a></span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr<callable></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">f</a>;</div>
|
|
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> </div>
|
|
<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_BENCHMARK_FUNCTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> </div>
|
|
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> </div>
|
|
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> </div>
|
|
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span><span class="preprocessor">#ifndef CATCH_REPEAT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad9bf34079d621d1a8b5aeb9f4e789e25"> 1672</a></span><span class="preprocessor">#define CATCH_REPEAT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> </div>
|
|
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span> </div>
|
|
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01680" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html"> 1680</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html">repeater</a> {</div>
|
|
<div class="foldopen" id="foldopen01681" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a56d8c17bbfdb5b539d9dc64073df4145"> 1681</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a56d8c17bbfdb5b539d9dc64073df4145">operator()</a>(<span class="keywordtype">int</span> k)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; ++i) {</div>
|
|
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a97f32a92784f901935534cee88726a46">fun</a>();</div>
|
|
<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span> }</div>
|
|
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a97f32a92784f901935534cee88726a46"> 1686</a></span> Fun <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a97f32a92784f901935534cee88726a46">fun</a>;</div>
|
|
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01689" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aa94892c9c8fe45c0c82bde19bf0f8667"> 1689</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html">repeater<std::decay_t<Fun></a>> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aa94892c9c8fe45c0c82bde19bf0f8667">repeat</a>(Fun&& fun) {</div>
|
|
<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun) };</div>
|
|
<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span> </div>
|
|
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPEAT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span> </div>
|
|
<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span> </div>
|
|
<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span> </div>
|
|
<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span><span class="preprocessor">#ifndef CATCH_RUN_FOR_AT_LEAST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad3350878a2c6bf222b7656bfacd492e1"> 1702</a></span><span class="preprocessor">#define CATCH_RUN_FOR_AT_LEAST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span> </div>
|
|
<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span> </div>
|
|
<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span> </div>
|
|
<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span> </div>
|
|
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span><span class="preprocessor">#ifndef CATCH_MEASURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a553125e2c7622bb5aa98dbe5ade65373"> 1709</a></span><span class="preprocessor">#define CATCH_MEASURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span> </div>
|
|
<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span> </div>
|
|
<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"> 1712</span> </div>
|
|
<div class="line"><a id="l01713" name="l01713"></a><span class="lineno"> 1713</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"> 1714</span> </div>
|
|
<div class="line"><a id="l01715" name="l01715"></a><span class="lineno"> 1715</span><span class="preprocessor">#ifndef CATCH_COMPLETE_INVOKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0dcf666907c9372d3abc2958fb5e6d84"> 1716</a></span><span class="preprocessor">#define CATCH_COMPLETE_INVOKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</span> </div>
|
|
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span> </div>
|
|
<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html#a7322bfc02af34fdb67f9d0627a380715"> 1723</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html">CompleteType</a> { <span class="keyword">using </span><a class="code hl_typedef" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html#a7322bfc02af34fdb67f9d0627a380715">type</a> = T; };</div>
|
|
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType_3_01void_01_4.html"> 1725</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html">CompleteType</a><void> { <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType_3_01void_01_4_1_1type.html">type</a> {}; };</div>
|
|
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span> </div>
|
|
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c"> 1728</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">CompleteType_t</a> = <span class="keyword">typename</span> <a class="code hl_typedef" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html#a7322bfc02af34fdb67f9d0627a380715">CompleteType<T>::type</a>;</div>
|
|
<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span> </div>
|
|
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Result></div>
|
|
<div class="foldopen" id="foldopen01731" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html"> 1731</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html">CompleteInvoker</a> {</div>
|
|
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen01733" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html#adf04cae13162eb67730f224818dde58b"> 1733</a></span> <span class="keyword">static</span> Result <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html#adf04cae13162eb67730f224818dde58b">invoke</a>(Fun&& fun, Args&&... args) {</div>
|
|
<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun)(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> <span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen01738" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_3_01void_01_4.html"> 1738</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html">CompleteInvoker</a><void> {</div>
|
|
<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen01740" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_3_01void_01_4.html#a89ab8831c06677e841b81bf17bc2ea90"> 1740</a></span> <span class="keyword">static</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">CompleteType_t<void></a> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_3_01void_01_4.html#a89ab8831c06677e841b81bf17bc2ea90">invoke</a>(Fun&& fun, Args&&... args) {</div>
|
|
<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun)(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span> <span class="keywordflow">return</span> {};</div>
|
|
<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span> </div>
|
|
<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span> <span class="comment">// invoke and not return void :(</span></div>
|
|
<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen01748" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84"> 1748</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">CompleteType_t</a><<a class="code hl_typedef" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">FunctionReturnType</a><Fun, Args...>> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84">complete_invoke</a>(Fun&& fun, Args&&... args) {</div>
|
|
<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html">CompleteInvoker</a><<a class="code hl_typedef" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">FunctionReturnType</a><Fun, Args...>>::invoke(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span> </div>
|
|
<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span> </div>
|
|
<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01755" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#ab10cc5a63e65cd55178d7f1473da9f04"> 1755</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">Detail::CompleteType_t<FunctionReturnType<Fun></a>> <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#ab10cc5a63e65cd55178d7f1473da9f04">user_code</a>(Fun&& fun) {</div>
|
|
<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84">Detail::complete_invoke</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun));</div>
|
|
<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span> </div>
|
|
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_COMPLETE_INVOKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span> </div>
|
|
<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span> </div>
|
|
<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span> </div>
|
|
<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span><span class="preprocessor">#ifndef CATCH_TIMING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1f7dc496890dd5775f08469f0d1e3ac4"> 1767</a></span><span class="preprocessor">#define CATCH_TIMING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span> </div>
|
|
<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span> </div>
|
|
<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span> </div>
|
|
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Result></div>
|
|
<div class="foldopen" id="foldopen01775" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Timing.html"> 1775</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a> {</div>
|
|
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Timing.html#a74fc1d5ed3eeffa372a0fca0197e1ab8"> 1776</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0">IDuration</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a74fc1d5ed3eeffa372a0fca0197e1ab8">elapsed</a>;</div>
|
|
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Timing.html#a905d86f2a0d04b324b9c9747013f5a12"> 1777</a></span> Result <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a905d86f2a0d04b324b9c9747013f5a12">result</a>;</div>
|
|
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Timing.html#a7489a9c619f31f6bd94d88cefad9d433"> 1778</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a7489a9c619f31f6bd94d88cefad9d433">iterations</a>;</div>
|
|
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Func, <span class="keyword">typename</span>... Args></div>
|
|
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac"> 1781</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">TimingOf</a> = <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a><<a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">Detail::CompleteType_t</a><<a class="code hl_typedef" href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">FunctionReturnType</a><Func, Args...>>>;</div>
|
|
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> </div>
|
|
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TIMING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span> </div>
|
|
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Fun, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen01791" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1effa40e15b6b2c9cec48b3b734da8a4"> 1791</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">TimingOf</a><Fun, Args...> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1effa40e15b6b2c9cec48b3b734da8a4">measure</a>(Fun&& fun, Args&&... args) {</div>
|
|
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span> <span class="keyword">auto</span> start = Clock::now();</div>
|
|
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span> <span class="keyword">auto</span>&& r = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84">Detail::complete_invoke</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(fun), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span> <span class="keyword">auto</span> end = Clock::now();</div>
|
|
<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span> <span class="keyword">auto</span> delta = end - start;</div>
|
|
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span> <span class="keywordflow">return</span> { delta, <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(r), 1 };</div>
|
|
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> </div>
|
|
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MEASURE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> </div>
|
|
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> </div>
|
|
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span> <span class="keyword">namespace </span><a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980">Benchmark</a> {</div>
|
|
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01810" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a69e10795ffabb9fb2a472c5743c3b7ed"> 1810</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">TimingOf<Fun, int></a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a69e10795ffabb9fb2a472c5743c3b7ed">measure_one</a>(Fun&& fun, <span class="keywordtype">int</span> iters, std::false_type) {</div>
|
|
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1effa40e15b6b2c9cec48b3b734da8a4">Detail::measure<Clock></a>(fun, iters);</div>
|
|
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Fun></div>
|
|
<div class="foldopen" id="foldopen01814" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a61f9b87f4d97f9e59dfda4c29ce346de"> 1814</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">TimingOf<Fun, Chronometer></a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a69e10795ffabb9fb2a472c5743c3b7ed">measure_one</a>(Fun&& fun, <span class="keywordtype">int</span> iters, std::true_type) {</div>
|
|
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html">Detail::ChronometerModel<Clock></a> meter;</div>
|
|
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> <span class="keyword">auto</span>&& result = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84">Detail::complete_invoke</a>(fun, <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>(meter, iters));</div>
|
|
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> </div>
|
|
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> <span class="keywordflow">return</span> { meter.<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a888ac0188449f74cb7c5ffb1a9e918c8">elapsed</a>(), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(result), iters };</div>
|
|
<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span> </div>
|
|
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Fun></div>
|
|
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ae8c942e45f848e3f1f1a22d7e7528507"> 1822</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ae8c942e45f848e3f1f1a22d7e7528507">run_for_at_least_argument_t</a> = std::conditional_t<<a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a><Fun(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>)>::value, <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>, <span class="keywordtype">int</span>>;</div>
|
|
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> </div>
|
|
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> </div>
|
|
<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#accb97601fac7308aa9c11dcdb439ddb8">throw_optimized_away_error</a>();</div>
|
|
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span> </div>
|
|
<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Fun></div>
|
|
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun></a>></div>
|
|
<div class="foldopen" id="foldopen01830" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e"> 1830</a></span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">run_for_at_least</a>(<a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0">IDuration</a> how_long,</div>
|
|
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span> <span class="keyword">const</span> <span class="keywordtype">int</span> initial_iterations,</div>
|
|
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> Fun&& fun) {</div>
|
|
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> <span class="keyword">auto</span> iters = initial_iterations;</div>
|
|
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span> <span class="keywordflow">while</span> (iters < (1 << 30)) {</div>
|
|
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> <span class="keyword">auto</span>&& <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a> = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a69e10795ffabb9fb2a472c5743c3b7ed">measure_one<Clock></a>(fun, iters, <a class="code hl_struct" href="structCatch_1_1is__callable.html">is_callable</a><Fun(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>)>());</div>
|
|
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> </div>
|
|
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a>.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a74fc1d5ed3eeffa372a0fca0197e1ab8">elapsed</a> >= how_long) {</div>
|
|
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> <span class="keywordflow">return</span> { <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a>.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a74fc1d5ed3eeffa372a0fca0197e1ab8">elapsed</a>, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(<a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Timing.html">Timing</a>.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Timing.html#a905d86f2a0d04b324b9c9747013f5a12">result</a>), iters };</div>
|
|
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span> }</div>
|
|
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> iters *= 2;</div>
|
|
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span> }</div>
|
|
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#accb97601fac7308aa9c11dcdb439ddb8">throw_optimized_away_error</a>();</div>
|
|
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span> </div>
|
|
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RUN_FOR_AT_LEAST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span> </div>
|
|
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> </div>
|
|
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> <span class="keyword">namespace </span><a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980">Benchmark</a> {</div>
|
|
<div class="foldopen" id="foldopen01854" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html"> 1854</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html">ExecutionPlan</a> {</div>
|
|
<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2c55b05b91b158044a2966c071931492"> 1855</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2c55b05b91b158044a2966c071931492">iterations_per_sample</a>;</div>
|
|
<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#adc8d469e18d7aaad3b9414682d9ac35d"> 1856</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#adc8d469e18d7aaad3b9414682d9ac35d">estimated_duration</a>;</div>
|
|
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a030c66ee7ae93249110107728bac81fa"> 1857</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html">Detail::BenchmarkFunction</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a030c66ee7ae93249110107728bac81fa">benchmark</a>;</div>
|
|
<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2bdbd553e77ec7e9e45c20e6d19bd288"> 1858</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2bdbd553e77ec7e9e45c20e6d19bd288">warmup_time</a>;</div>
|
|
<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#abbb214a372cde0cd513d3b6e581fc6b4"> 1859</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#abbb214a372cde0cd513d3b6e581fc6b4">warmup_iterations</a>;</div>
|
|
<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span> </div>
|
|
<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen01862" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a7000428364a19de80ed79301f1d248c5"> 1862</a></span> std::vector<FDuration> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a7000428364a19de80ed79301f1d248c5">run</a>(<span class="keyword">const</span> <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> &cfg, <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Environment.html">Environment</a> env)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"> 1863</span> <span class="comment">// warmup a bit</span></div>
|
|
<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">Detail::run_for_at_least<Clock></a>(</div>
|
|
<div class="line"><a id="l01865" name="l01865"></a><span class="lineno"> 1865</span> std::chrono::duration_cast<IDuration>( <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2bdbd553e77ec7e9e45c20e6d19bd288">warmup_time</a> ),</div>
|
|
<div class="line"><a id="l01866" name="l01866"></a><span class="lineno"> 1866</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#abbb214a372cde0cd513d3b6e581fc6b4">warmup_iterations</a>,</div>
|
|
<div class="line"><a id="l01867" name="l01867"></a><span class="lineno"> 1867</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aa94892c9c8fe45c0c82bde19bf0f8667">Detail::repeat</a>( []() { <span class="keywordflow">return</span> Clock::now(); } )</div>
|
|
<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span> );</div>
|
|
<div class="line"><a id="l01869" name="l01869"></a><span class="lineno"> 1869</span> </div>
|
|
<div class="line"><a id="l01870" name="l01870"></a><span class="lineno"> 1870</span> std::vector<FDuration> times;</div>
|
|
<div class="line"><a id="l01871" name="l01871"></a><span class="lineno"> 1871</span> <span class="keyword">const</span> <span class="keyword">auto</span> num_samples = cfg.<a class="code hl_function" href="classCatch_1_1IConfig.html#a1634aa220fc1c822d1f4d54614443d47">benchmarkSamples</a>();</div>
|
|
<div class="line"><a id="l01872" name="l01872"></a><span class="lineno"> 1872</span> times.reserve( num_samples );</div>
|
|
<div class="line"><a id="l01873" name="l01873"></a><span class="lineno"> 1873</span> <span class="keywordflow">for</span> ( <span class="keywordtype">size_t</span> i = 0; i < num_samples; ++i ) {</div>
|
|
<div class="line"><a id="l01874" name="l01874"></a><span class="lineno"> 1874</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html">Detail::ChronometerModel<Clock></a> model;</div>
|
|
<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"> 1875</span> this->benchmark( <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Chronometer.html">Chronometer</a>( model, <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2c55b05b91b158044a2966c071931492">iterations_per_sample</a> ) );</div>
|
|
<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span> <span class="keyword">auto</span> sample_time = model.<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a888ac0188449f74cb7c5ffb1a9e918c8">elapsed</a>() - env.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Environment.html#adf68bbccb5c7e231324f4e244593280c">clock_cost</a>.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#ac6170403cdd6a7fc15355cb13e4fb3dd">mean</a>;</div>
|
|
<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span> <span class="keywordflow">if</span> ( sample_time < FDuration::zero() ) {</div>
|
|
<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span> sample_time = FDuration::zero();</div>
|
|
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span> }</div>
|
|
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span> times.push_back(sample_time / <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2c55b05b91b158044a2966c071931492">iterations_per_sample</a>);</div>
|
|
<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span> }</div>
|
|
<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span> <span class="keywordflow">return</span> times;</div>
|
|
<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span> </div>
|
|
<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_EXECUTION_PLAN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span> </div>
|
|
<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span> </div>
|
|
<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span> </div>
|
|
<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span><span class="preprocessor">#ifndef CATCH_ESTIMATE_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1626e1ea760ff324fee651aa05e6f80c"> 1894</a></span><span class="preprocessor">#define CATCH_ESTIMATE_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span> </div>
|
|
<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span> </div>
|
|
<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"> 1897</span> </div>
|
|
<div class="line"><a id="l01898" name="l01898"></a><span class="lineno"> 1898</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"> 1899</span> </div>
|
|
<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span><span class="preprocessor">#ifndef CATCH_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0c5bc031802b1812e5474b52512fca48"> 1901</a></span><span class="preprocessor">#define CATCH_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span> </div>
|
|
<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span> </div>
|
|
<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span> </div>
|
|
<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad7bb71eb022618e4a57e3378f5d70b13"> 1909</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad7bb71eb022618e4a57e3378f5d70b13">sample</a> = std::vector<double>;</div>
|
|
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span> </div>
|
|
<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a571030d8a3068b49d454220cfdea714f">weighted_average_quantile</a>( <span class="keywordtype">int</span> k,</div>
|
|
<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span> <span class="keywordtype">int</span> q,</div>
|
|
<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span> <span class="keywordtype">double</span>* first,</div>
|
|
<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span> <span class="keywordtype">double</span>* last );</div>
|
|
<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span> </div>
|
|
<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1OutlierClassification.html">OutlierClassification</a></div>
|
|
<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a523468c0e7dbf99ffb1801aad78e352d">classify_outliers</a>( <span class="keywordtype">double</span> <span class="keyword">const</span>* first, <span class="keywordtype">double</span> <span class="keyword">const</span>* last );</div>
|
|
<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span> </div>
|
|
<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac5f830d662344dd75387c26aa83e6ac3">mean</a>( <span class="keywordtype">double</span> <span class="keyword">const</span>* first, <span class="keywordtype">double</span> <span class="keyword">const</span>* last );</div>
|
|
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span> </div>
|
|
<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#abc5e70b0f758f550b2fdff85512efdb5">normal_cdf</a>( <span class="keywordtype">double</span> x );</div>
|
|
<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> </div>
|
|
<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a62d6c634e2c8901d02ffe8718817f1b4">erfc_inv</a>(<span class="keywordtype">double</span> x);</div>
|
|
<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span> </div>
|
|
<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af3527090cdeb0456b1aacbdc29050841">normal_quantile</a>(<span class="keywordtype">double</span> p);</div>
|
|
<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span> </div>
|
|
<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate<double></a></div>
|
|
<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0a635ce60c227f5217d9606e2afe527c">bootstrap</a>( <span class="keywordtype">double</span> confidence_level,</div>
|
|
<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span> <span class="keywordtype">double</span>* first,</div>
|
|
<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span> <span class="keywordtype">double</span>* last,</div>
|
|
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad7bb71eb022618e4a57e3378f5d70b13">sample</a> <span class="keyword">const</span>& resample,</div>
|
|
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span> <span class="keywordtype">double</span> ( *estimator )( <span class="keywordtype">double</span> <span class="keyword">const</span>*, <span class="keywordtype">double</span> <span class="keyword">const</span>* ) );</div>
|
|
<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span> </div>
|
|
<div class="foldopen" id="foldopen01934" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html"> 1934</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html">bootstrap_analysis</a> {</div>
|
|
<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a921aef889f940d88732dfa359ac3a44d"> 1935</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate<double></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a921aef889f940d88732dfa359ac3a44d">mean</a>;</div>
|
|
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a3bc85781de3f5ffe6bff8dc40b4cc1d0"> 1936</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate<double></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a3bc85781de3f5ffe6bff8dc40b4cc1d0">standard_deviation</a>;</div>
|
|
<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a5b362e21a4fea483371fe3d80f63676d"> 1937</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a5b362e21a4fea483371fe3d80f63676d">outlier_variance</a>;</div>
|
|
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> </div>
|
|
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html">bootstrap_analysis</a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1a4ae7ccc7fa8c996bc6e4ada5a7004b">analyse_samples</a>(<span class="keywordtype">double</span> confidence_level,</div>
|
|
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n_resamples,</div>
|
|
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</span> <span class="keywordtype">double</span>* first,</div>
|
|
<div class="line"><a id="l01943" name="l01943"></a><span class="lineno"> 1943</span> <span class="keywordtype">double</span>* last);</div>
|
|
<div class="line"><a id="l01944" name="l01944"></a><span class="lineno"> 1944</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l01945" name="l01945"></a><span class="lineno"> 1945</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l01946" name="l01946"></a><span class="lineno"> 1946</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l01947" name="l01947"></a><span class="lineno"> 1947</span> </div>
|
|
<div class="line"><a id="l01948" name="l01948"></a><span class="lineno"> 1948</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STATS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span> </div>
|
|
<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"> 1952</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> </div>
|
|
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen01958" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1"> 1958</a></span> std::vector<double> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a>(<span class="keywordtype">int</span> k) {</div>
|
|
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> points = <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>( k + 1 );</div>
|
|
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span> <span class="comment">// To avoid overhead from the branch inside vector::push_back,</span></div>
|
|
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> <span class="comment">// we allocate them all and then overwrite.</span></div>
|
|
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> std::vector<TimePoint<Clock>> times(points);</div>
|
|
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span> <span class="keywordflow">for</span> ( <span class="keyword">auto</span>& time : times ) {</div>
|
|
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> time = Clock::now();</div>
|
|
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span> }</div>
|
|
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span> </div>
|
|
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> std::vector<double> deltas;</div>
|
|
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span> deltas.reserve(<span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(k));</div>
|
|
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span> <span class="keywordflow">for</span> ( <span class="keywordtype">size_t</span> idx = 1; idx < points; ++idx ) {</div>
|
|
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span> deltas.push_back( <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(</div>
|
|
<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span> ( times[idx] - times[idx - 1] ).count() ) );</div>
|
|
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> }</div>
|
|
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> </div>
|
|
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> <span class="keywordflow">return</span> deltas;</div>
|
|
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> </div>
|
|
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a059e0c7024cc2e0e0dfd861d875fe97d"> 1977</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a059e0c7024cc2e0e0dfd861d875fe97d">warmup_iterations</a> = 10000;</div>
|
|
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad1a286fbe7a670a886ac5839289b5b2a"> 1978</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad1a286fbe7a670a886ac5839289b5b2a">warmup_time</a> = std::chrono::milliseconds(100);</div>
|
|
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aec277578b65b8dfb2578b4b94e0b2562"> 1979</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aec277578b65b8dfb2578b4b94e0b2562">minimum_ticks</a> = 1000;</div>
|
|
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0cd94d0f213053517ee9b3ed487fa189"> 1980</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0cd94d0f213053517ee9b3ed487fa189">warmup_seed</a> = 10000;</div>
|
|
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a805143fb513ffc616374ea01f764f87c"> 1981</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a805143fb513ffc616374ea01f764f87c">clock_resolution_estimation_time</a> = std::chrono::milliseconds(500);</div>
|
|
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a258a5fe6cc543b6ab8cceb3e175e1c1d"> 1982</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a258a5fe6cc543b6ab8cceb3e175e1c1d">clock_cost_estimation_time_limit</a> = std::chrono::seconds(1);</div>
|
|
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1ee35c3ddb5cdf0f4ad7354240e4288d"> 1983</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1ee35c3ddb5cdf0f4ad7354240e4288d">clock_cost_estimation_tick_limit</a> = 100000;</div>
|
|
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a9b7d750760d2dbafad94a78957d85b68"> 1984</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a9b7d750760d2dbafad94a78957d85b68">clock_cost_estimation_time</a> = std::chrono::milliseconds(10);</div>
|
|
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a971609fd1bf1dffc78fbb645d649bcae"> 1985</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a971609fd1bf1dffc78fbb645d649bcae">clock_cost_estimation_iterations</a> = 10000;</div>
|
|
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span> </div>
|
|
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen01988" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a7021d1312f7e031b95d9dc9697e8fa81"> 1988</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a7021d1312f7e031b95d9dc9697e8fa81">warmup</a>() {</div>
|
|
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">run_for_at_least<Clock></a>(<a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad1a286fbe7a670a886ac5839289b5b2a">warmup_time</a>, <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0cd94d0f213053517ee9b3ed487fa189">warmup_seed</a>, &<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution<Clock></a>)</div>
|
|
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span> .iterations;</div>
|
|
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen01993" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a5c57c45d75d53880caaf8c422aa1a5ab"> 1993</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">EnvironmentEstimate</a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a5c57c45d75d53880caaf8c422aa1a5ab">estimate_clock_resolution</a>(<span class="keywordtype">int</span> iterations) {</div>
|
|
<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span> <span class="keyword">auto</span> r = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">run_for_at_least<Clock></a>(<a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a805143fb513ffc616374ea01f764f87c">clock_resolution_estimation_time</a>, iterations, &<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution<Clock></a>)</div>
|
|
<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span> .result;</div>
|
|
<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span> <span class="keywordflow">return</span> {</div>
|
|
<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a>(<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac5f830d662344dd75387c26aa83e6ac3">mean</a>(r.data(), r.data() + r.size())),</div>
|
|
<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a523468c0e7dbf99ffb1801aad78e352d">classify_outliers</a>(r.data(), r.data() + r.size()),</div>
|
|
<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span> };</div>
|
|
<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen02002" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac10ce6a746501524891ce359e61f3e43"> 2002</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">EnvironmentEstimate</a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac10ce6a746501524891ce359e61f3e43">estimate_clock_cost</a>(<a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a>) {</div>
|
|
<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span> <span class="keyword">auto</span> time_limit = (std::min)(</div>
|
|
<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a> * <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1ee35c3ddb5cdf0f4ad7354240e4288d">clock_cost_estimation_tick_limit</a>,</div>
|
|
<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a>(<a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a258a5fe6cc543b6ab8cceb3e175e1c1d">clock_cost_estimation_time_limit</a>));</div>
|
|
<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span> <span class="keyword">auto</span> time_clock = [](<span class="keywordtype">int</span> k) {</div>
|
|
<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1effa40e15b6b2c9cec48b3b734da8a4">Detail::measure<Clock></a>([k] {</div>
|
|
<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; ++i) {</div>
|
|
<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span> <span class="keyword">volatile</span> <span class="keyword">auto</span> ignored = Clock::now();</div>
|
|
<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span> (void)ignored;</div>
|
|
<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span> }</div>
|
|
<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span> }).elapsed;</div>
|
|
<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span> };</div>
|
|
<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span> time_clock(1);</div>
|
|
<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span> <span class="keywordtype">int</span> iters = <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a971609fd1bf1dffc78fbb645d649bcae">clock_cost_estimation_iterations</a>;</div>
|
|
<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span> <span class="keyword">auto</span>&& r = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">run_for_at_least<Clock></a>(<a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a9b7d750760d2dbafad94a78957d85b68">clock_cost_estimation_time</a>, iters, time_clock);</div>
|
|
<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span> std::vector<double> times;</div>
|
|
<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span> <span class="keywordtype">int</span> nsamples = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(std::ceil(time_limit / r.elapsed));</div>
|
|
<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span> times.reserve(<span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(nsamples));</div>
|
|
<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span> <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> s = 0; s < nsamples; ++s ) {</div>
|
|
<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span> times.push_back( <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(</div>
|
|
<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> ( time_clock( r.iterations ) / r.iterations )</div>
|
|
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span> .count() ) );</div>
|
|
<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span> }</div>
|
|
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span> <span class="keywordflow">return</span> {</div>
|
|
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</span> <a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">FDuration</a>(<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac5f830d662344dd75387c26aa83e6ac3">mean</a>(times.data(), times.data() + times.size())),</div>
|
|
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a523468c0e7dbf99ffb1801aad78e352d">classify_outliers</a>(times.data(), times.data() + times.size()),</div>
|
|
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> };</div>
|
|
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span> </div>
|
|
<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"> 2031</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen02032" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark_1_1Detail.html#adb6f098507d08daee7e92c9ab12dab09"> 2032</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Environment.html">Environment</a> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#adb6f098507d08daee7e92c9ab12dab09">measure_environment</a>() {</div>
|
|
<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"> 2033</span><span class="preprocessor">#if defined(__clang__)</span></div>
|
|
<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"> 2034</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"> 2035</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wexit-time-destructors"</span></div>
|
|
<div class="line"><a id="l02036" name="l02036"></a><span class="lineno"> 2036</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span> <span class="keyword">static</span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr<Environment></a> env;</div>
|
|
<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span><span class="preprocessor">#if defined(__clang__)</span></div>
|
|
<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span> <span class="keywordflow">if</span> (env) {</div>
|
|
<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span> <span class="keywordflow">return</span> *env;</div>
|
|
<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span> }</div>
|
|
<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span> </div>
|
|
<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span> <span class="keyword">auto</span> iters = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a7021d1312f7e031b95d9dc9697e8fa81">Detail::warmup<Clock></a>();</div>
|
|
<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a> = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a5c57c45d75d53880caaf8c422aa1a5ab">Detail::estimate_clock_resolution<Clock></a>(iters);</div>
|
|
<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span> <span class="keyword">auto</span> cost = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac10ce6a746501524891ce359e61f3e43">Detail::estimate_clock_cost<Clock></a>(<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a>.mean);</div>
|
|
<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span> </div>
|
|
<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span> env = <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique<Environment></a>( <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Environment.html">Environment</a>{<a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">resolution</a>, cost} );</div>
|
|
<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span> <span class="keywordflow">return</span> *env;</div>
|
|
<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"> 2054</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"> 2055</span> </div>
|
|
<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"> 2056</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ESTIMATE_CLOCK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02057" name="l02057"></a><span class="lineno"> 2057</span> </div>
|
|
<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"> 2058</span> </div>
|
|
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> </div>
|
|
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span><span class="preprocessor">#ifndef CATCH_ANALYSE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aea372b191fe1171f81dd8321b41233a5"> 2062</a></span><span class="preprocessor">#define CATCH_ANALYSE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> </div>
|
|
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> </div>
|
|
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> </div>
|
|
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> </div>
|
|
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span><span class="preprocessor">#ifndef CATCH_SAMPLE_ANALYSIS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a99c2638640f2749c8701a841280f4951"> 2069</a></span><span class="preprocessor">#define CATCH_SAMPLE_ANALYSIS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02070" name="l02070"></a><span class="lineno"> 2070</span> </div>
|
|
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</span> </div>
|
|
<div class="line"><a id="l02072" name="l02072"></a><span class="lineno"> 2072</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l02073" name="l02073"></a><span class="lineno"> 2073</span> </div>
|
|
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="foldopen" id="foldopen02076" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html"> 2076</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html">SampleAnalysis</a> {</div>
|
|
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#ad323d63e1895f868f52c0655875ba67d"> 2077</a></span> std::vector<FDuration> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#ad323d63e1895f868f52c0655875ba67d">samples</a>;</div>
|
|
<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#aa73a649b4eaa32fea5fefe181925b247"> 2078</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate<FDuration></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#aa73a649b4eaa32fea5fefe181925b247">mean</a>;</div>
|
|
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7ef4889f28af063958aa28ba326d8399"> 2079</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Estimate.html">Estimate<FDuration></a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7ef4889f28af063958aa28ba326d8399">standard_deviation</a>;</div>
|
|
<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7956e4b789b3909d269b5d756b61c063"> 2080</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1OutlierClassification.html">OutlierClassification</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7956e4b789b3909d269b5d756b61c063">outliers</a>;</div>
|
|
<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a3b6f7fac3cd345ea6276c11267562c09"> 2081</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a3b6f7fac3cd345ea6276c11267562c09">outlier_variance</a>;</div>
|
|
<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"> 2083</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> </div>
|
|
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SAMPLE_ANALYSIS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> </div>
|
|
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> </div>
|
|
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span> </div>
|
|
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</span> SampleAnalysis analyse(<span class="keyword">const</span> IConfig &cfg, FDuration* first, FDuration* last);</div>
|
|
<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"> 2095</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> </div>
|
|
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"> 2099</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ANALYSE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span> </div>
|
|
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span><span class="preprocessor">#include <chrono></span></div>
|
|
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> </div>
|
|
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> <span class="keyword">namespace </span><a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980">Benchmark</a> {</div>
|
|
<div class="foldopen" id="foldopen02109" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html"> 2109</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#a9bdbca8411c57892f7b01d6118def51c">Benchmark</a> {</div>
|
|
<div class="foldopen" id="foldopen02110" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#a9bdbca8411c57892f7b01d6118def51c"> 2110</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#a9bdbca8411c57892f7b01d6118def51c">Benchmark</a>(std::string&& benchmarkName)</div>
|
|
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"> 2111</span> : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">name</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(benchmarkName)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02112" name="l02112"></a><span class="lineno"> 2112</span> </div>
|
|
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</span> <span class="keyword">template</span> <<span class="keyword">class</span> FUN></div>
|
|
<div class="foldopen" id="foldopen02114" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02114" name="l02114"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98bb1e62d945c13bdff3a7017ca93b14"> 2114</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98bb1e62d945c13bdff3a7017ca93b14">Benchmark</a>(std::string&& benchmarkName , FUN &&func)</div>
|
|
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"> 2115</span> : <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">fun</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(func)), <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">name</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(benchmarkName)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02116" name="l02116"></a><span class="lineno"> 2116</span> </div>
|
|
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock></div>
|
|
<div class="foldopen" id="foldopen02118" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02118" name="l02118"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#afac4a6950e035232d991d4be63a907fd"> 2118</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1ExecutionPlan.html">ExecutionPlan</a> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#afac4a6950e035232d991d4be63a907fd">prepare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> &cfg, <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Environment.html">Environment</a> env) {</div>
|
|
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"> 2119</span> <span class="keyword">auto</span> min_time = env.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Environment.html#ae9a6cf5625ef688e8b2739c14e427ce8">clock_resolution</a>.<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#ac6170403cdd6a7fc15355cb13e4fb3dd">mean</a> * <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#aec277578b65b8dfb2578b4b94e0b2562">Detail::minimum_ticks</a>;</div>
|
|
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"> 2120</span> <span class="keyword">auto</span> run_time = std::max(min_time, std::chrono::duration_cast<<span class="keyword">decltype</span>(min_time)>(cfg.<a class="code hl_function" href="classCatch_1_1IConfig.html#a516879e39f2e46f69bb4ef1f1fe7023c">benchmarkWarmupTime</a>()));</div>
|
|
<div class="line"><a id="l02121" name="l02121"></a><span class="lineno"> 2121</span> <span class="keyword">auto</span>&& test = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">Detail::run_for_at_least<Clock></a>(std::chrono::duration_cast<IDuration>(run_time), 1, <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">fun</a>);</div>
|
|
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</span> <span class="keywordtype">int</span> new_iters = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(std::ceil(min_time * test.iterations / test.elapsed));</div>
|
|
<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span> <span class="keywordflow">return</span> { new_iters, test.elapsed / test.iterations * new_iters * cfg.<a class="code hl_function" href="classCatch_1_1IConfig.html#a1634aa220fc1c822d1f4d54614443d47">benchmarkSamples</a>(), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">fun</a>), std::chrono::duration_cast<FDuration>(cfg.<a class="code hl_function" href="classCatch_1_1IConfig.html#a516879e39f2e46f69bb4ef1f1fe7023c">benchmarkWarmupTime</a>()), <a class="code hl_variable" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a059e0c7024cc2e0e0dfd861d875fe97d">Detail::warmup_iterations</a> };</div>
|
|
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span> </div>
|
|
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Clock = default_clock></div>
|
|
<div class="foldopen" id="foldopen02127" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#aeff43305485b4ce29af38094437a8544"> 2127</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#aeff43305485b4ce29af38094437a8544">run</a>() {</div>
|
|
<div class="line"><a id="l02128" name="l02128"></a><span class="lineno"> 2128</span> <span class="keyword">static_assert</span>( Clock::is_steady,</div>
|
|
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"> 2129</span> <span class="stringliteral">"Benchmarking clock should be steady"</span> );</div>
|
|
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span> <span class="keyword">auto</span> <span class="keyword">const</span>* cfg = <a class="code hl_function" href="namespaceCatch.html#a8b23533de8c7d123687ac2c8d36b653a">getCurrentContext</a>().getConfig();</div>
|
|
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span> </div>
|
|
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</span> <span class="keyword">auto</span> env = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#adb6f098507d08daee7e92c9ab12dab09">Detail::measure_environment<Clock></a>();</div>
|
|
<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span> </div>
|
|
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span> <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>().benchmarkPreparing(<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">name</a>);</div>
|
|
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#ab76c2d22e571ab1a828f5c60d2f485a6">CATCH_TRY</a>{</div>
|
|
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> <span class="keyword">auto</span> plan = <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#ab10cc5a63e65cd55178d7f1473da9f04">user_code</a>([&] {</div>
|
|
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span> <span class="keywordflow">return</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#afac4a6950e035232d991d4be63a907fd">prepare<Clock></a>(*cfg, env);</div>
|
|
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span> });</div>
|
|
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span> </div>
|
|
<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"> 2140</span> <a class="code hl_struct" href="structCatch_1_1BenchmarkInfo.html">BenchmarkInfo</a> info {</div>
|
|
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">name</a>),</div>
|
|
<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span> plan.estimated_duration.count(),</div>
|
|
<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"> 2143</span> plan.iterations_per_sample,</div>
|
|
<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</span> cfg->benchmarkSamples(),</div>
|
|
<div class="line"><a id="l02145" name="l02145"></a><span class="lineno"> 2145</span> cfg->benchmarkResamples(),</div>
|
|
<div class="line"><a id="l02146" name="l02146"></a><span class="lineno"> 2146</span> env.clock_resolution.mean.count(),</div>
|
|
<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"> 2147</span> env.clock_cost.mean.count()</div>
|
|
<div class="line"><a id="l02148" name="l02148"></a><span class="lineno"> 2148</span> };</div>
|
|
<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"> 2149</span> </div>
|
|
<div class="line"><a id="l02150" name="l02150"></a><span class="lineno"> 2150</span> <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>().benchmarkStarting(info);</div>
|
|
<div class="line"><a id="l02151" name="l02151"></a><span class="lineno"> 2151</span> </div>
|
|
<div class="line"><a id="l02152" name="l02152"></a><span class="lineno"> 2152</span> <span class="keyword">auto</span> samples = <a class="code hl_function" href="namespaceCatch_1_1Benchmark.html#ab10cc5a63e65cd55178d7f1473da9f04">user_code</a>([&] {</div>
|
|
<div class="line"><a id="l02153" name="l02153"></a><span class="lineno"> 2153</span> <span class="keywordflow">return</span> plan.template <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#aeff43305485b4ce29af38094437a8544">run<Clock></a>(*cfg, env);</div>
|
|
<div class="line"><a id="l02154" name="l02154"></a><span class="lineno"> 2154</span> });</div>
|
|
<div class="line"><a id="l02155" name="l02155"></a><span class="lineno"> 2155</span> </div>
|
|
<div class="line"><a id="l02156" name="l02156"></a><span class="lineno"> 2156</span> <span class="keyword">auto</span> analysis = <a class="code hl_function" href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3ae31b1a7b7d447f0d6d46635bbff40c">Detail::analyse</a>(*cfg, samples.data(), samples.data() + samples.size());</div>
|
|
<div class="line"><a id="l02157" name="l02157"></a><span class="lineno"> 2157</span> <a class="code hl_struct" href="structCatch_1_1BenchmarkStats.html">BenchmarkStats<></a> stats{ <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(info), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(analysis.samples), analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance };</div>
|
|
<div class="line"><a id="l02158" name="l02158"></a><span class="lineno"> 2158</span> <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>().benchmarkEnded(stats);</div>
|
|
<div class="line"><a id="l02159" name="l02159"></a><span class="lineno"> 2159</span> } <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3caecf3cbc55848423d744df50d84d5b">CATCH_CATCH_ANON</a> (<a class="code hl_struct" href="structCatch_1_1TestFailureException.html">TestFailureException</a> <span class="keyword">const</span>&) {</div>
|
|
<div class="line"><a id="l02160" name="l02160"></a><span class="lineno"> 2160</span> <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>().benchmarkFailed(<span class="stringliteral">"Benchmark failed due to failed assertion"</span>_sr);</div>
|
|
<div class="line"><a id="l02161" name="l02161"></a><span class="lineno"> 2161</span> } <a class="code hl_define" href="catch__amalgamated_8hpp.html#afa0ae14e70806dca4f8bf06d06645fa9">CATCH_CATCH_ALL</a>{</div>
|
|
<div class="line"><a id="l02162" name="l02162"></a><span class="lineno"> 2162</span> <a class="code hl_function" href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">getResultCapture</a>().benchmarkFailed(<a class="code hl_function" href="namespaceCatch.html#adafff91485eeeeb9e9333f317cc0e3b1">translateActiveException</a>());</div>
|
|
<div class="line"><a id="l02163" name="l02163"></a><span class="lineno"> 2163</span> <span class="comment">// We let the exception go further up so that the</span></div>
|
|
<div class="line"><a id="l02164" name="l02164"></a><span class="lineno"> 2164</span> <span class="comment">// test case is marked as failed.</span></div>
|
|
<div class="line"><a id="l02165" name="l02165"></a><span class="lineno"> 2165</span> std::rethrow_exception(std::current_exception());</div>
|
|
<div class="line"><a id="l02166" name="l02166"></a><span class="lineno"> 2166</span> }</div>
|
|
<div class="line"><a id="l02167" name="l02167"></a><span class="lineno"> 2167</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02168" name="l02168"></a><span class="lineno"> 2168</span> </div>
|
|
<div class="line"><a id="l02169" name="l02169"></a><span class="lineno"> 2169</span> <span class="comment">// sets lambda to be used in fun *and* executes benchmark!</span></div>
|
|
<div class="line"><a id="l02170" name="l02170"></a><span class="lineno"> 2170</span> template <typename Fun, std::enable_if_t<!Detail::is_related<Fun, Benchmark>::value, <span class="keywordtype">int</span>> = 0></div>
|
|
<div class="foldopen" id="foldopen02171" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02171" name="l02171"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#a8d592f11d8c9f9da369d6b53616d7414"> 2171</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#a9bdbca8411c57892f7b01d6118def51c">Benchmark</a> & <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#a8d592f11d8c9f9da369d6b53616d7414">operator=</a>(Fun func) {</div>
|
|
<div class="line"><a id="l02172" name="l02172"></a><span class="lineno"> 2172</span> <span class="keyword">auto</span> <span class="keyword">const</span>* cfg = <a class="code hl_function" href="namespaceCatch.html#a8b23533de8c7d123687ac2c8d36b653a">getCurrentContext</a>().getConfig();</div>
|
|
<div class="line"><a id="l02173" name="l02173"></a><span class="lineno"> 2173</span> <span class="keywordflow">if</span> (!cfg->skipBenchmarks()) {</div>
|
|
<div class="line"><a id="l02174" name="l02174"></a><span class="lineno"> 2174</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">fun</a> = <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html">Detail::BenchmarkFunction</a>(func);</div>
|
|
<div class="line"><a id="l02175" name="l02175"></a><span class="lineno"> 2175</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Benchmark.html#aeff43305485b4ce29af38094437a8544">run</a>();</div>
|
|
<div class="line"><a id="l02176" name="l02176"></a><span class="lineno"> 2176</span> }</div>
|
|
<div class="line"><a id="l02177" name="l02177"></a><span class="lineno"> 2177</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l02178" name="l02178"></a><span class="lineno"> 2178</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02179" name="l02179"></a><span class="lineno"> 2179</span> </div>
|
|
<div class="foldopen" id="foldopen02180" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02180" name="l02180"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#ab1626a886dbe9d109359991f7138ec05"> 2180</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool() {</div>
|
|
<div class="line"><a id="l02181" name="l02181"></a><span class="lineno"> 2181</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l02182" name="l02182"></a><span class="lineno"> 2182</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02183" name="l02183"></a><span class="lineno"> 2183</span> </div>
|
|
<div class="line"><a id="l02184" name="l02184"></a><span class="lineno"> 2184</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02185" name="l02185"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f"> 2185</a></span> <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html">Detail::BenchmarkFunction</a> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">fun</a>;</div>
|
|
<div class="line"><a id="l02186" name="l02186"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0"> 2186</a></span> std::string <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">name</a>;</div>
|
|
<div class="line"><a id="l02187" name="l02187"></a><span class="lineno"> 2187</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02188" name="l02188"></a><span class="lineno"> 2188</span> }</div>
|
|
<div class="line"><a id="l02189" name="l02189"></a><span class="lineno"> 2189</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02190" name="l02190"></a><span class="lineno"> 2190</span> </div>
|
|
<div class="line"><a id="l02191" name="l02191"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afb251464dc8eda2a2b9e0dbf2239819a"> 2191</a></span><span class="preprocessor">#define INTERNAL_CATCH_GET_1_ARG(arg1, arg2, ...) arg1</span></div>
|
|
<div class="line"><a id="l02192" name="l02192"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac2c7d6057422745c874a5857ffb2b9f3"> 2192</a></span><span class="preprocessor">#define INTERNAL_CATCH_GET_2_ARG(arg1, arg2, ...) arg2</span></div>
|
|
<div class="line"><a id="l02193" name="l02193"></a><span class="lineno"> 2193</span> </div>
|
|
<div class="foldopen" id="foldopen02194" data-start="" data-end="">
|
|
<div class="line"><a id="l02194" name="l02194"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6a071f9b8f08adf077e260183ea016ca"> 2194</a></span><span class="preprocessor">#define INTERNAL_CATCH_BENCHMARK(BenchmarkName, name, benchmarkIndex)\</span></div>
|
|
<div class="line"><a id="l02195" name="l02195"></a><span class="lineno"> 2195</span><span class="preprocessor"> if( Catch::Benchmark::Benchmark BenchmarkName{name} ) \</span></div>
|
|
<div class="line"><a id="l02196" name="l02196"></a><span class="lineno"> 2196</span><span class="preprocessor"> BenchmarkName = [&](int benchmarkIndex)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l02197" name="l02197"></a><span class="lineno"> 2197</span> </div>
|
|
<div class="foldopen" id="foldopen02198" data-start="" data-end="">
|
|
<div class="line"><a id="l02198" name="l02198"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa951079bc730553e638e7c73d5dd6808"> 2198</a></span><span class="preprocessor">#define INTERNAL_CATCH_BENCHMARK_ADVANCED(BenchmarkName, name)\</span></div>
|
|
<div class="line"><a id="l02199" name="l02199"></a><span class="lineno"> 2199</span><span class="preprocessor"> if( Catch::Benchmark::Benchmark BenchmarkName{name} ) \</span></div>
|
|
<div class="line"><a id="l02200" name="l02200"></a><span class="lineno"> 2200</span><span class="preprocessor"> BenchmarkName = [&]</span></div>
|
|
</div>
|
|
<div class="line"><a id="l02201" name="l02201"></a><span class="lineno"> 2201</span> </div>
|
|
<div class="line"><a id="l02202" name="l02202"></a><span class="lineno"> 2202</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_ALL)</span></div>
|
|
<div class="line"><a id="l02203" name="l02203"></a><span class="lineno"> 2203</span> </div>
|
|
<div class="line"><a id="l02204" name="l02204"></a><span class="lineno"> 2204</span><span class="preprocessor">#define CATCH_BENCHMARK(...) \</span></div>
|
|
<div class="line"><a id="l02205" name="l02205"></a><span class="lineno"> 2205</span><span class="preprocessor"> INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(CATCH2_INTERNAL_BENCHMARK_), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))</span></div>
|
|
<div class="line"><a id="l02206" name="l02206"></a><span class="lineno"> 2206</span><span class="preprocessor">#define CATCH_BENCHMARK_ADVANCED(name) \</span></div>
|
|
<div class="line"><a id="l02207" name="l02207"></a><span class="lineno"> 2207</span><span class="preprocessor"> INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(CATCH2_INTERNAL_BENCHMARK_), name)</span></div>
|
|
<div class="line"><a id="l02208" name="l02208"></a><span class="lineno"> 2208</span> </div>
|
|
<div class="line"><a id="l02209" name="l02209"></a><span class="lineno"> 2209</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l02210" name="l02210"></a><span class="lineno"> 2210</span> </div>
|
|
<div class="foldopen" id="foldopen02211" data-start="" data-end="">
|
|
<div class="line"><a id="l02211" name="l02211"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8155a21ede70a871be3fe8c3ec0390ac"> 2211</a></span><span class="preprocessor">#define BENCHMARK(...) \</span></div>
|
|
<div class="line"><a id="l02212" name="l02212"></a><span class="lineno"> 2212</span><span class="preprocessor"> INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(CATCH2_INTERNAL_BENCHMARK_), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen02213" data-start="" data-end="">
|
|
<div class="line"><a id="l02213" name="l02213"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a17c97b123bc9415593a7d6831dd24ec1"> 2213</a></span><span class="preprocessor">#define BENCHMARK_ADVANCED(name) \</span></div>
|
|
<div class="line"><a id="l02214" name="l02214"></a><span class="lineno"> 2214</span><span class="preprocessor"> INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(CATCH2_INTERNAL_BENCHMARK_), name)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l02215" name="l02215"></a><span class="lineno"> 2215</span> </div>
|
|
<div class="line"><a id="l02216" name="l02216"></a><span class="lineno"> 2216</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02217" name="l02217"></a><span class="lineno"> 2217</span> </div>
|
|
<div class="line"><a id="l02218" name="l02218"></a><span class="lineno"> 2218</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_BENCHMARK_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02219" name="l02219"></a><span class="lineno"> 2219</span> </div>
|
|
<div class="line"><a id="l02220" name="l02220"></a><span class="lineno"> 2220</span> </div>
|
|
<div class="line"><a id="l02221" name="l02221"></a><span class="lineno"> 2221</span><span class="comment">// Adapted from donated nonius code.</span></div>
|
|
<div class="line"><a id="l02222" name="l02222"></a><span class="lineno"> 2222</span> </div>
|
|
<div class="line"><a id="l02223" name="l02223"></a><span class="lineno"> 2223</span><span class="preprocessor">#ifndef CATCH_CONSTRUCTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02224" name="l02224"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3053d7a22f724458f7549c7ef0140cf9"> 2224</a></span><span class="preprocessor">#define CATCH_CONSTRUCTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02225" name="l02225"></a><span class="lineno"> 2225</span> </div>
|
|
<div class="line"><a id="l02226" name="l02226"></a><span class="lineno"> 2226</span> </div>
|
|
<div class="line"><a id="l02227" name="l02227"></a><span class="lineno"> 2227</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l02228" name="l02228"></a><span class="lineno"> 2228</span> </div>
|
|
<div class="line"><a id="l02229" name="l02229"></a><span class="lineno"> 2229</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02230" name="l02230"></a><span class="lineno"> 2230</span> <span class="keyword">namespace </span>Benchmark {</div>
|
|
<div class="line"><a id="l02231" name="l02231"></a><span class="lineno"> 2231</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02232" name="l02232"></a><span class="lineno"> 2232</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keywordtype">bool</span> Destruct></div>
|
|
<div class="foldopen" id="foldopen02233" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02233" name="l02233"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html"> 2233</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d">ObjectStorage</a></div>
|
|
<div class="line"><a id="l02234" name="l02234"></a><span class="lineno"> 2234</span> {</div>
|
|
<div class="line"><a id="l02235" name="l02235"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d"> 2235</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d">ObjectStorage</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l02236" name="l02236"></a><span class="lineno"> 2236</span> </div>
|
|
<div class="foldopen" id="foldopen02237" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02237" name="l02237"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a0aa2343f6092b5fa82d6fd827c2cc6a5"> 2237</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a0aa2343f6092b5fa82d6fd827c2cc6a5">ObjectStorage</a>(<span class="keyword">const</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d">ObjectStorage</a>& other)</div>
|
|
<div class="line"><a id="l02238" name="l02238"></a><span class="lineno"> 2238</span> {</div>
|
|
<div class="line"><a id="l02239" name="l02239"></a><span class="lineno"> 2239</span> <span class="keyword">new</span>(&<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a>) T(other.<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#ad685d105bd305e905a2bd9ad4518d908">stored_object</a>());</div>
|
|
<div class="line"><a id="l02240" name="l02240"></a><span class="lineno"> 2240</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02241" name="l02241"></a><span class="lineno"> 2241</span> </div>
|
|
<div class="foldopen" id="foldopen02242" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02242" name="l02242"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a48cb51bf6c86fe1e475aead069edd6aa"> 2242</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a48cb51bf6c86fe1e475aead069edd6aa">ObjectStorage</a>(<a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d">ObjectStorage</a>&& other)</div>
|
|
<div class="line"><a id="l02243" name="l02243"></a><span class="lineno"> 2243</span> {</div>
|
|
<div class="line"><a id="l02244" name="l02244"></a><span class="lineno"> 2244</span> <span class="keyword">new</span>(<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a>) T(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(other.stored_object()));</div>
|
|
<div class="line"><a id="l02245" name="l02245"></a><span class="lineno"> 2245</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02246" name="l02246"></a><span class="lineno"> 2246</span> </div>
|
|
<div class="line"><a id="l02247" name="l02247"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a672f0bc299a46ae24acf83d946d1056c"> 2247</a></span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a672f0bc299a46ae24acf83d946d1056c">~ObjectStorage</a>() { <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a81ab6a2ec1fb5f3c47f085d08bfb3f4c">destruct_on_exit<T></a>(); }</div>
|
|
<div class="line"><a id="l02248" name="l02248"></a><span class="lineno"> 2248</span> </div>
|
|
<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"> 2249</span> <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen02250" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aefe652a42f4325601e153acbd6d959fd"> 2250</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aefe652a42f4325601e153acbd6d959fd">construct</a>(Args&&... args)</div>
|
|
<div class="line"><a id="l02251" name="l02251"></a><span class="lineno"> 2251</span> {</div>
|
|
<div class="line"><a id="l02252" name="l02252"></a><span class="lineno"> 2252</span> <span class="keyword">new</span> (<a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a>) T(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(args)...);</div>
|
|
<div class="line"><a id="l02253" name="l02253"></a><span class="lineno"> 2253</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02254" name="l02254"></a><span class="lineno"> 2254</span> </div>
|
|
<div class="line"><a id="l02255" name="l02255"></a><span class="lineno"> 2255</span> <span class="keyword">template</span> <<span class="keywordtype">bool</span> AllowManualDestruction = !Destruct></div>
|
|
<div class="foldopen" id="foldopen02256" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02256" name="l02256"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aa900bef7043eb089ebdf32b2df4a492b"> 2256</a></span> std::enable_if_t<AllowManualDestruction> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aa900bef7043eb089ebdf32b2df4a492b">destruct</a>()</div>
|
|
<div class="line"><a id="l02257" name="l02257"></a><span class="lineno"> 2257</span> {</div>
|
|
<div class="line"><a id="l02258" name="l02258"></a><span class="lineno"> 2258</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#ad685d105bd305e905a2bd9ad4518d908">stored_object</a>().~T();</div>
|
|
<div class="line"><a id="l02259" name="l02259"></a><span class="lineno"> 2259</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02260" name="l02260"></a><span class="lineno"> 2260</span> </div>
|
|
<div class="line"><a id="l02261" name="l02261"></a><span class="lineno"> 2261</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02262" name="l02262"></a><span class="lineno"> 2262</span> <span class="comment">// If this is a constructor benchmark, destruct the underlying object</span></div>
|
|
<div class="line"><a id="l02263" name="l02263"></a><span class="lineno"> 2263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="line"><a id="l02264" name="l02264"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a81ab6a2ec1fb5f3c47f085d08bfb3f4c"> 2264</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a81ab6a2ec1fb5f3c47f085d08bfb3f4c">destruct_on_exit</a>(std::enable_if_t<Destruct, U>* = <span class="keyword">nullptr</span>) { <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aa900bef7043eb089ebdf32b2df4a492b">destruct<true></a>(); }</div>
|
|
<div class="line"><a id="l02265" name="l02265"></a><span class="lineno"> 2265</span> <span class="comment">// Otherwise, don't</span></div>
|
|
<div class="line"><a id="l02266" name="l02266"></a><span class="lineno"> 2266</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="line"><a id="l02267" name="l02267"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aed0db08b2f82256bdcceb0a125a95a27"> 2267</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aed0db08b2f82256bdcceb0a125a95a27">destruct_on_exit</a>(std::enable_if_t<!Destruct, U>* = <span class="keyword">nullptr</span>) { }</div>
|
|
<div class="line"><a id="l02268" name="l02268"></a><span class="lineno"> 2268</span> </div>
|
|
<div class="line"><a id="l02269" name="l02269"></a><span class="lineno"> 2269</span><span class="preprocessor">#if defined( __GNUC__ ) && __GNUC__ <= 6</span></div>
|
|
<div class="line"><a id="l02270" name="l02270"></a><span class="lineno"> 2270</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l02271" name="l02271"></a><span class="lineno"> 2271</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wstrict-aliasing"</span></div>
|
|
<div class="line"><a id="l02272" name="l02272"></a><span class="lineno"> 2272</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02273" name="l02273"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#ad685d105bd305e905a2bd9ad4518d908"> 2273</a></span> T& <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#ad685d105bd305e905a2bd9ad4518d908">stored_object</a>() { <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast<</span>T*<span class="keyword">></span>( <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a> ); }</div>
|
|
<div class="line"><a id="l02274" name="l02274"></a><span class="lineno"> 2274</span> </div>
|
|
<div class="foldopen" id="foldopen02275" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02275" name="l02275"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a70291139df4ff98e7d74b5ac9ba2ff36"> 2275</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a70291139df4ff98e7d74b5ac9ba2ff36">stored_object</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02276" name="l02276"></a><span class="lineno"> 2276</span> <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast<</span>T const*<span class="keyword">></span>( <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a> );</div>
|
|
<div class="line"><a id="l02277" name="l02277"></a><span class="lineno"> 2277</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02278" name="l02278"></a><span class="lineno"> 2278</span><span class="preprocessor">#if defined( __GNUC__ ) && __GNUC__ <= 6</span></div>
|
|
<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"> 2279</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l02280" name="l02280"></a><span class="lineno"> 2280</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02281" name="l02281"></a><span class="lineno"> 2281</span> </div>
|
|
<div class="line"><a id="l02282" name="l02282"></a><span class="lineno"><a class="line" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69"> 2282</a></span> <span class="keyword">alignas</span>( T ) <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">data</a>[<span class="keyword">sizeof</span>( T )]{};</div>
|
|
<div class="line"><a id="l02283" name="l02283"></a><span class="lineno"> 2283</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02284" name="l02284"></a><span class="lineno"> 2284</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"> 2285</span> </div>
|
|
<div class="line"><a id="l02286" name="l02286"></a><span class="lineno"> 2286</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a737e4b9b2571ab17d74621f181a33eff"> 2287</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a737e4b9b2571ab17d74621f181a33eff">storage_for</a> = <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html">Detail::ObjectStorage<T, true></a>;</div>
|
|
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</span> </div>
|
|
<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"> 2289</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Benchmark.html#a49daedbacb4c240e304482a88245fd10"> 2290</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Benchmark.html#a49daedbacb4c240e304482a88245fd10">destructable_object</a> = <a class="code hl_struct" href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html">Detail::ObjectStorage<T, false></a>;</div>
|
|
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span> } <span class="comment">// namespace Benchmark</span></div>
|
|
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"> 2293</span> </div>
|
|
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONSTRUCTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02295" name="l02295"></a><span class="lineno"> 2295</span> </div>
|
|
<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_BENCHMARK_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02297" name="l02297"></a><span class="lineno"> 2297</span> </div>
|
|
<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"> 2298</span> </div>
|
|
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"> 2299</span><span class="preprocessor">#ifndef CATCH_APPROX_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a18dab34d745f95130517ca896494f63b"> 2300</a></span><span class="preprocessor">#define CATCH_APPROX_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span> </div>
|
|
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span> </div>
|
|
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span> </div>
|
|
<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"> 2304</span><span class="preprocessor">#ifndef CATCH_TOSTRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a713c3be9868cccdbf09151be829a693e"> 2305</a></span><span class="preprocessor">#define CATCH_TOSTRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span> </div>
|
|
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</span> </div>
|
|
<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"> 2308</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l02309" name="l02309"></a><span class="lineno"> 2309</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"> 2310</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l02311" name="l02311"></a><span class="lineno"> 2311</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l02312" name="l02312"></a><span class="lineno"> 2312</span> </div>
|
|
<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"> 2313</span> </div>
|
|
<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"> 2314</span> </div>
|
|
<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"> 2315</span></div>
|
|
<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"> 2323</span> </div>
|
|
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span><span class="preprocessor">#ifndef CATCH_CONFIG_WCHAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5d6e05dc19c62cefa4d5593631cfe7ef"> 2325</a></span><span class="preprocessor">#define CATCH_CONFIG_WCHAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"> 2326</span> </div>
|
|
<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"> 2327</span> </div>
|
|
<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"> 2328</span><span class="comment">// We assume that WCHAR should be enabled by default, and only disabled</span></div>
|
|
<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</span><span class="comment">// for a shortlist (so far only DJGPP) of compilers.</span></div>
|
|
<div class="line"><a id="l02330" name="l02330"></a><span class="lineno"> 2330</span> </div>
|
|
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span><span class="preprocessor">#if defined(__DJGPP__)</span></div>
|
|
<div class="line"><a id="l02332" name="l02332"></a><span class="lineno"> 2332</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_NO_WCHAR</span></div>
|
|
<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"> 2333</span><span class="preprocessor">#endif </span><span class="comment">// __DJGPP__</span></div>
|
|
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span> </div>
|
|
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"> 2335</span><span class="preprocessor">#if !defined( CATCH_INTERNAL_CONFIG_NO_WCHAR ) && \</span></div>
|
|
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_WCHAR ) && \</span></div>
|
|
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span><span class="preprocessor"> !defined( CATCH_CONFIG_WCHAR )</span></div>
|
|
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac6675f48ca221c1b9124ea02fe88324b"> 2338</a></span><span class="preprocessor"># define CATCH_CONFIG_WCHAR</span></div>
|
|
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"> 2339</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span> </div>
|
|
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_WCHAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> </div>
|
|
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> </div>
|
|
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"> 2344</span><span class="preprocessor">#ifndef CATCH_REUSABLE_STRING_STREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02345" name="l02345"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad6d7170e6c6866452cdf1cfec2041d90"> 2345</a></span><span class="preprocessor">#define CATCH_REUSABLE_STRING_STREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"> 2346</span> </div>
|
|
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"> 2347</span> </div>
|
|
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"> 2348</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"> 2350</span><span class="preprocessor">#include <ostream></span></div>
|
|
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"> 2351</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"> 2352</span> </div>
|
|
<div class="line"><a id="l02353" name="l02353"></a><span class="lineno"> 2353</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02354" name="l02354"></a><span class="lineno"> 2354</span> </div>
|
|
<div class="foldopen" id="foldopen02355" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"><a class="line" href="classCatch_1_1ReusableStringStream.html"> 2355</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a9b3f8c52b0d2d63ffd825297a9c09781">ReusableStringStream</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l02356" name="l02356"></a><span class="lineno"><a class="line" href="classCatch_1_1ReusableStringStream.html#a6e8154ffe67117de424c491e3b192504"> 2356</a></span> std::size_t <a class="code hl_variable" href="classCatch_1_1ReusableStringStream.html#a6e8154ffe67117de424c491e3b192504">m_index</a>;</div>
|
|
<div class="line"><a id="l02357" name="l02357"></a><span class="lineno"><a class="line" href="classCatch_1_1ReusableStringStream.html#ae8dc0aa8ab418990869cd5ea9ee51f14"> 2357</a></span> std::ostream* <a class="code hl_variable" href="classCatch_1_1ReusableStringStream.html#ae8dc0aa8ab418990869cd5ea9ee51f14">m_oss</a>;</div>
|
|
<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"> 2358</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"> 2359</span> <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a9b3f8c52b0d2d63ffd825297a9c09781">ReusableStringStream</a>();</div>
|
|
<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"> 2360</span> <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a9b3f8c52b0d2d63ffd825297a9c09781">~ReusableStringStream</a>();</div>
|
|
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span></div>
|
|
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span> std::string <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>(std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>);</div>
|
|
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> </div>
|
|
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__)</span></div>
|
|
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span><span class="preprocessor">#pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span><span class="comment">// Old versions of GCC do not understand -Wnonnull-compare</span></div>
|
|
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Wpragmas"</span></div>
|
|
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span><span class="comment">// Streaming a function pointer triggers Waddress and Wnonnull-compare</span></div>
|
|
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span><span class="comment">// on GCC, because it implicitly converts it to bool and then decides</span></div>
|
|
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span><span class="comment">// that the check it uses (a? true : false) is tautological and cannot</span></div>
|
|
<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"> 2374</span><span class="comment">// be null...</span></div>
|
|
<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Waddress"</span></div>
|
|
<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"> 2376</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Wnonnull-compare"</span></div>
|
|
<div class="line"><a id="l02377" name="l02377"></a><span class="lineno"> 2377</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02378" name="l02378"></a><span class="lineno"> 2378</span> </div>
|
|
<div class="line"><a id="l02379" name="l02379"></a><span class="lineno"> 2379</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen02380" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02380" name="l02380"></a><span class="lineno"><a class="line" href="classCatch_1_1ReusableStringStream.html#af95f72024c082db70e5e50782e28e4f6"> 2380</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( T <span class="keyword">const</span>& value ) -> <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a9b3f8c52b0d2d63ffd825297a9c09781">ReusableStringStream</a>& {</div>
|
|
<div class="line"><a id="l02381" name="l02381"></a><span class="lineno"> 2381</span> *<a class="code hl_variable" href="classCatch_1_1ReusableStringStream.html#ae8dc0aa8ab418990869cd5ea9ee51f14">m_oss</a> << value;</div>
|
|
<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"> 2382</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span> </div>
|
|
<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__)</span></div>
|
|
<div class="line"><a id="l02386" name="l02386"></a><span class="lineno"> 2386</span><span class="preprocessor">#pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l02387" name="l02387"></a><span class="lineno"> 2387</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02388" name="l02388"></a><span class="lineno"><a class="line" href="classCatch_1_1ReusableStringStream.html#a6881808c60a080d4e24a0b81c94cbf67"> 2388</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a6881808c60a080d4e24a0b81c94cbf67">get</a>() -> std::ostream& { <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1ReusableStringStream.html#ae8dc0aa8ab418990869cd5ea9ee51f14">m_oss</a>; }</div>
|
|
<div class="line"><a id="l02389" name="l02389"></a><span class="lineno"> 2389</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02390" name="l02390"></a><span class="lineno"> 2390</span>}</div>
|
|
<div class="line"><a id="l02391" name="l02391"></a><span class="lineno"> 2391</span> </div>
|
|
<div class="line"><a id="l02392" name="l02392"></a><span class="lineno"> 2392</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REUSABLE_STRING_STREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02393" name="l02393"></a><span class="lineno"> 2393</span> </div>
|
|
<div class="line"><a id="l02394" name="l02394"></a><span class="lineno"> 2394</span> </div>
|
|
<div class="line"><a id="l02395" name="l02395"></a><span class="lineno"> 2395</span><span class="preprocessor">#ifndef CATCH_VOID_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02396" name="l02396"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8319a5e0a5337673b7000cb8b56988ac"> 2396</a></span><span class="preprocessor">#define CATCH_VOID_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02397" name="l02397"></a><span class="lineno"> 2397</span> </div>
|
|
<div class="line"><a id="l02398" name="l02398"></a><span class="lineno"> 2398</span> </div>
|
|
<div class="line"><a id="l02399" name="l02399"></a><span class="lineno"> 2399</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02400" name="l02400"></a><span class="lineno"> 2400</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02401" name="l02401"></a><span class="lineno"> 2401</span> </div>
|
|
<div class="line"><a id="l02402" name="l02402"></a><span class="lineno"> 2402</span> <span class="keyword">template</span> <<span class="keyword">typename</span>...></div>
|
|
<div class="line"><a id="l02403" name="l02403"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1make__void.html#ad530663092bffe57ae58f3a6c0285b68"> 2403</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1make__void.html">make_void</a> { <span class="keyword">using </span><a class="code hl_typedef" href="structCatch_1_1Detail_1_1make__void.html#ad530663092bffe57ae58f3a6c0285b68">type</a> = void; };</div>
|
|
<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"> 2404</span> </div>
|
|
<div class="line"><a id="l02405" name="l02405"></a><span class="lineno"> 2405</span> <span class="keyword">template</span> <<span class="keyword">typename</span>... Ts></div>
|
|
<div class="line"><a id="l02406" name="l02406"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d"> 2406</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d">void_t</a> = <span class="keyword">typename</span> <a class="code hl_struct" href="structCatch_1_1Detail_1_1make__void.html">make_void</a><Ts...>::type;</div>
|
|
<div class="line"><a id="l02407" name="l02407"></a><span class="lineno"> 2407</span> </div>
|
|
<div class="line"><a id="l02408" name="l02408"></a><span class="lineno"> 2408</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02409" name="l02409"></a><span class="lineno"> 2409</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02410" name="l02410"></a><span class="lineno"> 2410</span> </div>
|
|
<div class="line"><a id="l02411" name="l02411"></a><span class="lineno"> 2411</span> </div>
|
|
<div class="line"><a id="l02412" name="l02412"></a><span class="lineno"> 2412</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_VOID_TYPE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02413" name="l02413"></a><span class="lineno"> 2413</span> </div>
|
|
<div class="line"><a id="l02414" name="l02414"></a><span class="lineno"> 2414</span> </div>
|
|
<div class="line"><a id="l02415" name="l02415"></a><span class="lineno"> 2415</span><span class="preprocessor">#ifndef CATCH_INTERFACES_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02416" name="l02416"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9b75df7707fcb12a617545c146a9a514"> 2416</a></span><span class="preprocessor">#define CATCH_INTERFACES_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02417" name="l02417"></a><span class="lineno"> 2417</span> </div>
|
|
<div class="line"><a id="l02418" name="l02418"></a><span class="lineno"> 2418</span> </div>
|
|
<div class="line"><a id="l02419" name="l02419"></a><span class="lineno"> 2419</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l02420" name="l02420"></a><span class="lineno"> 2420</span> </div>
|
|
<div class="line"><a id="l02421" name="l02421"></a><span class="lineno"> 2421</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02422" name="l02422"></a><span class="lineno"> 2422</span> </div>
|
|
<div class="line"><a id="l02423" name="l02423"></a><span class="lineno"> 2423</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="foldopen" id="foldopen02424" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02424" name="l02424"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1EnumInfo.html"> 2424</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1EnumInfo.html">EnumInfo</a> {</div>
|
|
<div class="line"><a id="l02425" name="l02425"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1EnumInfo.html#a16ecfd3a7e11439433aabbdf6ecb676c"> 2425</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1Detail_1_1EnumInfo.html#a16ecfd3a7e11439433aabbdf6ecb676c">m_name</a>;</div>
|
|
<div class="line"><a id="l02426" name="l02426"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1EnumInfo.html#ad65c0537a50d375859295a2c18ade489"> 2426</a></span> std::vector<std::pair<int, StringRef>> <a class="code hl_variable" href="structCatch_1_1Detail_1_1EnumInfo.html#ad65c0537a50d375859295a2c18ade489">m_values</a>;</div>
|
|
<div class="line"><a id="l02427" name="l02427"></a><span class="lineno"> 2427</span> </div>
|
|
<div class="line"><a id="l02428" name="l02428"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1EnumInfo.html#ab6608593c00614a688045fe8d911258d"> 2428</a></span> <a class="code hl_function" href="structCatch_1_1Detail_1_1EnumInfo.html#ab6608593c00614a688045fe8d911258d">~EnumInfo</a>();</div>
|
|
<div class="line"><a id="l02429" name="l02429"></a><span class="lineno"> 2429</span> </div>
|
|
<div class="line"><a id="l02430" name="l02430"></a><span class="lineno"> 2430</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="structCatch_1_1Detail_1_1EnumInfo.html#a2fdfacc411d7afb1cb690366e5e49cb3">lookup</a>( <span class="keywordtype">int</span> value ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l02431" name="l02431"></a><span class="lineno"> 2431</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02432" name="l02432"></a><span class="lineno"> 2432</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02433" name="l02433"></a><span class="lineno"> 2433</span> </div>
|
|
<div class="foldopen" id="foldopen02434" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02434" name="l02434"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableEnumValuesRegistry.html"> 2434</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IMutableEnumValuesRegistry.html">IMutableEnumValuesRegistry</a> {</div>
|
|
<div class="line"><a id="l02435" name="l02435"></a><span class="lineno"> 2435</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02436" name="l02436"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableEnumValuesRegistry.html#a438c16ba32f3ecbbbbd8b3d49a530dcb"> 2436</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IMutableEnumValuesRegistry.html#a438c16ba32f3ecbbbbd8b3d49a530dcb">~IMutableEnumValuesRegistry</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l02437" name="l02437"></a><span class="lineno"> 2437</span> </div>
|
|
<div class="line"><a id="l02438" name="l02438"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableEnumValuesRegistry.html#a56e9726c383ed48731621c7183730310"> 2438</a></span> <span class="keyword">virtual</span> <a class="code hl_struct" href="structCatch_1_1Detail_1_1EnumInfo.html">Detail::EnumInfo</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IMutableEnumValuesRegistry.html#a56e9726c383ed48731621c7183730310">registerEnum</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> enumName, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> allEnums, std::vector<int> <span class="keyword">const</span>& values ) = 0;</div>
|
|
<div class="line"><a id="l02439" name="l02439"></a><span class="lineno"> 2439</span> </div>
|
|
<div class="line"><a id="l02440" name="l02440"></a><span class="lineno"> 2440</span> <span class="keyword">template</span><<span class="keyword">typename</span> E></div>
|
|
<div class="foldopen" id="foldopen02441" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02441" name="l02441"></a><span class="lineno"><a class="line" href="classCatch_1_1IMutableEnumValuesRegistry.html#ac1f8c7d3d97100ec30e09a3866f69904"> 2441</a></span> <a class="code hl_struct" href="structCatch_1_1Detail_1_1EnumInfo.html">Detail::EnumInfo</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1IMutableEnumValuesRegistry.html#ac1f8c7d3d97100ec30e09a3866f69904">registerEnum</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> enumName, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> allEnums, std::initializer_list<E> values ) {</div>
|
|
<div class="line"><a id="l02442" name="l02442"></a><span class="lineno"> 2442</span> <span class="keyword">static_assert</span>(<span class="keyword">sizeof</span>(int) >= <span class="keyword">sizeof</span>(E), <span class="stringliteral">"Cannot serialize enum to int"</span>);</div>
|
|
<div class="line"><a id="l02443" name="l02443"></a><span class="lineno"> 2443</span> std::vector<int> intValues;</div>
|
|
<div class="line"><a id="l02444" name="l02444"></a><span class="lineno"> 2444</span> intValues.reserve( values.size() );</div>
|
|
<div class="line"><a id="l02445" name="l02445"></a><span class="lineno"> 2445</span> <span class="keywordflow">for</span>( <span class="keyword">auto</span> enumValue : values )</div>
|
|
<div class="line"><a id="l02446" name="l02446"></a><span class="lineno"> 2446</span> intValues.push_back( <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>( enumValue ) );</div>
|
|
<div class="line"><a id="l02447" name="l02447"></a><span class="lineno"> 2447</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1IMutableEnumValuesRegistry.html#a56e9726c383ed48731621c7183730310">registerEnum</a>( enumName, allEnums, intValues );</div>
|
|
<div class="line"><a id="l02448" name="l02448"></a><span class="lineno"> 2448</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02449" name="l02449"></a><span class="lineno"> 2449</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02450" name="l02450"></a><span class="lineno"> 2450</span> </div>
|
|
<div class="line"><a id="l02451" name="l02451"></a><span class="lineno"> 2451</span>} <span class="comment">// Catch</span></div>
|
|
<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span> </div>
|
|
<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"> 2453</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l02454" name="l02454"></a><span class="lineno"> 2454</span> </div>
|
|
<div class="line"><a id="l02455" name="l02455"></a><span class="lineno"> 2455</span><span class="preprocessor">#ifdef CATCH_CONFIG_CPP17_STRING_VIEW</span></div>
|
|
<div class="line"><a id="l02456" name="l02456"></a><span class="lineno"> 2456</span><span class="preprocessor">#include <string_view></span></div>
|
|
<div class="line"><a id="l02457" name="l02457"></a><span class="lineno"> 2457</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02458" name="l02458"></a><span class="lineno"> 2458</span> </div>
|
|
<div class="line"><a id="l02459" name="l02459"></a><span class="lineno"> 2459</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l02460" name="l02460"></a><span class="lineno"> 2460</span><span class="preprocessor">#pragma warning(push)</span></div>
|
|
<div class="line"><a id="l02461" name="l02461"></a><span class="lineno"> 2461</span><span class="preprocessor">#pragma warning(disable:4180) </span><span class="comment">// We attempt to stream a function (address) by const&, which MSVC complains about but is harmless</span></div>
|
|
<div class="line"><a id="l02462" name="l02462"></a><span class="lineno"> 2462</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02463" name="l02463"></a><span class="lineno"> 2463</span> </div>
|
|
<div class="line"><a id="l02464" name="l02464"></a><span class="lineno"> 2464</span><span class="comment">// We need a dummy global operator<< so we can bring it into Catch namespace later</span></div>
|
|
<div class="line"><a id="l02465" name="l02465"></a><span class="lineno"><a class="line" href="structCatch__global__namespace__dummy.html"> 2465</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch__global__namespace__dummy.html">Catch_global_namespace_dummy</a>{};</div>
|
|
<div class="line"><a id="l02466" name="l02466"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e"> 2466</a></span>std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>(std::ostream&, <a class="code hl_struct" href="structCatch__global__namespace__dummy.html">Catch_global_namespace_dummy</a>);</div>
|
|
<div class="line"><a id="l02467" name="l02467"></a><span class="lineno"> 2467</span> </div>
|
|
<div class="line"><a id="l02468" name="l02468"></a><span class="lineno"> 2468</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l02469" name="l02469"></a><span class="lineno"> 2469</span> <span class="comment">// Bring in global namespace operator<< for ADL lookup in</span></div>
|
|
<div class="line"><a id="l02470" name="l02470"></a><span class="lineno"> 2470</span> <span class="comment">// `IsStreamInsertable` below.</span></div>
|
|
<div class="line"><a id="l02471" name="l02471"></a><span class="lineno"> 2471</span> <span class="keyword">using </span>::<span class="keyword">operator</span><<;</div>
|
|
<div class="line"><a id="l02472" name="l02472"></a><span class="lineno"> 2472</span> </div>
|
|
<div class="line"><a id="l02473" name="l02473"></a><span class="lineno"> 2473</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02474" name="l02474"></a><span class="lineno"> 2474</span> </div>
|
|
<div class="foldopen" id="foldopen02475" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02475" name="l02475"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a"> 2475</a></span> <span class="keyword">inline</span> std::size_t <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a">catch_strnlen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, std::size_t n) {</div>
|
|
<div class="line"><a id="l02476" name="l02476"></a><span class="lineno"> 2476</span> <span class="keyword">auto</span> ret = std::char_traits<char>::find(str, n, <span class="charliteral">'\0'</span>);</div>
|
|
<div class="line"><a id="l02477" name="l02477"></a><span class="lineno"> 2477</span> <span class="keywordflow">if</span> (ret != <span class="keyword">nullptr</span>) {</div>
|
|
<div class="line"><a id="l02478" name="l02478"></a><span class="lineno"> 2478</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>std::size_t<span class="keyword">></span>(ret - str);</div>
|
|
<div class="line"><a id="l02479" name="l02479"></a><span class="lineno"> 2479</span> }</div>
|
|
<div class="line"><a id="l02480" name="l02480"></a><span class="lineno"> 2480</span> <span class="keywordflow">return</span> n;</div>
|
|
<div class="line"><a id="l02481" name="l02481"></a><span class="lineno"> 2481</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02482" name="l02482"></a><span class="lineno"> 2482</span> </div>
|
|
<div class="line"><a id="l02483" name="l02483"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#aa8b72c37b9b6fb01fc898ce47136576f"> 2483</a></span> <span class="keyword">constexpr</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="namespaceCatch_1_1Detail.html#aa8b72c37b9b6fb01fc898ce47136576f">unprintableString</a> = <span class="stringliteral">"{?}"</span>_sr;</div>
|
|
<div class="line"><a id="l02484" name="l02484"></a><span class="lineno"> 2484</span></div>
|
|
<div class="line"><a id="l02486" name="l02486"></a><span class="lineno"> 2486</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">convertIntoString</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <span class="keywordtype">string</span>, <span class="keywordtype">bool</span> escapeInvisibles );</div>
|
|
<div class="line"><a id="l02487" name="l02487"></a><span class="lineno"> 2487</span></div>
|
|
<div class="line"><a id="l02490" name="l02490"></a><span class="lineno"> 2490</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">convertIntoString</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <span class="keywordtype">string</span> );</div>
|
|
<div class="line"><a id="l02491" name="l02491"></a><span class="lineno"> 2491</span> </div>
|
|
<div class="line"><a id="l02492" name="l02492"></a><span class="lineno"> 2492</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ac5d6c510e565ee5bddcc2236194ce29e">rawMemoryToString</a>( <span class="keyword">const</span> <span class="keywordtype">void</span> *<span class="keywordtype">object</span>, std::size_t size );</div>
|
|
<div class="line"><a id="l02493" name="l02493"></a><span class="lineno"> 2493</span> </div>
|
|
<div class="line"><a id="l02494" name="l02494"></a><span class="lineno"> 2494</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen02495" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02495" name="l02495"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a371620ed524abfcae5c3772bf49b563a"> 2495</a></span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ac5d6c510e565ee5bddcc2236194ce29e">rawMemoryToString</a>( <span class="keyword">const</span> T& <span class="keywordtype">object</span> ) {</div>
|
|
<div class="line"><a id="l02496" name="l02496"></a><span class="lineno"> 2496</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ac5d6c510e565ee5bddcc2236194ce29e">rawMemoryToString</a>( &<span class="keywordtype">object</span>, <span class="keyword">sizeof</span>(<span class="keywordtype">object</span>) );</div>
|
|
<div class="line"><a id="l02497" name="l02497"></a><span class="lineno"> 2497</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02498" name="l02498"></a><span class="lineno"> 2498</span> </div>
|
|
<div class="line"><a id="l02499" name="l02499"></a><span class="lineno"> 2499</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen02500" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02500" name="l02500"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1IsStreamInsertable.html"> 2500</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Detail_1_1IsStreamInsertable.html">IsStreamInsertable</a> {</div>
|
|
<div class="line"><a id="l02501" name="l02501"></a><span class="lineno"> 2501</span> <span class="keyword">template</span><<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> U></div>
|
|
<div class="line"><a id="l02502" name="l02502"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a4269761a8bcae50110c0814462fc4ef0"> 2502</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a4269761a8bcae50110c0814462fc4ef0">test</a>(<span class="keywordtype">int</span>)</div>
|
|
<div class="line"><a id="l02503" name="l02503"></a><span class="lineno"> 2503</span> -> <span class="keyword">decltype</span>(std::declval<Stream&>() << std::declval<U>(), std::true_type());</div>
|
|
<div class="line"><a id="l02504" name="l02504"></a><span class="lineno"> 2504</span> </div>
|
|
<div class="line"><a id="l02505" name="l02505"></a><span class="lineno"> 2505</span> <span class="keyword">template</span><<span class="keyword">typename</span>, <span class="keyword">typename</span>></div>
|
|
<div class="line"><a id="l02506" name="l02506"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#ac5761375646929916dc5e165d44cd3d9"> 2506</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#ac5761375646929916dc5e165d44cd3d9">test</a>(...)->std::false_type;</div>
|
|
<div class="line"><a id="l02507" name="l02507"></a><span class="lineno"> 2507</span> </div>
|
|
<div class="line"><a id="l02508" name="l02508"></a><span class="lineno"> 2508</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02509" name="l02509"></a><span class="lineno"><a class="line" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a42818b09ae5851126a70ee263769e309"> 2509</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a42818b09ae5851126a70ee263769e309">value</a> = <span class="keyword">decltype</span>(<a class="code hl_function" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a4269761a8bcae50110c0814462fc4ef0">test<std::ostream, const T&></a>(0))<a class="code hl_variable" href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a42818b09ae5851126a70ee263769e309">::value</a>;</div>
|
|
<div class="line"><a id="l02510" name="l02510"></a><span class="lineno"> 2510</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02511" name="l02511"></a><span class="lineno"> 2511</span> </div>
|
|
<div class="line"><a id="l02512" name="l02512"></a><span class="lineno"> 2512</span> <span class="keyword">template</span><<span class="keyword">typename</span> E></div>
|
|
<div class="line"><a id="l02513" name="l02513"></a><span class="lineno"> 2513</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a242396de537c5176710d680cc9ca6b93">convertUnknownEnumToString</a>( E e );</div>
|
|
<div class="line"><a id="l02514" name="l02514"></a><span class="lineno"> 2514</span> </div>
|
|
<div class="line"><a id="l02515" name="l02515"></a><span class="lineno"> 2515</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02516" name="l02516"></a><span class="lineno"> 2516</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l02517" name="l02517"></a><span class="lineno"> 2517</span> !std::is_enum<T>::value && !std::is_base_of<std::exception, T>::value,</div>
|
|
<div class="foldopen" id="foldopen02518" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02518" name="l02518"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f"> 2518</a></span> std::string> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f">convertUnstreamable</a>( T <span class="keyword">const</span>& ) {</div>
|
|
<div class="line"><a id="l02519" name="l02519"></a><span class="lineno"> 2519</span> <span class="keywordflow">return</span> std::string(<a class="code hl_variable" href="namespaceCatch_1_1Detail.html#aa8b72c37b9b6fb01fc898ce47136576f">Detail::unprintableString</a>);</div>
|
|
<div class="line"><a id="l02520" name="l02520"></a><span class="lineno"> 2520</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02521" name="l02521"></a><span class="lineno"> 2521</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02522" name="l02522"></a><span class="lineno"> 2522</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l02523" name="l02523"></a><span class="lineno"> 2523</span> !std::is_enum<T>::value && std::is_base_of<std::exception, T>::value,</div>
|
|
<div class="foldopen" id="foldopen02524" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02524" name="l02524"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a94136655b495ecf9d133cc2292d707e9"> 2524</a></span> std::string> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f">convertUnstreamable</a>(T <span class="keyword">const</span>& ex) {</div>
|
|
<div class="line"><a id="l02525" name="l02525"></a><span class="lineno"> 2525</span> <span class="keywordflow">return</span> ex.what();</div>
|
|
<div class="line"><a id="l02526" name="l02526"></a><span class="lineno"> 2526</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02527" name="l02527"></a><span class="lineno"> 2527</span> </div>
|
|
<div class="line"><a id="l02528" name="l02528"></a><span class="lineno"> 2528</span> </div>
|
|
<div class="line"><a id="l02529" name="l02529"></a><span class="lineno"> 2529</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02530" name="l02530"></a><span class="lineno"> 2530</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l02531" name="l02531"></a><span class="lineno"> 2531</span> std::is_enum<T>::value,</div>
|
|
<div class="foldopen" id="foldopen02532" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02532" name="l02532"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#acc4a8b80cbc750f795e60dd22af8e0fc"> 2532</a></span> std::string> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f">convertUnstreamable</a>( T <span class="keyword">const</span>& value ) {</div>
|
|
<div class="line"><a id="l02533" name="l02533"></a><span class="lineno"> 2533</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a242396de537c5176710d680cc9ca6b93">convertUnknownEnumToString</a>( value );</div>
|
|
<div class="line"><a id="l02534" name="l02534"></a><span class="lineno"> 2534</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02535" name="l02535"></a><span class="lineno"> 2535</span> </div>
|
|
<div class="line"><a id="l02536" name="l02536"></a><span class="lineno"> 2536</span><span class="preprocessor">#if defined(_MANAGED)</span></div>
|
|
<div class="line"><a id="l02538" name="l02538"></a><span class="lineno"> 2538</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02539" name="l02539"></a><span class="lineno"> 2539</span> std::string clrReferenceToString( T^ ref ) {</div>
|
|
<div class="line"><a id="l02540" name="l02540"></a><span class="lineno"> 2540</span> <span class="keywordflow">if</span> (ref == <span class="keyword">nullptr</span>)</div>
|
|
<div class="line"><a id="l02541" name="l02541"></a><span class="lineno"> 2541</span> <span class="keywordflow">return</span> std::string(<span class="stringliteral">"null"</span>);</div>
|
|
<div class="line"><a id="l02542" name="l02542"></a><span class="lineno"> 2542</span> <span class="keyword">auto</span> bytes = System::Text::Encoding::UTF8->GetBytes(ref->ToString());</div>
|
|
<div class="line"><a id="l02543" name="l02543"></a><span class="lineno"> 2543</span> cli::pin_ptr<System::Byte> p = &bytes[0];</div>
|
|
<div class="line"><a id="l02544" name="l02544"></a><span class="lineno"> 2544</span> <span class="keywordflow">return</span> std::string(<span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span> <span class="keyword">const </span>*<span class="keyword">></span>(p), bytes->Length);</div>
|
|
<div class="line"><a id="l02545" name="l02545"></a><span class="lineno"> 2545</span> }</div>
|
|
<div class="line"><a id="l02546" name="l02546"></a><span class="lineno"> 2546</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02547" name="l02547"></a><span class="lineno"> 2547</span> </div>
|
|
<div class="line"><a id="l02548" name="l02548"></a><span class="lineno"> 2548</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02549" name="l02549"></a><span class="lineno"> 2549</span> </div>
|
|
<div class="line"><a id="l02550" name="l02550"></a><span class="lineno"> 2550</span> </div>
|
|
<div class="line"><a id="l02551" name="l02551"></a><span class="lineno"> 2551</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>></div>
|
|
<div class="foldopen" id="foldopen02552" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02552" name="l02552"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker.html"> 2552</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a> {</div>
|
|
<div class="line"><a id="l02553" name="l02553"></a><span class="lineno"> 2553</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fake = T></div>
|
|
<div class="line"><a id="l02554" name="l02554"></a><span class="lineno"> 2554</span> <span class="keyword">static</span></div>
|
|
<div class="line"><a id="l02555" name="l02555"></a><span class="lineno"> 2555</span> std::enable_if_t<::Catch::Detail::IsStreamInsertable<Fake>::value, std::string></div>
|
|
<div class="foldopen" id="foldopen02556" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02556" name="l02556"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker.html#afd8b3e04b8dc6647b682568980631e9b"> 2556</a></span> <a class="code hl_function" href="structCatch_1_1StringMaker.html#afd8b3e04b8dc6647b682568980631e9b">convert</a>(<span class="keyword">const</span> Fake& value) {</div>
|
|
<div class="line"><a id="l02557" name="l02557"></a><span class="lineno"> 2557</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l02558" name="l02558"></a><span class="lineno"> 2558</span> <span class="comment">// NB: call using the function-like syntax to avoid ambiguity with</span></div>
|
|
<div class="line"><a id="l02559" name="l02559"></a><span class="lineno"> 2559</span> <span class="comment">// user-defined templated operator<< under clang.</span></div>
|
|
<div class="line"><a id="l02560" name="l02560"></a><span class="lineno"> 2560</span> rss.operator<<(value);</div>
|
|
<div class="line"><a id="l02561" name="l02561"></a><span class="lineno"> 2561</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l02562" name="l02562"></a><span class="lineno"> 2562</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02563" name="l02563"></a><span class="lineno"> 2563</span> </div>
|
|
<div class="line"><a id="l02564" name="l02564"></a><span class="lineno"> 2564</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Fake = T></div>
|
|
<div class="line"><a id="l02565" name="l02565"></a><span class="lineno"> 2565</span> <span class="keyword">static</span></div>
|
|
<div class="line"><a id="l02566" name="l02566"></a><span class="lineno"> 2566</span> std::enable_if_t<!::Catch::Detail::IsStreamInsertable<Fake>::value, std::string></div>
|
|
<div class="foldopen" id="foldopen02567" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02567" name="l02567"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker.html#aaca2f9ad5f92868f44c38a6d29d946e8"> 2567</a></span> <a class="code hl_function" href="structCatch_1_1StringMaker.html#aaca2f9ad5f92868f44c38a6d29d946e8">convert</a>( <span class="keyword">const</span> Fake& value ) {</div>
|
|
<div class="line"><a id="l02568" name="l02568"></a><span class="lineno"> 2568</span><span class="preprocessor">#if !defined(CATCH_CONFIG_FALLBACK_STRINGIFIER)</span></div>
|
|
<div class="line"><a id="l02569" name="l02569"></a><span class="lineno"> 2569</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f">Detail::convertUnstreamable</a>(value);</div>
|
|
<div class="line"><a id="l02570" name="l02570"></a><span class="lineno"> 2570</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l02571" name="l02571"></a><span class="lineno"> 2571</span> <span class="keywordflow">return</span> CATCH_CONFIG_FALLBACK_STRINGIFIER(value);</div>
|
|
<div class="line"><a id="l02572" name="l02572"></a><span class="lineno"> 2572</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02573" name="l02573"></a><span class="lineno"> 2573</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02574" name="l02574"></a><span class="lineno"> 2574</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02575" name="l02575"></a><span class="lineno"> 2575</span> </div>
|
|
<div class="line"><a id="l02576" name="l02576"></a><span class="lineno"> 2576</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02577" name="l02577"></a><span class="lineno"> 2577</span> </div>
|
|
<div class="line"><a id="l02578" name="l02578"></a><span class="lineno"> 2578</span> <span class="comment">// This function dispatches all stringification requests inside of Catch.</span></div>
|
|
<div class="line"><a id="l02579" name="l02579"></a><span class="lineno"> 2579</span> <span class="comment">// Should be preferably called fully qualified, like ::Catch::Detail::stringify</span></div>
|
|
<div class="line"><a id="l02580" name="l02580"></a><span class="lineno"> 2580</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen02581" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02581" name="l02581"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880"> 2581</a></span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">stringify</a>(<span class="keyword">const</span> T& e) {</div>
|
|
<div class="line"><a id="l02582" name="l02582"></a><span class="lineno"> 2582</span> return ::Catch::StringMaker<std::remove_cv_t<std::remove_reference_t<T>>>::convert(e);</div>
|
|
<div class="line"><a id="l02583" name="l02583"></a><span class="lineno"> 2583</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02584" name="l02584"></a><span class="lineno"> 2584</span> </div>
|
|
<div class="line"><a id="l02585" name="l02585"></a><span class="lineno"> 2585</span> <span class="keyword">template</span><<span class="keyword">typename</span> E></div>
|
|
<div class="foldopen" id="foldopen02586" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02586" name="l02586"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#a242396de537c5176710d680cc9ca6b93"> 2586</a></span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a242396de537c5176710d680cc9ca6b93">convertUnknownEnumToString</a>( E e ) {</div>
|
|
<div class="line"><a id="l02587" name="l02587"></a><span class="lineno"> 2587</span> return ::Catch::Detail::stringify(<span class="keyword">static_cast<</span>std::underlying_type_t<E><span class="keyword">></span>(e));</div>
|
|
<div class="line"><a id="l02588" name="l02588"></a><span class="lineno"> 2588</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02589" name="l02589"></a><span class="lineno"> 2589</span> </div>
|
|
<div class="line"><a id="l02590" name="l02590"></a><span class="lineno"> 2590</span><span class="preprocessor">#if defined(_MANAGED)</span></div>
|
|
<div class="line"><a id="l02591" name="l02591"></a><span class="lineno"> 2591</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02592" name="l02592"></a><span class="lineno"> 2592</span> std::string stringify( T^ e ) {</div>
|
|
<div class="line"><a id="l02593" name="l02593"></a><span class="lineno"> 2593</span> return ::Catch::StringMaker<T^>::convert(e);</div>
|
|
<div class="line"><a id="l02594" name="l02594"></a><span class="lineno"> 2594</span> }</div>
|
|
<div class="line"><a id="l02595" name="l02595"></a><span class="lineno"> 2595</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02596" name="l02596"></a><span class="lineno"> 2596</span> </div>
|
|
<div class="line"><a id="l02597" name="l02597"></a><span class="lineno"> 2597</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02598" name="l02598"></a><span class="lineno"> 2598</span> </div>
|
|
<div class="line"><a id="l02599" name="l02599"></a><span class="lineno"> 2599</span> <span class="comment">// Some predefined specializations</span></div>
|
|
<div class="line"><a id="l02600" name="l02600"></a><span class="lineno"> 2600</span> </div>
|
|
<div class="line"><a id="l02601" name="l02601"></a><span class="lineno"> 2601</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02602" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02602" name="l02602"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1string_01_4.html"> 2602</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::string> {</div>
|
|
<div class="line"><a id="l02603" name="l02603"></a><span class="lineno"> 2603</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1string_01_4.html#aeb3af973a07047e84544d4c6ab81ce8d">convert</a>(<span class="keyword">const</span> std::string& str);</div>
|
|
<div class="line"><a id="l02604" name="l02604"></a><span class="lineno"> 2604</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02605" name="l02605"></a><span class="lineno"> 2605</span> </div>
|
|
<div class="line"><a id="l02606" name="l02606"></a><span class="lineno"> 2606</span><span class="preprocessor">#ifdef CATCH_CONFIG_CPP17_STRING_VIEW</span></div>
|
|
<div class="line"><a id="l02607" name="l02607"></a><span class="lineno"> 2607</span> <span class="keyword">template</span><></div>
|
|
<div class="line"><a id="l02608" name="l02608"></a><span class="lineno"> 2608</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::string_view> {</div>
|
|
<div class="line"><a id="l02609" name="l02609"></a><span class="lineno"> 2609</span> <span class="keyword">static</span> std::string convert(std::string_view str);</div>
|
|
<div class="line"><a id="l02610" name="l02610"></a><span class="lineno"> 2610</span> };</div>
|
|
<div class="line"><a id="l02611" name="l02611"></a><span class="lineno"> 2611</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02612" name="l02612"></a><span class="lineno"> 2612</span> </div>
|
|
<div class="line"><a id="l02613" name="l02613"></a><span class="lineno"> 2613</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02614" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02614" name="l02614"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_01const_01_5_01_4.html"> 2614</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><char const *> {</div>
|
|
<div class="line"><a id="l02615" name="l02615"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_01const_01_5_01_4.html#a20813965ad59cdf6d1f874f47158432d"> 2615</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01char_01const_01_5_01_4.html#a20813965ad59cdf6d1f874f47158432d">convert</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * str);</div>
|
|
<div class="line"><a id="l02616" name="l02616"></a><span class="lineno"> 2616</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02617" name="l02617"></a><span class="lineno"> 2617</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02618" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02618" name="l02618"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_01_5_01_4.html"> 2618</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><char *> {</div>
|
|
<div class="line"><a id="l02619" name="l02619"></a><span class="lineno"> 2619</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01char_01_5_01_4.html#a6f0642657bcd943dadfb3be075095e26">convert</a>(<span class="keywordtype">char</span> * str);</div>
|
|
<div class="line"><a id="l02620" name="l02620"></a><span class="lineno"> 2620</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02621" name="l02621"></a><span class="lineno"> 2621</span> </div>
|
|
<div class="line"><a id="l02622" name="l02622"></a><span class="lineno"> 2622</span><span class="preprocessor">#if defined(CATCH_CONFIG_WCHAR)</span></div>
|
|
<div class="line"><a id="l02623" name="l02623"></a><span class="lineno"> 2623</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02624" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02624" name="l02624"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1wstring_01_4.html"> 2624</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::wstring> {</div>
|
|
<div class="line"><a id="l02625" name="l02625"></a><span class="lineno"> 2625</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1wstring_01_4.html#a55f3d9d74f1d4f330fd94b7f04c7d03f">convert</a>(<span class="keyword">const</span> std::wstring& wstr);</div>
|
|
<div class="line"><a id="l02626" name="l02626"></a><span class="lineno"> 2626</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02627" name="l02627"></a><span class="lineno"> 2627</span> </div>
|
|
<div class="line"><a id="l02628" name="l02628"></a><span class="lineno"> 2628</span><span class="preprocessor"># ifdef CATCH_CONFIG_CPP17_STRING_VIEW</span></div>
|
|
<div class="line"><a id="l02629" name="l02629"></a><span class="lineno"> 2629</span> <span class="keyword">template</span><></div>
|
|
<div class="line"><a id="l02630" name="l02630"></a><span class="lineno"> 2630</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::wstring_view> {</div>
|
|
<div class="line"><a id="l02631" name="l02631"></a><span class="lineno"> 2631</span> <span class="keyword">static</span> std::string convert(std::wstring_view str);</div>
|
|
<div class="line"><a id="l02632" name="l02632"></a><span class="lineno"> 2632</span> };</div>
|
|
<div class="line"><a id="l02633" name="l02633"></a><span class="lineno"> 2633</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l02634" name="l02634"></a><span class="lineno"> 2634</span> </div>
|
|
<div class="line"><a id="l02635" name="l02635"></a><span class="lineno"> 2635</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02636" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02636" name="l02636"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01wchar__t_01const_01_5_01_4.html"> 2636</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><wchar_t const *> {</div>
|
|
<div class="line"><a id="l02637" name="l02637"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01wchar__t_01const_01_5_01_4.html#ae7535a1f417ace45ca05e4389334ffeb"> 2637</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01wchar__t_01const_01_5_01_4.html#ae7535a1f417ace45ca05e4389334ffeb">convert</a>(<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> * str);</div>
|
|
<div class="line"><a id="l02638" name="l02638"></a><span class="lineno"> 2638</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02639" name="l02639"></a><span class="lineno"> 2639</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02640" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02640" name="l02640"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01wchar__t_01_5_01_4.html"> 2640</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><wchar_t *> {</div>
|
|
<div class="line"><a id="l02641" name="l02641"></a><span class="lineno"> 2641</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01wchar__t_01_5_01_4.html#a115c02e329e190323caf6a4060fc40dd">convert</a>(<span class="keywordtype">wchar_t</span> * str);</div>
|
|
<div class="line"><a id="l02642" name="l02642"></a><span class="lineno"> 2642</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02643" name="l02643"></a><span class="lineno"> 2643</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_WCHAR</span></div>
|
|
<div class="line"><a id="l02644" name="l02644"></a><span class="lineno"> 2644</span> </div>
|
|
<div class="line"><a id="l02645" name="l02645"></a><span class="lineno"> 2645</span> <span class="keyword">template</span><<span class="keywordtype">size_t</span> SZ></div>
|
|
<div class="foldopen" id="foldopen02646" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02646" name="l02646"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_0fSZ_0e_4.html"> 2646</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><char[SZ]> {</div>
|
|
<div class="foldopen" id="foldopen02647" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02647" name="l02647"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_0fSZ_0e_4.html#a095e415534f9145300271befe9853357"> 2647</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01char_0fSZ_0e_4.html#a095e415534f9145300271befe9853357">convert</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* str) {</div>
|
|
<div class="line"><a id="l02648" name="l02648"></a><span class="lineno"> 2648</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">Detail::convertIntoString</a>(</div>
|
|
<div class="line"><a id="l02649" name="l02649"></a><span class="lineno"> 2649</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>( str, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a">Detail::catch_strnlen</a>( str, SZ ) ) );</div>
|
|
<div class="line"><a id="l02650" name="l02650"></a><span class="lineno"> 2650</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02651" name="l02651"></a><span class="lineno"> 2651</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02652" name="l02652"></a><span class="lineno"> 2652</span> <span class="keyword">template</span><<span class="keywordtype">size_t</span> SZ></div>
|
|
<div class="foldopen" id="foldopen02653" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02653" name="l02653"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01signed_01char_0fSZ_0e_4.html"> 2653</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><signed char[SZ]> {</div>
|
|
<div class="foldopen" id="foldopen02654" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02654" name="l02654"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01signed_01char_0fSZ_0e_4.html#a23ac689cc79dbcfe9b1765fe9e25690e"> 2654</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01signed_01char_0fSZ_0e_4.html#a23ac689cc79dbcfe9b1765fe9e25690e">convert</a>(<span class="keywordtype">signed</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* str) {</div>
|
|
<div class="line"><a id="l02655" name="l02655"></a><span class="lineno"> 2655</span> <span class="keyword">auto</span> reinterpreted = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span> const*<span class="keyword">></span>(str);</div>
|
|
<div class="line"><a id="l02656" name="l02656"></a><span class="lineno"> 2656</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">Detail::convertIntoString</a>(</div>
|
|
<div class="line"><a id="l02657" name="l02657"></a><span class="lineno"> 2657</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>(reinterpreted, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a">Detail::catch_strnlen</a>(reinterpreted, SZ)));</div>
|
|
<div class="line"><a id="l02658" name="l02658"></a><span class="lineno"> 2658</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02659" name="l02659"></a><span class="lineno"> 2659</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02660" name="l02660"></a><span class="lineno"> 2660</span> <span class="keyword">template</span><<span class="keywordtype">size_t</span> SZ></div>
|
|
<div class="foldopen" id="foldopen02661" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02661" name="l02661"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01char_0fSZ_0e_4.html"> 2661</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><unsigned char[SZ]> {</div>
|
|
<div class="foldopen" id="foldopen02662" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02662" name="l02662"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01char_0fSZ_0e_4.html#a590d64c72b0cc75c113f1eea95d52b66"> 2662</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01unsigned_01char_0fSZ_0e_4.html#a590d64c72b0cc75c113f1eea95d52b66">convert</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* str) {</div>
|
|
<div class="line"><a id="l02663" name="l02663"></a><span class="lineno"> 2663</span> <span class="keyword">auto</span> reinterpreted = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span> const*<span class="keyword">></span>(str);</div>
|
|
<div class="line"><a id="l02664" name="l02664"></a><span class="lineno"> 2664</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">Detail::convertIntoString</a>(</div>
|
|
<div class="line"><a id="l02665" name="l02665"></a><span class="lineno"> 2665</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>(reinterpreted, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a">Detail::catch_strnlen</a>(reinterpreted, SZ)));</div>
|
|
<div class="line"><a id="l02666" name="l02666"></a><span class="lineno"> 2666</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02667" name="l02667"></a><span class="lineno"> 2667</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02668" name="l02668"></a><span class="lineno"> 2668</span> </div>
|
|
<div class="line"><a id="l02669" name="l02669"></a><span class="lineno"> 2669</span><span class="preprocessor">#if defined(CATCH_CONFIG_CPP17_BYTE)</span></div>
|
|
<div class="line"><a id="l02670" name="l02670"></a><span class="lineno"> 2670</span> <span class="keyword">template</span><></div>
|
|
<div class="line"><a id="l02671" name="l02671"></a><span class="lineno"> 2671</span> <span class="keyword">struct </span>StringMaker<std::byte> {</div>
|
|
<div class="line"><a id="l02672" name="l02672"></a><span class="lineno"> 2672</span> <span class="keyword">static</span> std::string convert(std::byte value);</div>
|
|
<div class="line"><a id="l02673" name="l02673"></a><span class="lineno"> 2673</span> };</div>
|
|
<div class="line"><a id="l02674" name="l02674"></a><span class="lineno"> 2674</span><span class="preprocessor">#endif </span><span class="comment">// defined(CATCH_CONFIG_CPP17_BYTE)</span></div>
|
|
<div class="line"><a id="l02675" name="l02675"></a><span class="lineno"> 2675</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02676" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02676" name="l02676"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01int_01_4.html"> 2676</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><int> {</div>
|
|
<div class="line"><a id="l02677" name="l02677"></a><span class="lineno"> 2677</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01int_01_4.html#a7c8dcbc9707d05e142e238fa63f47e6c">convert</a>(<span class="keywordtype">int</span> value);</div>
|
|
<div class="line"><a id="l02678" name="l02678"></a><span class="lineno"> 2678</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02679" name="l02679"></a><span class="lineno"> 2679</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02680" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02680" name="l02680"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01long_01_4.html"> 2680</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><long> {</div>
|
|
<div class="line"><a id="l02681" name="l02681"></a><span class="lineno"> 2681</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01long_01_4.html#afb6df3c162b80d773664ca72b8d0fdd5">convert</a>(<span class="keywordtype">long</span> value);</div>
|
|
<div class="line"><a id="l02682" name="l02682"></a><span class="lineno"> 2682</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02683" name="l02683"></a><span class="lineno"> 2683</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02684" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02684" name="l02684"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01long_01long_01_4.html"> 2684</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><long long> {</div>
|
|
<div class="line"><a id="l02685" name="l02685"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01long_01long_01_4.html#a7a58929dca2a14c576d7d6d08bc615d2"> 2685</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01long_01long_01_4.html#a7a58929dca2a14c576d7d6d08bc615d2">convert</a>(<span class="keywordtype">long</span> <span class="keywordtype">long</span> value);</div>
|
|
<div class="line"><a id="l02686" name="l02686"></a><span class="lineno"> 2686</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02687" name="l02687"></a><span class="lineno"> 2687</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02688" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02688" name="l02688"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01int_01_4.html"> 2688</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><unsigned int> {</div>
|
|
<div class="line"><a id="l02689" name="l02689"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01int_01_4.html#aa0ec816ef8a65664b0524d55d08e2fd9"> 2689</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01unsigned_01int_01_4.html#aa0ec816ef8a65664b0524d55d08e2fd9">convert</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value);</div>
|
|
<div class="line"><a id="l02690" name="l02690"></a><span class="lineno"> 2690</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02691" name="l02691"></a><span class="lineno"> 2691</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02692" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02692" name="l02692"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01long_01_4.html"> 2692</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><unsigned long> {</div>
|
|
<div class="line"><a id="l02693" name="l02693"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01long_01_4.html#ae105dc97e4462a86a61b59667f8423c9"> 2693</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01unsigned_01long_01_4.html#ae105dc97e4462a86a61b59667f8423c9">convert</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> value);</div>
|
|
<div class="line"><a id="l02694" name="l02694"></a><span class="lineno"> 2694</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02695" name="l02695"></a><span class="lineno"> 2695</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02696" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02696" name="l02696"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01long_01long_01_4.html"> 2696</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><unsigned long long> {</div>
|
|
<div class="line"><a id="l02697" name="l02697"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01long_01long_01_4.html#a6a8708af4fc8df3f52d7eab779b6bc6f"> 2697</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01unsigned_01long_01long_01_4.html#a6a8708af4fc8df3f52d7eab779b6bc6f">convert</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> value);</div>
|
|
<div class="line"><a id="l02698" name="l02698"></a><span class="lineno"> 2698</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02699" name="l02699"></a><span class="lineno"> 2699</span> </div>
|
|
<div class="line"><a id="l02700" name="l02700"></a><span class="lineno"> 2700</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02701" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02701" name="l02701"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01bool_01_4.html"> 2701</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><bool> {</div>
|
|
<div class="foldopen" id="foldopen02702" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02702" name="l02702"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01bool_01_4.html#a37e9899c82c4b4515f876f16f8957a77"> 2702</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01bool_01_4.html#a37e9899c82c4b4515f876f16f8957a77">convert</a>(<span class="keywordtype">bool</span> b) {</div>
|
|
<div class="line"><a id="l02703" name="l02703"></a><span class="lineno"> 2703</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l02704" name="l02704"></a><span class="lineno"> 2704</span> <span class="keywordflow">return</span> b ? <span class="stringliteral">"true"</span>s : <span class="stringliteral">"false"</span>s;</div>
|
|
<div class="line"><a id="l02705" name="l02705"></a><span class="lineno"> 2705</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02706" name="l02706"></a><span class="lineno"> 2706</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02707" name="l02707"></a><span class="lineno"> 2707</span> </div>
|
|
<div class="line"><a id="l02708" name="l02708"></a><span class="lineno"> 2708</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02709" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02709" name="l02709"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01char_01_4.html"> 2709</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><char> {</div>
|
|
<div class="line"><a id="l02710" name="l02710"></a><span class="lineno"> 2710</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01char_01_4.html#abe708b15d367fcc1788a38ebf9889e39">convert</a>(<span class="keywordtype">char</span> c);</div>
|
|
<div class="line"><a id="l02711" name="l02711"></a><span class="lineno"> 2711</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02712" name="l02712"></a><span class="lineno"> 2712</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02713" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02713" name="l02713"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01signed_01char_01_4.html"> 2713</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><signed char> {</div>
|
|
<div class="line"><a id="l02714" name="l02714"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01signed_01char_01_4.html#a72fb37c7ccce3e85d7f6804b5d710697"> 2714</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01signed_01char_01_4.html#a72fb37c7ccce3e85d7f6804b5d710697">convert</a>(<span class="keywordtype">signed</span> <span class="keywordtype">char</span> value);</div>
|
|
<div class="line"><a id="l02715" name="l02715"></a><span class="lineno"> 2715</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02716" name="l02716"></a><span class="lineno"> 2716</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02717" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02717" name="l02717"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01char_01_4.html"> 2717</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><unsigned char> {</div>
|
|
<div class="line"><a id="l02718" name="l02718"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01unsigned_01char_01_4.html#ad71daf5cd172df8d8c4b684d45fd73aa"> 2718</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01unsigned_01char_01_4.html#ad71daf5cd172df8d8c4b684d45fd73aa">convert</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> value);</div>
|
|
<div class="line"><a id="l02719" name="l02719"></a><span class="lineno"> 2719</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02720" name="l02720"></a><span class="lineno"> 2720</span> </div>
|
|
<div class="line"><a id="l02721" name="l02721"></a><span class="lineno"> 2721</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02722" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02722" name="l02722"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1nullptr__t_01_4.html"> 2722</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::nullptr_t> {</div>
|
|
<div class="foldopen" id="foldopen02723" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02723" name="l02723"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1nullptr__t_01_4.html#a131fbb1f5cd68c93aaf30d34e3519e9c"> 2723</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1nullptr__t_01_4.html#a131fbb1f5cd68c93aaf30d34e3519e9c">convert</a>(std::nullptr_t) {</div>
|
|
<div class="line"><a id="l02724" name="l02724"></a><span class="lineno"> 2724</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l02725" name="l02725"></a><span class="lineno"> 2725</span> <span class="keywordflow">return</span> <span class="stringliteral">"nullptr"</span>s;</div>
|
|
<div class="line"><a id="l02726" name="l02726"></a><span class="lineno"> 2726</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02727" name="l02727"></a><span class="lineno"> 2727</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02728" name="l02728"></a><span class="lineno"> 2728</span> </div>
|
|
<div class="line"><a id="l02729" name="l02729"></a><span class="lineno"> 2729</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02730" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02730" name="l02730"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01float_01_4.html"> 2730</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><float> {</div>
|
|
<div class="line"><a id="l02731" name="l02731"></a><span class="lineno"> 2731</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01float_01_4.html#a66facca36c17466a954f12c93e9481a7">convert</a>(<span class="keywordtype">float</span> value);</div>
|
|
<div class="line"><a id="l02732" name="l02732"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01float_01_4.html#abf98e4f3388c13f4348ea9f1e598bdd5"> 2732</a></span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a7a076eb1c404d5e057d159c9b271cc6f">CATCH_EXPORT</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1StringMaker_3_01float_01_4.html#abf98e4f3388c13f4348ea9f1e598bdd5">precision</a>;</div>
|
|
<div class="line"><a id="l02733" name="l02733"></a><span class="lineno"> 2733</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02734" name="l02734"></a><span class="lineno"> 2734</span> </div>
|
|
<div class="line"><a id="l02735" name="l02735"></a><span class="lineno"> 2735</span> <span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen02736" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02736" name="l02736"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01double_01_4.html"> 2736</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><double> {</div>
|
|
<div class="line"><a id="l02737" name="l02737"></a><span class="lineno"> 2737</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01double_01_4.html#a432c08cda58fed297a2324c8dd1f3301">convert</a>(<span class="keywordtype">double</span> value);</div>
|
|
<div class="line"><a id="l02738" name="l02738"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01double_01_4.html#a5d6c541226aaeb33f9ec1088388476c3"> 2738</a></span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a7a076eb1c404d5e057d159c9b271cc6f">CATCH_EXPORT</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1StringMaker_3_01double_01_4.html#a5d6c541226aaeb33f9ec1088388476c3">precision</a>;</div>
|
|
<div class="line"><a id="l02739" name="l02739"></a><span class="lineno"> 2739</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02740" name="l02740"></a><span class="lineno"> 2740</span> </div>
|
|
<div class="line"><a id="l02741" name="l02741"></a><span class="lineno"> 2741</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen02742" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02742" name="l02742"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01T_01_5_01_4.html"> 2742</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><T*> {</div>
|
|
<div class="line"><a id="l02743" name="l02743"></a><span class="lineno"> 2743</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="foldopen" id="foldopen02744" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02744" name="l02744"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01T_01_5_01_4.html#a2adbc75c99d71b8323f4052bcb0815c9"> 2744</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01T_01_5_01_4.html#a2adbc75c99d71b8323f4052bcb0815c9">convert</a>(U* p) {</div>
|
|
<div class="line"><a id="l02745" name="l02745"></a><span class="lineno"> 2745</span> <span class="keywordflow">if</span> (p) {</div>
|
|
<div class="line"><a id="l02746" name="l02746"></a><span class="lineno"> 2746</span> return ::Catch::Detail::rawMemoryToString(p);</div>
|
|
<div class="line"><a id="l02747" name="l02747"></a><span class="lineno"> 2747</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l02748" name="l02748"></a><span class="lineno"> 2748</span> <span class="keywordflow">return</span> <span class="stringliteral">"nullptr"</span>;</div>
|
|
<div class="line"><a id="l02749" name="l02749"></a><span class="lineno"> 2749</span> }</div>
|
|
<div class="line"><a id="l02750" name="l02750"></a><span class="lineno"> 2750</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02751" name="l02751"></a><span class="lineno"> 2751</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02752" name="l02752"></a><span class="lineno"> 2752</span> </div>
|
|
<div class="line"><a id="l02753" name="l02753"></a><span class="lineno"> 2753</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen02754" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02754" name="l02754"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01R_01C_1_1_5_01_4.html"> 2754</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><R C::*> {</div>
|
|
<div class="foldopen" id="foldopen02755" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02755" name="l02755"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01R_01C_1_1_5_01_4.html#af69c15e0b406e945777137fe4a333731"> 2755</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01R_01C_1_1_5_01_4.html#af69c15e0b406e945777137fe4a333731">convert</a>(R C::* p) {</div>
|
|
<div class="line"><a id="l02756" name="l02756"></a><span class="lineno"> 2756</span> <span class="keywordflow">if</span> (p) {</div>
|
|
<div class="line"><a id="l02757" name="l02757"></a><span class="lineno"> 2757</span> return ::Catch::Detail::rawMemoryToString(p);</div>
|
|
<div class="line"><a id="l02758" name="l02758"></a><span class="lineno"> 2758</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l02759" name="l02759"></a><span class="lineno"> 2759</span> <span class="keywordflow">return</span> <span class="stringliteral">"nullptr"</span>;</div>
|
|
<div class="line"><a id="l02760" name="l02760"></a><span class="lineno"> 2760</span> }</div>
|
|
<div class="line"><a id="l02761" name="l02761"></a><span class="lineno"> 2761</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02762" name="l02762"></a><span class="lineno"> 2762</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02763" name="l02763"></a><span class="lineno"> 2763</span> </div>
|
|
<div class="line"><a id="l02764" name="l02764"></a><span class="lineno"> 2764</span><span class="preprocessor">#if defined(_MANAGED)</span></div>
|
|
<div class="line"><a id="l02765" name="l02765"></a><span class="lineno"> 2765</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02766" name="l02766"></a><span class="lineno"> 2766</span> <span class="keyword">struct </span>StringMaker<T^> {</div>
|
|
<div class="line"><a id="l02767" name="l02767"></a><span class="lineno"> 2767</span> <span class="keyword">static</span> std::string convert( T^ ref ) {</div>
|
|
<div class="line"><a id="l02768" name="l02768"></a><span class="lineno"> 2768</span> return ::Catch::Detail::clrReferenceToString(ref);</div>
|
|
<div class="line"><a id="l02769" name="l02769"></a><span class="lineno"> 2769</span> }</div>
|
|
<div class="line"><a id="l02770" name="l02770"></a><span class="lineno"> 2770</span> };</div>
|
|
<div class="line"><a id="l02771" name="l02771"></a><span class="lineno"> 2771</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02772" name="l02772"></a><span class="lineno"> 2772</span> </div>
|
|
<div class="line"><a id="l02773" name="l02773"></a><span class="lineno"> 2773</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02774" name="l02774"></a><span class="lineno"> 2774</span> <span class="keyword">template</span><<span class="keyword">typename</span> InputIterator, <span class="keyword">typename</span> Sentinel = InputIterator></div>
|
|
<div class="foldopen" id="foldopen02775" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02775" name="l02775"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#ac954cf158347a76a5b0c3f4fa9a9fa52"> 2775</a></span> std::string <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ac954cf158347a76a5b0c3f4fa9a9fa52">rangeToString</a>(InputIterator first, Sentinel last) {</div>
|
|
<div class="line"><a id="l02776" name="l02776"></a><span class="lineno"> 2776</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l02777" name="l02777"></a><span class="lineno"> 2777</span> rss << <span class="stringliteral">"{ "</span>;</div>
|
|
<div class="line"><a id="l02778" name="l02778"></a><span class="lineno"> 2778</span> <span class="keywordflow">if</span> (first != last) {</div>
|
|
<div class="line"><a id="l02779" name="l02779"></a><span class="lineno"> 2779</span> rss << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(*first);</div>
|
|
<div class="line"><a id="l02780" name="l02780"></a><span class="lineno"> 2780</span> <span class="keywordflow">for</span> (++first; first != last; ++first)</div>
|
|
<div class="line"><a id="l02781" name="l02781"></a><span class="lineno"> 2781</span> rss << <span class="stringliteral">", "</span> << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(*first);</div>
|
|
<div class="line"><a id="l02782" name="l02782"></a><span class="lineno"> 2782</span> }</div>
|
|
<div class="line"><a id="l02783" name="l02783"></a><span class="lineno"> 2783</span> rss << <span class="stringliteral">" }"</span>;</div>
|
|
<div class="line"><a id="l02784" name="l02784"></a><span class="lineno"> 2784</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l02785" name="l02785"></a><span class="lineno"> 2785</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02786" name="l02786"></a><span class="lineno"> 2786</span> }</div>
|
|
<div class="line"><a id="l02787" name="l02787"></a><span class="lineno"> 2787</span> </div>
|
|
<div class="line"><a id="l02788" name="l02788"></a><span class="lineno"> 2788</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02789" name="l02789"></a><span class="lineno"> 2789</span></div>
|
|
<div class="line"><a id="l02791" name="l02791"></a><span class="lineno"> 2791</span><span class="comment">// Separate std-lib types stringification, so it can be selectively enabled</span></div>
|
|
<div class="line"><a id="l02792" name="l02792"></a><span class="lineno"> 2792</span><span class="comment">// This means that we do not bring in their headers</span></div>
|
|
<div class="line"><a id="l02793" name="l02793"></a><span class="lineno"> 2793</span> </div>
|
|
<div class="line"><a id="l02794" name="l02794"></a><span class="lineno"> 2794</span><span class="preprocessor">#if defined(CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS)</span></div>
|
|
<div class="line"><a id="l02795" name="l02795"></a><span class="lineno"> 2795</span><span class="preprocessor"># define CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02796" name="l02796"></a><span class="lineno"> 2796</span><span class="preprocessor"># define CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02797" name="l02797"></a><span class="lineno"> 2797</span><span class="preprocessor"># define CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02798" name="l02798"></a><span class="lineno"> 2798</span><span class="preprocessor"># define CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02799" name="l02799"></a><span class="lineno"> 2799</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02800" name="l02800"></a><span class="lineno"> 2800</span> </div>
|
|
<div class="line"><a id="l02801" name="l02801"></a><span class="lineno"> 2801</span><span class="comment">// Separate std::pair specialization</span></div>
|
|
<div class="line"><a id="l02802" name="l02802"></a><span class="lineno"> 2802</span><span class="preprocessor">#if defined(CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER)</span></div>
|
|
<div class="line"><a id="l02803" name="l02803"></a><span class="lineno"> 2803</span><span class="preprocessor">#include <utility></span></div>
|
|
<div class="line"><a id="l02804" name="l02804"></a><span class="lineno"> 2804</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02805" name="l02805"></a><span class="lineno"> 2805</span> <span class="keyword">template</span><<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2></div>
|
|
<div class="line"><a id="l02806" name="l02806"></a><span class="lineno"> 2806</span> <span class="keyword">struct </span>StringMaker<std::pair<T1, T2> > {</div>
|
|
<div class="line"><a id="l02807" name="l02807"></a><span class="lineno"> 2807</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::pair<T1, T2>& pair) {</div>
|
|
<div class="line"><a id="l02808" name="l02808"></a><span class="lineno"> 2808</span> ReusableStringStream rss;</div>
|
|
<div class="line"><a id="l02809" name="l02809"></a><span class="lineno"> 2809</span> rss << <span class="stringliteral">"{ "</span></div>
|
|
<div class="line"><a id="l02810" name="l02810"></a><span class="lineno"> 2810</span> << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(pair.first)</div>
|
|
<div class="line"><a id="l02811" name="l02811"></a><span class="lineno"> 2811</span> << <span class="stringliteral">", "</span></div>
|
|
<div class="line"><a id="l02812" name="l02812"></a><span class="lineno"> 2812</span> << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(pair.second)</div>
|
|
<div class="line"><a id="l02813" name="l02813"></a><span class="lineno"> 2813</span> << <span class="stringliteral">" }"</span>;</div>
|
|
<div class="line"><a id="l02814" name="l02814"></a><span class="lineno"> 2814</span> <span class="keywordflow">return</span> rss.str();</div>
|
|
<div class="line"><a id="l02815" name="l02815"></a><span class="lineno"> 2815</span> }</div>
|
|
<div class="line"><a id="l02816" name="l02816"></a><span class="lineno"> 2816</span> };</div>
|
|
<div class="line"><a id="l02817" name="l02817"></a><span class="lineno"> 2817</span>}</div>
|
|
<div class="line"><a id="l02818" name="l02818"></a><span class="lineno"> 2818</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02819" name="l02819"></a><span class="lineno"> 2819</span> </div>
|
|
<div class="line"><a id="l02820" name="l02820"></a><span class="lineno"> 2820</span><span class="preprocessor">#if defined(CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER) && defined(CATCH_CONFIG_CPP17_OPTIONAL)</span></div>
|
|
<div class="line"><a id="l02821" name="l02821"></a><span class="lineno"> 2821</span><span class="preprocessor">#include <optional></span></div>
|
|
<div class="line"><a id="l02822" name="l02822"></a><span class="lineno"> 2822</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02823" name="l02823"></a><span class="lineno"> 2823</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02824" name="l02824"></a><span class="lineno"> 2824</span> <span class="keyword">struct </span>StringMaker<std::optional<T> > {</div>
|
|
<div class="line"><a id="l02825" name="l02825"></a><span class="lineno"> 2825</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::optional<T>& optional) {</div>
|
|
<div class="line"><a id="l02826" name="l02826"></a><span class="lineno"> 2826</span> <span class="keywordflow">if</span> (optional.has_value()) {</div>
|
|
<div class="line"><a id="l02827" name="l02827"></a><span class="lineno"> 2827</span> return ::Catch::Detail::stringify(*optional);</div>
|
|
<div class="line"><a id="l02828" name="l02828"></a><span class="lineno"> 2828</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l02829" name="l02829"></a><span class="lineno"> 2829</span> <span class="keywordflow">return</span> <span class="stringliteral">"{ }"</span>;</div>
|
|
<div class="line"><a id="l02830" name="l02830"></a><span class="lineno"> 2830</span> }</div>
|
|
<div class="line"><a id="l02831" name="l02831"></a><span class="lineno"> 2831</span> }</div>
|
|
<div class="line"><a id="l02832" name="l02832"></a><span class="lineno"> 2832</span> };</div>
|
|
<div class="line"><a id="l02833" name="l02833"></a><span class="lineno"> 2833</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l02834" name="l02834"></a><span class="lineno"> 2834</span> <span class="keyword">struct </span>StringMaker<std::nullopt_t> {</div>
|
|
<div class="line"><a id="l02835" name="l02835"></a><span class="lineno"> 2835</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::nullopt_t&) {</div>
|
|
<div class="line"><a id="l02836" name="l02836"></a><span class="lineno"> 2836</span> <span class="keywordflow">return</span> <span class="stringliteral">"{ }"</span>;</div>
|
|
<div class="line"><a id="l02837" name="l02837"></a><span class="lineno"> 2837</span> }</div>
|
|
<div class="line"><a id="l02838" name="l02838"></a><span class="lineno"> 2838</span> };</div>
|
|
<div class="line"><a id="l02839" name="l02839"></a><span class="lineno"> 2839</span>}</div>
|
|
<div class="line"><a id="l02840" name="l02840"></a><span class="lineno"> 2840</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02841" name="l02841"></a><span class="lineno"> 2841</span> </div>
|
|
<div class="line"><a id="l02842" name="l02842"></a><span class="lineno"> 2842</span><span class="comment">// Separate std::tuple specialization</span></div>
|
|
<div class="line"><a id="l02843" name="l02843"></a><span class="lineno"> 2843</span><span class="preprocessor">#if defined(CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER)</span></div>
|
|
<div class="line"><a id="l02844" name="l02844"></a><span class="lineno"> 2844</span><span class="preprocessor">#include <tuple></span></div>
|
|
<div class="line"><a id="l02845" name="l02845"></a><span class="lineno"> 2845</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02846" name="l02846"></a><span class="lineno"> 2846</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02847" name="l02847"></a><span class="lineno"> 2847</span> <span class="keyword">template</span><</div>
|
|
<div class="line"><a id="l02848" name="l02848"></a><span class="lineno"> 2848</span> <span class="keyword">typename</span> Tuple,</div>
|
|
<div class="line"><a id="l02849" name="l02849"></a><span class="lineno"> 2849</span> std::size_t N = 0,</div>
|
|
<div class="line"><a id="l02850" name="l02850"></a><span class="lineno"> 2850</span> <span class="keywordtype">bool</span> = (N < std::tuple_size<Tuple>::value)</div>
|
|
<div class="line"><a id="l02851" name="l02851"></a><span class="lineno"> 2851</span> ></div>
|
|
<div class="line"><a id="l02852" name="l02852"></a><span class="lineno"> 2852</span> <span class="keyword">struct</span> TupleElementPrinter {</div>
|
|
<div class="line"><a id="l02853" name="l02853"></a><span class="lineno"> 2853</span> <span class="keyword">static</span> <span class="keywordtype">void</span> print(<span class="keyword">const</span> Tuple& tuple, std::ostream& os) {</div>
|
|
<div class="line"><a id="l02854" name="l02854"></a><span class="lineno"> 2854</span> os << (N ? <span class="stringliteral">", "</span> : <span class="stringliteral">" "</span>)</div>
|
|
<div class="line"><a id="l02855" name="l02855"></a><span class="lineno"> 2855</span> << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(std::get<N>(tuple));</div>
|
|
<div class="line"><a id="l02856" name="l02856"></a><span class="lineno"> 2856</span> TupleElementPrinter<Tuple, N + 1>::print(tuple, os);</div>
|
|
<div class="line"><a id="l02857" name="l02857"></a><span class="lineno"> 2857</span> }</div>
|
|
<div class="line"><a id="l02858" name="l02858"></a><span class="lineno"> 2858</span> };</div>
|
|
<div class="line"><a id="l02859" name="l02859"></a><span class="lineno"> 2859</span> </div>
|
|
<div class="line"><a id="l02860" name="l02860"></a><span class="lineno"> 2860</span> <span class="keyword">template</span><</div>
|
|
<div class="line"><a id="l02861" name="l02861"></a><span class="lineno"> 2861</span> <span class="keyword">typename</span> Tuple,</div>
|
|
<div class="line"><a id="l02862" name="l02862"></a><span class="lineno"> 2862</span> std::size_t N</div>
|
|
<div class="line"><a id="l02863" name="l02863"></a><span class="lineno"> 2863</span> ></div>
|
|
<div class="line"><a id="l02864" name="l02864"></a><span class="lineno"> 2864</span> <span class="keyword">struct </span>TupleElementPrinter<Tuple, N, false> {</div>
|
|
<div class="line"><a id="l02865" name="l02865"></a><span class="lineno"> 2865</span> <span class="keyword">static</span> <span class="keywordtype">void</span> print(<span class="keyword">const</span> Tuple&, std::ostream&) {}</div>
|
|
<div class="line"><a id="l02866" name="l02866"></a><span class="lineno"> 2866</span> };</div>
|
|
<div class="line"><a id="l02867" name="l02867"></a><span class="lineno"> 2867</span> </div>
|
|
<div class="line"><a id="l02868" name="l02868"></a><span class="lineno"> 2868</span> }</div>
|
|
<div class="line"><a id="l02869" name="l02869"></a><span class="lineno"> 2869</span> </div>
|
|
<div class="line"><a id="l02870" name="l02870"></a><span class="lineno"> 2870</span> </div>
|
|
<div class="line"><a id="l02871" name="l02871"></a><span class="lineno"> 2871</span> <span class="keyword">template</span><<span class="keyword">typename</span> ...Types></div>
|
|
<div class="line"><a id="l02872" name="l02872"></a><span class="lineno"> 2872</span> <span class="keyword">struct </span>StringMaker<std::tuple<Types...>> {</div>
|
|
<div class="line"><a id="l02873" name="l02873"></a><span class="lineno"> 2873</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::tuple<Types...>& tuple) {</div>
|
|
<div class="line"><a id="l02874" name="l02874"></a><span class="lineno"> 2874</span> ReusableStringStream rss;</div>
|
|
<div class="line"><a id="l02875" name="l02875"></a><span class="lineno"> 2875</span> rss << <span class="charliteral">'{'</span>;</div>
|
|
<div class="line"><a id="l02876" name="l02876"></a><span class="lineno"> 2876</span> Detail::TupleElementPrinter<std::tuple<Types...>>::print(tuple, rss.get());</div>
|
|
<div class="line"><a id="l02877" name="l02877"></a><span class="lineno"> 2877</span> rss << <span class="stringliteral">" }"</span>;</div>
|
|
<div class="line"><a id="l02878" name="l02878"></a><span class="lineno"> 2878</span> <span class="keywordflow">return</span> rss.str();</div>
|
|
<div class="line"><a id="l02879" name="l02879"></a><span class="lineno"> 2879</span> }</div>
|
|
<div class="line"><a id="l02880" name="l02880"></a><span class="lineno"> 2880</span> };</div>
|
|
<div class="line"><a id="l02881" name="l02881"></a><span class="lineno"> 2881</span>}</div>
|
|
<div class="line"><a id="l02882" name="l02882"></a><span class="lineno"> 2882</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02883" name="l02883"></a><span class="lineno"> 2883</span> </div>
|
|
<div class="line"><a id="l02884" name="l02884"></a><span class="lineno"> 2884</span><span class="preprocessor">#if defined(CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER) && defined(CATCH_CONFIG_CPP17_VARIANT)</span></div>
|
|
<div class="line"><a id="l02885" name="l02885"></a><span class="lineno"> 2885</span><span class="preprocessor">#include <variant></span></div>
|
|
<div class="line"><a id="l02886" name="l02886"></a><span class="lineno"> 2886</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02887" name="l02887"></a><span class="lineno"> 2887</span> <span class="keyword">template</span><></div>
|
|
<div class="line"><a id="l02888" name="l02888"></a><span class="lineno"> 2888</span> <span class="keyword">struct </span>StringMaker<std::monostate> {</div>
|
|
<div class="line"><a id="l02889" name="l02889"></a><span class="lineno"> 2889</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::monostate&) {</div>
|
|
<div class="line"><a id="l02890" name="l02890"></a><span class="lineno"> 2890</span> <span class="keywordflow">return</span> <span class="stringliteral">"{ }"</span>;</div>
|
|
<div class="line"><a id="l02891" name="l02891"></a><span class="lineno"> 2891</span> }</div>
|
|
<div class="line"><a id="l02892" name="l02892"></a><span class="lineno"> 2892</span> };</div>
|
|
<div class="line"><a id="l02893" name="l02893"></a><span class="lineno"> 2893</span> </div>
|
|
<div class="line"><a id="l02894" name="l02894"></a><span class="lineno"> 2894</span> <span class="keyword">template</span><<span class="keyword">typename</span>... Elements></div>
|
|
<div class="line"><a id="l02895" name="l02895"></a><span class="lineno"> 2895</span> <span class="keyword">struct </span>StringMaker<std::variant<Elements...>> {</div>
|
|
<div class="line"><a id="l02896" name="l02896"></a><span class="lineno"> 2896</span> <span class="keyword">static</span> std::string convert(<span class="keyword">const</span> std::variant<Elements...>& variant) {</div>
|
|
<div class="line"><a id="l02897" name="l02897"></a><span class="lineno"> 2897</span> <span class="keywordflow">if</span> (variant.valueless_by_exception()) {</div>
|
|
<div class="line"><a id="l02898" name="l02898"></a><span class="lineno"> 2898</span> <span class="keywordflow">return</span> <span class="stringliteral">"{valueless variant}"</span>;</div>
|
|
<div class="line"><a id="l02899" name="l02899"></a><span class="lineno"> 2899</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l02900" name="l02900"></a><span class="lineno"> 2900</span> <span class="keywordflow">return</span> std::visit(</div>
|
|
<div class="line"><a id="l02901" name="l02901"></a><span class="lineno"> 2901</span> [](<span class="keyword">const</span> <span class="keyword">auto</span>& value) {</div>
|
|
<div class="line"><a id="l02902" name="l02902"></a><span class="lineno"> 2902</span> return ::Catch::Detail::stringify(value);</div>
|
|
<div class="line"><a id="l02903" name="l02903"></a><span class="lineno"> 2903</span> },</div>
|
|
<div class="line"><a id="l02904" name="l02904"></a><span class="lineno"> 2904</span> variant</div>
|
|
<div class="line"><a id="l02905" name="l02905"></a><span class="lineno"> 2905</span> );</div>
|
|
<div class="line"><a id="l02906" name="l02906"></a><span class="lineno"> 2906</span> }</div>
|
|
<div class="line"><a id="l02907" name="l02907"></a><span class="lineno"> 2907</span> }</div>
|
|
<div class="line"><a id="l02908" name="l02908"></a><span class="lineno"> 2908</span> };</div>
|
|
<div class="line"><a id="l02909" name="l02909"></a><span class="lineno"> 2909</span>}</div>
|
|
<div class="line"><a id="l02910" name="l02910"></a><span class="lineno"> 2910</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER</span></div>
|
|
<div class="line"><a id="l02911" name="l02911"></a><span class="lineno"> 2911</span> </div>
|
|
<div class="line"><a id="l02912" name="l02912"></a><span class="lineno"> 2912</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02913" name="l02913"></a><span class="lineno"> 2913</span> <span class="comment">// Import begin/ end from std here</span></div>
|
|
<div class="line"><a id="l02914" name="l02914"></a><span class="lineno"> 2914</span> <span class="keyword">using </span>std::begin;</div>
|
|
<div class="line"><a id="l02915" name="l02915"></a><span class="lineno"> 2915</span> <span class="keyword">using </span>std::end;</div>
|
|
<div class="line"><a id="l02916" name="l02916"></a><span class="lineno"> 2916</span> </div>
|
|
<div class="line"><a id="l02917" name="l02917"></a><span class="lineno"> 2917</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l02918" name="l02918"></a><span class="lineno"> 2918</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>></div>
|
|
<div class="line"><a id="l02919" name="l02919"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1is__range__impl.html"> 2919</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1is__range__impl.html">is_range_impl</a> : std::false_type {};</div>
|
|
<div class="line"><a id="l02920" name="l02920"></a><span class="lineno"> 2920</span> </div>
|
|
<div class="line"><a id="l02921" name="l02921"></a><span class="lineno"> 2921</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02922" name="l02922"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1is__range__impl_3_01T_00_01void__t_3_01decltype_07begin_07std_1_1declval_3_01T_01_4_07_08_08_08_4_01_4.html"> 2922</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1is__range__impl.html">is_range_impl</a><T, <a class="code hl_typedef" href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d">void_t</a><decltype(begin(std::declval<T>()))>> : std::true_type {};</div>
|
|
<div class="line"><a id="l02923" name="l02923"></a><span class="lineno"> 2923</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l02924" name="l02924"></a><span class="lineno"> 2924</span> </div>
|
|
<div class="line"><a id="l02925" name="l02925"></a><span class="lineno"> 2925</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02926" name="l02926"></a><span class="lineno"><a class="line" href="structCatch_1_1is__range.html"> 2926</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1is__range.html">is_range</a> : <a class="code hl_struct" href="structCatch_1_1Detail_1_1is__range__impl.html">Detail::is_range_impl</a><T> {};</div>
|
|
<div class="line"><a id="l02927" name="l02927"></a><span class="lineno"> 2927</span> </div>
|
|
<div class="line"><a id="l02928" name="l02928"></a><span class="lineno"> 2928</span><span class="preprocessor">#if defined(_MANAGED) </span><span class="comment">// Managed types are never ranges</span></div>
|
|
<div class="line"><a id="l02929" name="l02929"></a><span class="lineno"> 2929</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l02930" name="l02930"></a><span class="lineno"> 2930</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1is__range.html">is_range</a><T^> {</div>
|
|
<div class="line"><a id="l02931" name="l02931"></a><span class="lineno"> 2931</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l02932" name="l02932"></a><span class="lineno"> 2932</span> };</div>
|
|
<div class="line"><a id="l02933" name="l02933"></a><span class="lineno"> 2933</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l02934" name="l02934"></a><span class="lineno"> 2934</span> </div>
|
|
<div class="line"><a id="l02935" name="l02935"></a><span class="lineno"> 2935</span> <span class="keyword">template</span><<span class="keyword">typename</span> Range></div>
|
|
<div class="foldopen" id="foldopen02936" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02936" name="l02936"></a><span class="lineno"><a class="line" href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2"> 2936</a></span> std::string <a class="code hl_function" href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2">rangeToString</a>( Range <span class="keyword">const</span>& range ) {</div>
|
|
<div class="line"><a id="l02937" name="l02937"></a><span class="lineno"> 2937</span> return ::Catch::Detail::rangeToString( begin( range ), end( range ) );</div>
|
|
<div class="line"><a id="l02938" name="l02938"></a><span class="lineno"> 2938</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02939" name="l02939"></a><span class="lineno"> 2939</span> </div>
|
|
<div class="line"><a id="l02940" name="l02940"></a><span class="lineno"> 2940</span> <span class="comment">// Handle vector<bool> specially</span></div>
|
|
<div class="line"><a id="l02941" name="l02941"></a><span class="lineno"> 2941</span> <span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
|
|
<div class="foldopen" id="foldopen02942" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02942" name="l02942"></a><span class="lineno"><a class="line" href="namespaceCatch.html#ae162dc66b7767a52e7e4283915fd3d9f"> 2942</a></span> std::string <a class="code hl_function" href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2">rangeToString</a>( std::vector<bool, Allocator> <span class="keyword">const</span>& v ) {</div>
|
|
<div class="line"><a id="l02943" name="l02943"></a><span class="lineno"> 2943</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l02944" name="l02944"></a><span class="lineno"> 2944</span> rss << <span class="stringliteral">"{ "</span>;</div>
|
|
<div class="line"><a id="l02945" name="l02945"></a><span class="lineno"> 2945</span> <span class="keywordtype">bool</span> first = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l02946" name="l02946"></a><span class="lineno"> 2946</span> <span class="keywordflow">for</span>( <span class="keywordtype">bool</span> b : v ) {</div>
|
|
<div class="line"><a id="l02947" name="l02947"></a><span class="lineno"> 2947</span> <span class="keywordflow">if</span>( first )</div>
|
|
<div class="line"><a id="l02948" name="l02948"></a><span class="lineno"> 2948</span> first = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l02949" name="l02949"></a><span class="lineno"> 2949</span> <span class="keywordflow">else</span></div>
|
|
<div class="line"><a id="l02950" name="l02950"></a><span class="lineno"> 2950</span> rss << <span class="stringliteral">", "</span>;</div>
|
|
<div class="line"><a id="l02951" name="l02951"></a><span class="lineno"> 2951</span> rss << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( b );</div>
|
|
<div class="line"><a id="l02952" name="l02952"></a><span class="lineno"> 2952</span> }</div>
|
|
<div class="line"><a id="l02953" name="l02953"></a><span class="lineno"> 2953</span> rss << <span class="stringliteral">" }"</span>;</div>
|
|
<div class="line"><a id="l02954" name="l02954"></a><span class="lineno"> 2954</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l02955" name="l02955"></a><span class="lineno"> 2955</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02956" name="l02956"></a><span class="lineno"> 2956</span> </div>
|
|
<div class="line"><a id="l02957" name="l02957"></a><span class="lineno"> 2957</span> <span class="keyword">template</span><<span class="keyword">typename</span> R></div>
|
|
<div class="foldopen" id="foldopen02958" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02958" name="l02958"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01R_00_01std_1_1enable__if__t_3_01is__range_3_01R_01_4_1_1value_01_13b8d115cf150e9309780e90914c18dd.html"> 2958</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><R, std::enable_if_t<is_range<R>::value && !::Catch::Detail::IsStreamInsertable<R>::value>> {</div>
|
|
<div class="foldopen" id="foldopen02959" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02959" name="l02959"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01R_00_01std_1_1enable__if__t_3_01is__range_3_01R_01_4_1_1value_01_13b8d115cf150e9309780e90914c18dd.html#a095eb21ca290da6f2a6ff1abe28cfc71"> 2959</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01R_00_01std_1_1enable__if__t_3_01is__range_3_01R_01_4_1_1value_01_13b8d115cf150e9309780e90914c18dd.html#a095eb21ca290da6f2a6ff1abe28cfc71">convert</a>( R <span class="keyword">const</span>& range ) {</div>
|
|
<div class="line"><a id="l02960" name="l02960"></a><span class="lineno"> 2960</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2">rangeToString</a>( range );</div>
|
|
<div class="line"><a id="l02961" name="l02961"></a><span class="lineno"> 2961</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02962" name="l02962"></a><span class="lineno"> 2962</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02963" name="l02963"></a><span class="lineno"> 2963</span> </div>
|
|
<div class="line"><a id="l02964" name="l02964"></a><span class="lineno"> 2964</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keywordtype">size_t</span> SZ></div>
|
|
<div class="foldopen" id="foldopen02965" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02965" name="l02965"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01T_0fSZ_0e_4.html"> 2965</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><T[SZ]> {</div>
|
|
<div class="foldopen" id="foldopen02966" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02966" name="l02966"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01T_0fSZ_0e_4.html#a3698cea2c24d8649ec9ecb5fa679eeb7"> 2966</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01T_0fSZ_0e_4.html#a3698cea2c24d8649ec9ecb5fa679eeb7">convert</a>(T <span class="keyword">const</span>(&arr)[SZ]) {</div>
|
|
<div class="line"><a id="l02967" name="l02967"></a><span class="lineno"> 2967</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2">rangeToString</a>(arr);</div>
|
|
<div class="line"><a id="l02968" name="l02968"></a><span class="lineno"> 2968</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02969" name="l02969"></a><span class="lineno"> 2969</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02970" name="l02970"></a><span class="lineno"> 2970</span> </div>
|
|
<div class="line"><a id="l02971" name="l02971"></a><span class="lineno"> 2971</span> </div>
|
|
<div class="line"><a id="l02972" name="l02972"></a><span class="lineno"> 2972</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l02973" name="l02973"></a><span class="lineno"> 2973</span> </div>
|
|
<div class="line"><a id="l02974" name="l02974"></a><span class="lineno"> 2974</span><span class="comment">// Separate std::chrono::duration specialization</span></div>
|
|
<div class="line"><a id="l02975" name="l02975"></a><span class="lineno"> 2975</span><span class="preprocessor">#include <ctime></span></div>
|
|
<div class="line"><a id="l02976" name="l02976"></a><span class="lineno"> 2976</span><span class="preprocessor">#include <ratio></span></div>
|
|
<div class="line"><a id="l02977" name="l02977"></a><span class="lineno"> 2977</span><span class="preprocessor">#include <chrono></span></div>
|
|
<div class="line"><a id="l02978" name="l02978"></a><span class="lineno"> 2978</span> </div>
|
|
<div class="line"><a id="l02979" name="l02979"></a><span class="lineno"> 2979</span> </div>
|
|
<div class="line"><a id="l02980" name="l02980"></a><span class="lineno"> 2980</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l02981" name="l02981"></a><span class="lineno"> 2981</span> </div>
|
|
<div class="line"><a id="l02982" name="l02982"></a><span class="lineno"> 2982</span><span class="keyword">template</span> <<span class="keyword">class</span> Ratio></div>
|
|
<div class="foldopen" id="foldopen02983" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02983" name="l02983"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string.html"> 2983</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a> {</div>
|
|
<div class="foldopen" id="foldopen02984" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02984" name="l02984"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string.html#a6e63eb4acf4125c608ad8e11168d2e4f"> 2984</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1ratio__string.html#a6e63eb4acf4125c608ad8e11168d2e4f">symbol</a>() {</div>
|
|
<div class="line"><a id="l02985" name="l02985"></a><span class="lineno"> 2985</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">Catch::ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l02986" name="l02986"></a><span class="lineno"> 2986</span> rss << <span class="charliteral">'['</span> << Ratio::num << <span class="charliteral">'/'</span></div>
|
|
<div class="line"><a id="l02987" name="l02987"></a><span class="lineno"> 2987</span> << Ratio::den << <span class="charliteral">']'</span>;</div>
|
|
<div class="line"><a id="l02988" name="l02988"></a><span class="lineno"> 2988</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l02989" name="l02989"></a><span class="lineno"> 2989</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02990" name="l02990"></a><span class="lineno"> 2990</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02991" name="l02991"></a><span class="lineno"> 2991</span> </div>
|
|
<div class="line"><a id="l02992" name="l02992"></a><span class="lineno"> 2992</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen02993" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02993" name="l02993"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1atto_01_4.html"> 2993</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::atto> {</div>
|
|
<div class="line"><a id="l02994" name="l02994"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1atto_01_4.html#a9e37c4c4a8f7accd6284f1a1fb76f816"> 2994</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1atto_01_4.html#a9e37c4c4a8f7accd6284f1a1fb76f816">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'a'</span>; }</div>
|
|
<div class="line"><a id="l02995" name="l02995"></a><span class="lineno"> 2995</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02996" name="l02996"></a><span class="lineno"> 2996</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen02997" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02997" name="l02997"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1femto_01_4.html"> 2997</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::femto> {</div>
|
|
<div class="line"><a id="l02998" name="l02998"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1femto_01_4.html#ab6b7430e839e13787e2f5ce922d893f8"> 2998</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1femto_01_4.html#ab6b7430e839e13787e2f5ce922d893f8">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'f'</span>; }</div>
|
|
<div class="line"><a id="l02999" name="l02999"></a><span class="lineno"> 2999</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03000" name="l03000"></a><span class="lineno"> 3000</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen03001" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03001" name="l03001"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1pico_01_4.html"> 3001</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::pico> {</div>
|
|
<div class="line"><a id="l03002" name="l03002"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1pico_01_4.html#a8e109ba72e855ab8ec1245cef00bda6a"> 3002</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1pico_01_4.html#a8e109ba72e855ab8ec1245cef00bda6a">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'p'</span>; }</div>
|
|
<div class="line"><a id="l03003" name="l03003"></a><span class="lineno"> 3003</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03004" name="l03004"></a><span class="lineno"> 3004</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen03005" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03005" name="l03005"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1nano_01_4.html"> 3005</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::nano> {</div>
|
|
<div class="line"><a id="l03006" name="l03006"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1nano_01_4.html#a974451da0a573ac795978c821b46743b"> 3006</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1nano_01_4.html#a974451da0a573ac795978c821b46743b">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'n'</span>; }</div>
|
|
<div class="line"><a id="l03007" name="l03007"></a><span class="lineno"> 3007</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03008" name="l03008"></a><span class="lineno"> 3008</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen03009" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03009" name="l03009"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1micro_01_4.html"> 3009</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::micro> {</div>
|
|
<div class="line"><a id="l03010" name="l03010"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1micro_01_4.html#a0741d94586155d83489e1c16fa858303"> 3010</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1micro_01_4.html#a0741d94586155d83489e1c16fa858303">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'u'</span>; }</div>
|
|
<div class="line"><a id="l03011" name="l03011"></a><span class="lineno"> 3011</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03012" name="l03012"></a><span class="lineno"> 3012</span><span class="keyword">template</span> <></div>
|
|
<div class="foldopen" id="foldopen03013" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03013" name="l03013"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1milli_01_4.html"> 3013</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ratio__string.html">ratio_string</a><std::milli> {</div>
|
|
<div class="line"><a id="l03014" name="l03014"></a><span class="lineno"><a class="line" href="structCatch_1_1ratio__string_3_01std_1_1milli_01_4.html#a25dccbe9967930629b149871e57f11f8"> 3014</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code hl_function" href="structCatch_1_1ratio__string_3_01std_1_1milli_01_4.html#a25dccbe9967930629b149871e57f11f8">symbol</a>() { <span class="keywordflow">return</span> <span class="charliteral">'m'</span>; }</div>
|
|
<div class="line"><a id="l03015" name="l03015"></a><span class="lineno"> 3015</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03016" name="l03016"></a><span class="lineno"> 3016</span></div>
|
|
<div class="line"><a id="l03018" name="l03018"></a><span class="lineno"> 3018</span> <span class="comment">// std::chrono::duration specializations</span></div>
|
|
<div class="line"><a id="l03019" name="l03019"></a><span class="lineno"> 3019</span> <span class="keyword">template</span><<span class="keyword">typename</span> Value, <span class="keyword">typename</span> Ratio></div>
|
|
<div class="foldopen" id="foldopen03020" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03020" name="l03020"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01Ratio_01_4_01_4.html"> 3020</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::duration<Value, Ratio>> {</div>
|
|
<div class="foldopen" id="foldopen03021" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03021" name="l03021"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01Ratio_01_4_01_4.html#a91856c33f84557c38fd141261238a33b"> 3021</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01Ratio_01_4_01_4.html#a91856c33f84557c38fd141261238a33b">convert</a>(std::chrono::duration<Value, Ratio> <span class="keyword">const</span>& duration) {</div>
|
|
<div class="line"><a id="l03022" name="l03022"></a><span class="lineno"> 3022</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l03023" name="l03023"></a><span class="lineno"> 3023</span> rss << duration.count() << <span class="charliteral">' '</span> << <a class="code hl_function" href="structCatch_1_1ratio__string.html#a6e63eb4acf4125c608ad8e11168d2e4f">ratio_string<Ratio>::symbol</a>() << <span class="charliteral">'s'</span>;</div>
|
|
<div class="line"><a id="l03024" name="l03024"></a><span class="lineno"> 3024</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l03025" name="l03025"></a><span class="lineno"> 3025</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03026" name="l03026"></a><span class="lineno"> 3026</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03027" name="l03027"></a><span class="lineno"> 3027</span> <span class="keyword">template</span><<span class="keyword">typename</span> Value></div>
|
|
<div class="foldopen" id="foldopen03028" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03028" name="l03028"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_011_01_4_01_4_01_4.html"> 3028</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::duration<Value, std::ratio<1>>> {</div>
|
|
<div class="foldopen" id="foldopen03029" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03029" name="l03029"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_011_01_4_01_4_01_4.html#a8585633f2628998498d63b25a41f7a9f"> 3029</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_011_01_4_01_4_01_4.html#a8585633f2628998498d63b25a41f7a9f">convert</a>(std::chrono::duration<Value, std::ratio<1>> <span class="keyword">const</span>& duration) {</div>
|
|
<div class="line"><a id="l03030" name="l03030"></a><span class="lineno"> 3030</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l03031" name="l03031"></a><span class="lineno"> 3031</span> rss << duration.count() << <span class="stringliteral">" s"</span>;</div>
|
|
<div class="line"><a id="l03032" name="l03032"></a><span class="lineno"> 3032</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l03033" name="l03033"></a><span class="lineno"> 3033</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03034" name="l03034"></a><span class="lineno"> 3034</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03035" name="l03035"></a><span class="lineno"> 3035</span> <span class="keyword">template</span><<span class="keyword">typename</span> Value></div>
|
|
<div class="foldopen" id="foldopen03036" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03036" name="l03036"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_0160_01_4_01_4_01_4.html"> 3036</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::duration<Value, std::ratio<60>>> {</div>
|
|
<div class="foldopen" id="foldopen03037" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03037" name="l03037"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_0160_01_4_01_4_01_4.html#aaed02304bfb04edad0f8ebb9bbda5f02"> 3037</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_0160_01_4_01_4_01_4.html#aaed02304bfb04edad0f8ebb9bbda5f02">convert</a>(std::chrono::duration<Value, std::ratio<60>> <span class="keyword">const</span>& duration) {</div>
|
|
<div class="line"><a id="l03038" name="l03038"></a><span class="lineno"> 3038</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l03039" name="l03039"></a><span class="lineno"> 3039</span> rss << duration.count() << <span class="stringliteral">" m"</span>;</div>
|
|
<div class="line"><a id="l03040" name="l03040"></a><span class="lineno"> 3040</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l03041" name="l03041"></a><span class="lineno"> 3041</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03042" name="l03042"></a><span class="lineno"> 3042</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03043" name="l03043"></a><span class="lineno"> 3043</span> <span class="keyword">template</span><<span class="keyword">typename</span> Value></div>
|
|
<div class="foldopen" id="foldopen03044" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03044" name="l03044"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_013600_01_4_01_4_01_4.html"> 3044</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::duration<Value, std::ratio<3600>>> {</div>
|
|
<div class="foldopen" id="foldopen03045" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03045" name="l03045"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_013600_01_4_01_4_01_4.html#ae32bf481db57bffbb74e23b90db96706"> 3045</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_013600_01_4_01_4_01_4.html#ae32bf481db57bffbb74e23b90db96706">convert</a>(std::chrono::duration<Value, std::ratio<3600>> <span class="keyword">const</span>& duration) {</div>
|
|
<div class="line"><a id="l03046" name="l03046"></a><span class="lineno"> 3046</span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> rss;</div>
|
|
<div class="line"><a id="l03047" name="l03047"></a><span class="lineno"> 3047</span> rss << duration.count() << <span class="stringliteral">" h"</span>;</div>
|
|
<div class="line"><a id="l03048" name="l03048"></a><span class="lineno"> 3048</span> <span class="keywordflow">return</span> rss.<a class="code hl_function" href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">str</a>();</div>
|
|
<div class="line"><a id="l03049" name="l03049"></a><span class="lineno"> 3049</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03050" name="l03050"></a><span class="lineno"> 3050</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03051" name="l03051"></a><span class="lineno"> 3051</span></div>
|
|
<div class="line"><a id="l03053" name="l03053"></a><span class="lineno"> 3053</span> <span class="comment">// std::chrono::time_point specialization</span></div>
|
|
<div class="line"><a id="l03054" name="l03054"></a><span class="lineno"> 3054</span> <span class="comment">// Generic time_point cannot be specialized, only std::chrono::time_point<system_clock></span></div>
|
|
<div class="line"><a id="l03055" name="l03055"></a><span class="lineno"> 3055</span> <span class="keyword">template</span><<span class="keyword">typename</span> Clock, <span class="keyword">typename</span> Duration></div>
|
|
<div class="foldopen" id="foldopen03056" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03056" name="l03056"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01Clock_00_01Duration_01_4_01_4.html"> 3056</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::time_point<Clock, Duration>> {</div>
|
|
<div class="foldopen" id="foldopen03057" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03057" name="l03057"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01Clock_00_01Duration_01_4_01_4.html#aab2a3dfce9b759543d4557fd2bb1d450"> 3057</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01Clock_00_01Duration_01_4_01_4.html#aab2a3dfce9b759543d4557fd2bb1d450">convert</a>(std::chrono::time_point<Clock, Duration> <span class="keyword">const</span>& time_point) {</div>
|
|
<div class="line"><a id="l03058" name="l03058"></a><span class="lineno"> 3058</span> return ::Catch::Detail::stringify(time_point.time_since_epoch()) + <span class="stringliteral">" since epoch"</span>;</div>
|
|
<div class="line"><a id="l03059" name="l03059"></a><span class="lineno"> 3059</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03060" name="l03060"></a><span class="lineno"> 3060</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03061" name="l03061"></a><span class="lineno"> 3061</span> <span class="comment">// std::chrono::time_point<system_clock> specialization</span></div>
|
|
<div class="line"><a id="l03062" name="l03062"></a><span class="lineno"> 3062</span> <span class="keyword">template</span><<span class="keyword">typename</span> Duration></div>
|
|
<div class="foldopen" id="foldopen03063" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03063" name="l03063"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01std_1_1chrono_1_1system__clock_00_01Duration_01_4_01_4.html"> 3063</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><std::chrono::time_point<std::chrono::system_clock, Duration>> {</div>
|
|
<div class="foldopen" id="foldopen03064" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03064" name="l03064"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01std_1_1chrono_1_1system__clock_00_01Duration_01_4_01_4.html#a49f4a57720320dcc4a2f5027d81c4388"> 3064</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01std_1_1chrono_1_1system__clock_00_01Duration_01_4_01_4.html#a49f4a57720320dcc4a2f5027d81c4388">convert</a>(std::chrono::time_point<std::chrono::system_clock, Duration> <span class="keyword">const</span>& time_point) {</div>
|
|
<div class="line"><a id="l03065" name="l03065"></a><span class="lineno"> 3065</span> <span class="keyword">auto</span> converted = std::chrono::system_clock::to_time_t(time_point);</div>
|
|
<div class="line"><a id="l03066" name="l03066"></a><span class="lineno"> 3066</span> </div>
|
|
<div class="line"><a id="l03067" name="l03067"></a><span class="lineno"> 3067</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l03068" name="l03068"></a><span class="lineno"> 3068</span> std::tm timeInfo = {};</div>
|
|
<div class="line"><a id="l03069" name="l03069"></a><span class="lineno"> 3069</span> <span class="keyword">const</span> <span class="keyword">auto</span> err = gmtime_s(&timeInfo, &converted);</div>
|
|
<div class="line"><a id="l03070" name="l03070"></a><span class="lineno"> 3070</span> <span class="keywordflow">if</span> ( err ) {</div>
|
|
<div class="line"><a id="l03071" name="l03071"></a><span class="lineno"> 3071</span> <span class="keywordflow">return</span> <span class="stringliteral">"gmtime from provided timepoint has failed. This "</span></div>
|
|
<div class="line"><a id="l03072" name="l03072"></a><span class="lineno"> 3072</span> <span class="stringliteral">"happens e.g. with pre-1970 dates using Microsoft libc"</span>;</div>
|
|
<div class="line"><a id="l03073" name="l03073"></a><span class="lineno"> 3073</span> }</div>
|
|
<div class="line"><a id="l03074" name="l03074"></a><span class="lineno"> 3074</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l03075" name="l03075"></a><span class="lineno"> 3075</span> std::tm* timeInfo = std::gmtime(&converted);</div>
|
|
<div class="line"><a id="l03076" name="l03076"></a><span class="lineno"> 3076</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03077" name="l03077"></a><span class="lineno"> 3077</span> </div>
|
|
<div class="line"><a id="l03078" name="l03078"></a><span class="lineno"> 3078</span> <span class="keyword">auto</span> <span class="keyword">const</span> timeStampSize = <span class="keyword">sizeof</span>(<span class="stringliteral">"2017-01-16T17:06:45Z"</span>);</div>
|
|
<div class="line"><a id="l03079" name="l03079"></a><span class="lineno"> 3079</span> <span class="keywordtype">char</span> timeStamp[timeStampSize];</div>
|
|
<div class="line"><a id="l03080" name="l03080"></a><span class="lineno"> 3080</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> fmt = <span class="stringliteral">"%Y-%m-%dT%H:%M:%SZ"</span>;</div>
|
|
<div class="line"><a id="l03081" name="l03081"></a><span class="lineno"> 3081</span> </div>
|
|
<div class="line"><a id="l03082" name="l03082"></a><span class="lineno"> 3082</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l03083" name="l03083"></a><span class="lineno"> 3083</span> std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);</div>
|
|
<div class="line"><a id="l03084" name="l03084"></a><span class="lineno"> 3084</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l03085" name="l03085"></a><span class="lineno"> 3085</span> std::strftime(timeStamp, timeStampSize, fmt, timeInfo);</div>
|
|
<div class="line"><a id="l03086" name="l03086"></a><span class="lineno"> 3086</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03087" name="l03087"></a><span class="lineno"> 3087</span> <span class="keywordflow">return</span> std::string(timeStamp, timeStampSize - 1);</div>
|
|
<div class="line"><a id="l03088" name="l03088"></a><span class="lineno"> 3088</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03089" name="l03089"></a><span class="lineno"> 3089</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03090" name="l03090"></a><span class="lineno"> 3090</span>}</div>
|
|
<div class="line"><a id="l03091" name="l03091"></a><span class="lineno"> 3091</span> </div>
|
|
<div class="line"><a id="l03092" name="l03092"></a><span class="lineno"> 3092</span> </div>
|
|
<div class="foldopen" id="foldopen03093" data-start="" data-end="">
|
|
<div class="line"><a id="l03093" name="l03093"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1c3c601bf24488800bdf3f634a2a6b11"> 3093</a></span><span class="preprocessor">#define INTERNAL_CATCH_REGISTER_ENUM( enumName, ... ) \</span></div>
|
|
<div class="line"><a id="l03094" name="l03094"></a><span class="lineno"> 3094</span><span class="preprocessor">namespace Catch { \</span></div>
|
|
<div class="line"><a id="l03095" name="l03095"></a><span class="lineno"> 3095</span><span class="preprocessor"> template<> struct StringMaker<enumName> { \</span></div>
|
|
<div class="line"><a id="l03096" name="l03096"></a><span class="lineno"> 3096</span><span class="preprocessor"> static std::string convert( enumName value ) { \</span></div>
|
|
<div class="line"><a id="l03097" name="l03097"></a><span class="lineno"> 3097</span><span class="preprocessor"> static const auto& enumInfo = ::Catch::getMutableRegistryHub().getMutableEnumValuesRegistry().registerEnum( #enumName, #__VA_ARGS__, { __VA_ARGS__ } ); \</span></div>
|
|
<div class="line"><a id="l03098" name="l03098"></a><span class="lineno"> 3098</span><span class="preprocessor"> return static_cast<std::string>(enumInfo.lookup( static_cast<int>( value ) )); \</span></div>
|
|
<div class="line"><a id="l03099" name="l03099"></a><span class="lineno"> 3099</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l03100" name="l03100"></a><span class="lineno"> 3100</span><span class="preprocessor"> }; \</span></div>
|
|
<div class="line"><a id="l03101" name="l03101"></a><span class="lineno"> 3101</span><span class="preprocessor">}</span></div>
|
|
</div>
|
|
<div class="line"><a id="l03102" name="l03102"></a><span class="lineno"> 3102</span> </div>
|
|
<div class="line"><a id="l03103" name="l03103"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3063d7b316c984044916079ab8b7dad6"> 3103</a></span><span class="preprocessor">#define CATCH_REGISTER_ENUM( enumName, ... ) INTERNAL_CATCH_REGISTER_ENUM( enumName, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l03104" name="l03104"></a><span class="lineno"> 3104</span> </div>
|
|
<div class="line"><a id="l03105" name="l03105"></a><span class="lineno"> 3105</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l03106" name="l03106"></a><span class="lineno"> 3106</span><span class="preprocessor">#pragma warning(pop)</span></div>
|
|
<div class="line"><a id="l03107" name="l03107"></a><span class="lineno"> 3107</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03108" name="l03108"></a><span class="lineno"> 3108</span> </div>
|
|
<div class="line"><a id="l03109" name="l03109"></a><span class="lineno"> 3109</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TOSTRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03110" name="l03110"></a><span class="lineno"> 3110</span> </div>
|
|
<div class="line"><a id="l03111" name="l03111"></a><span class="lineno"> 3111</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l03112" name="l03112"></a><span class="lineno"> 3112</span> </div>
|
|
<div class="line"><a id="l03113" name="l03113"></a><span class="lineno"> 3113</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03114" name="l03114"></a><span class="lineno"> 3114</span> </div>
|
|
<div class="foldopen" id="foldopen03115" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03115" name="l03115"></a><span class="lineno"><a class="line" href="classApprox.html"> 3115</a></span> <span class="keyword">class </span><a class="code hl_function" href="classApprox.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> {</div>
|
|
<div class="line"><a id="l03116" name="l03116"></a><span class="lineno"> 3116</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03117" name="l03117"></a><span class="lineno"> 3117</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classApprox.html#a71ffb8099b3b2530a99724e0d0b87a4f">equalityComparisonImpl</a>(<span class="keywordtype">double</span> other) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03118" name="l03118"></a><span class="lineno"> 3118</span> <span class="comment">// Sets and validates the new margin (margin >= 0)</span></div>
|
|
<div class="line"><a id="l03119" name="l03119"></a><span class="lineno"> 3119</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classApprox.html#a317617c0c402f7b7a4aa3c78eadd6cc8">setMargin</a>(<span class="keywordtype">double</span> <a class="code hl_function" href="classApprox.html#af4d5b0df9462561dacb65f19b9c770c3">margin</a>);</div>
|
|
<div class="line"><a id="l03120" name="l03120"></a><span class="lineno"> 3120</span> <span class="comment">// Sets and validates the new epsilon (0 < epsilon < 1)</span></div>
|
|
<div class="line"><a id="l03121" name="l03121"></a><span class="lineno"> 3121</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classApprox.html#aa1f094872e9d086ded948d4f138cb2fb">setEpsilon</a>(<span class="keywordtype">double</span> <a class="code hl_function" href="classApprox.html#ab9b569c030c0399a187f96e7d95e501f">epsilon</a>);</div>
|
|
<div class="line"><a id="l03122" name="l03122"></a><span class="lineno"> 3122</span> </div>
|
|
<div class="line"><a id="l03123" name="l03123"></a><span class="lineno"> 3123</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03124" name="l03124"></a><span class="lineno"> 3124</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classApprox.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> ( <span class="keywordtype">double</span> value );</div>
|
|
<div class="line"><a id="l03125" name="l03125"></a><span class="lineno"> 3125</span> </div>
|
|
<div class="line"><a id="l03126" name="l03126"></a><span class="lineno"> 3126</span> <span class="keyword">static</span> <a class="code hl_function" href="classApprox.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <a class="code hl_function" href="classApprox.html#aae48202f7bf38b6e3ebfaac7ef46b7af">custom</a>();</div>
|
|
<div class="line"><a id="l03127" name="l03127"></a><span class="lineno"> 3127</span> </div>
|
|
<div class="line"><a id="l03128" name="l03128"></a><span class="lineno"> 3128</span> <a class="code hl_function" href="classApprox.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <a class="code hl_function" href="classApprox.html#a517d8133c80266dae10f7a092dea7da8">operator-</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03129" name="l03129"></a><span class="lineno"> 3129</span> </div>
|
|
<div class="line"><a id="l03130" name="l03130"></a><span class="lineno"> 3130</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03131" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03131" name="l03131"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a64d933793282cb68a9e4934637f900fe"> 3131</a></span> <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <a class="code hl_function" href="classCatch_1_1Approx.html#a64d933793282cb68a9e4934637f900fe">operator()</a>( T <span class="keyword">const</span>& value )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03132" name="l03132"></a><span class="lineno"> 3132</span> <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> approx( <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(value) );</div>
|
|
<div class="line"><a id="l03133" name="l03133"></a><span class="lineno"> 3133</span> approx.<a class="code hl_variable" href="classCatch_1_1Approx.html#a81cd951fe47d9e6f36e562783ac9fcc7">m_epsilon</a> = <a class="code hl_variable" href="classCatch_1_1Approx.html#a81cd951fe47d9e6f36e562783ac9fcc7">m_epsilon</a>;</div>
|
|
<div class="line"><a id="l03134" name="l03134"></a><span class="lineno"> 3134</span> approx.<a class="code hl_variable" href="classCatch_1_1Approx.html#ace2c687f16a779c5ff3740f1f2a044b3">m_margin</a> = <a class="code hl_variable" href="classCatch_1_1Approx.html#ace2c687f16a779c5ff3740f1f2a044b3">m_margin</a>;</div>
|
|
<div class="line"><a id="l03135" name="l03135"></a><span class="lineno"> 3135</span> approx.<a class="code hl_variable" href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114">m_scale</a> = <a class="code hl_variable" href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114">m_scale</a>;</div>
|
|
<div class="line"><a id="l03136" name="l03136"></a><span class="lineno"> 3136</span> <span class="keywordflow">return</span> approx;</div>
|
|
<div class="line"><a id="l03137" name="l03137"></a><span class="lineno"> 3137</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03138" name="l03138"></a><span class="lineno"> 3138</span> </div>
|
|
<div class="line"><a id="l03139" name="l03139"></a><span class="lineno"> 3139</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03140" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03140" name="l03140"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a07c1b6a3fc58c7b724aa0ef082e32704"> 3140</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Approx.html#a07c1b6a3fc58c7b724aa0ef082e32704">Approx</a>( T <span class="keyword">const</span>& value ): <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a>(static_cast<double>(value))</div>
|
|
<div class="line"><a id="l03141" name="l03141"></a><span class="lineno"> 3141</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03142" name="l03142"></a><span class="lineno"> 3142</span> </div>
|
|
<div class="line"><a id="l03143" name="l03143"></a><span class="lineno"> 3143</span> </div>
|
|
<div class="line"><a id="l03144" name="l03144"></a><span class="lineno"> 3144</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03145" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03145" name="l03145"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#ab38782a37d09b527ca5e126dbf433dda"> 3145</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator == ( <span class="keyword">const</span> T& lhs, <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03146" name="l03146"></a><span class="lineno"> 3146</span> <span class="keyword">auto</span> lhs_v = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(lhs);</div>
|
|
<div class="line"><a id="l03147" name="l03147"></a><span class="lineno"> 3147</span> <span class="keywordflow">return</span> rhs.<a class="code hl_function" href="classCatch_1_1Approx.html#a71ffb8099b3b2530a99724e0d0b87a4f">equalityComparisonImpl</a>(lhs_v);</div>
|
|
<div class="line"><a id="l03148" name="l03148"></a><span class="lineno"> 3148</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03149" name="l03149"></a><span class="lineno"> 3149</span> </div>
|
|
<div class="line"><a id="l03150" name="l03150"></a><span class="lineno"> 3150</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03151" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03151" name="l03151"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a0e5ef1957d4c38d7857005909c613743"> 3151</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator == ( <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& lhs, <span class="keyword">const</span> T& rhs ) {</div>
|
|
<div class="line"><a id="l03152" name="l03152"></a><span class="lineno"> 3152</span> <span class="keywordflow">return</span> <a class="code hl_friend" href="classCatch_1_1Approx.html#ab38782a37d09b527ca5e126dbf433dda">operator==</a>( rhs, lhs );</div>
|
|
<div class="line"><a id="l03153" name="l03153"></a><span class="lineno"> 3153</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03154" name="l03154"></a><span class="lineno"> 3154</span> </div>
|
|
<div class="line"><a id="l03155" name="l03155"></a><span class="lineno"> 3155</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03156" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03156" name="l03156"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a29696f14ebd51887c8c88e771d12ef54"> 3156</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator != ( T <span class="keyword">const</span>& lhs, <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03157" name="l03157"></a><span class="lineno"> 3157</span> <span class="keywordflow">return</span> !<a class="code hl_friend" href="classCatch_1_1Approx.html#ab38782a37d09b527ca5e126dbf433dda">operator==</a>( lhs, rhs );</div>
|
|
<div class="line"><a id="l03158" name="l03158"></a><span class="lineno"> 3158</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03159" name="l03159"></a><span class="lineno"> 3159</span> </div>
|
|
<div class="line"><a id="l03160" name="l03160"></a><span class="lineno"> 3160</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03161" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03161" name="l03161"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a31d62e3c35abb86cf25e02601966ca5d"> 3161</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator != ( <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& lhs, T <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03162" name="l03162"></a><span class="lineno"> 3162</span> <span class="keywordflow">return</span> !<a class="code hl_friend" href="classCatch_1_1Approx.html#ab38782a37d09b527ca5e126dbf433dda">operator==</a>( rhs, lhs );</div>
|
|
<div class="line"><a id="l03163" name="l03163"></a><span class="lineno"> 3163</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03164" name="l03164"></a><span class="lineno"> 3164</span> </div>
|
|
<div class="line"><a id="l03165" name="l03165"></a><span class="lineno"> 3165</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03166" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03166" name="l03166"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a0369de03e81bc2ceaf6c9d830476bd49"> 3166</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator <= ( T <span class="keyword">const</span>& lhs, <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03167" name="l03167"></a><span class="lineno"> 3167</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(lhs) < rhs.<a class="code hl_variable" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">m_value</a> || lhs == rhs;</div>
|
|
<div class="line"><a id="l03168" name="l03168"></a><span class="lineno"> 3168</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03169" name="l03169"></a><span class="lineno"> 3169</span> </div>
|
|
<div class="line"><a id="l03170" name="l03170"></a><span class="lineno"> 3170</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03171" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03171" name="l03171"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a6040b908588745570847d7ae8483b091"> 3171</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator <= ( <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& lhs, T <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03172" name="l03172"></a><span class="lineno"> 3172</span> <span class="keywordflow">return</span> lhs.<a class="code hl_variable" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">m_value</a> < <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(rhs) || lhs == rhs;</div>
|
|
<div class="line"><a id="l03173" name="l03173"></a><span class="lineno"> 3173</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03174" name="l03174"></a><span class="lineno"> 3174</span> </div>
|
|
<div class="line"><a id="l03175" name="l03175"></a><span class="lineno"> 3175</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03176" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03176" name="l03176"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#affd27efc62be386daeecb7a09e828d44"> 3176</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator >= ( T <span class="keyword">const</span>& lhs, <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03177" name="l03177"></a><span class="lineno"> 3177</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(lhs) > rhs.<a class="code hl_variable" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">m_value</a> || lhs == rhs;</div>
|
|
<div class="line"><a id="l03178" name="l03178"></a><span class="lineno"> 3178</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03179" name="l03179"></a><span class="lineno"> 3179</span> </div>
|
|
<div class="line"><a id="l03180" name="l03180"></a><span class="lineno"> 3180</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03181" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03181" name="l03181"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a5899b8a36725406701e2ebded2971ee6"> 3181</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator >= ( <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a> <span class="keyword">const</span>& lhs, T <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03182" name="l03182"></a><span class="lineno"> 3182</span> <span class="keywordflow">return</span> lhs.<a class="code hl_variable" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">m_value</a> > <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(rhs) || lhs == rhs;</div>
|
|
<div class="line"><a id="l03183" name="l03183"></a><span class="lineno"> 3183</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03184" name="l03184"></a><span class="lineno"> 3184</span> </div>
|
|
<div class="line"><a id="l03185" name="l03185"></a><span class="lineno"> 3185</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03186" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03186" name="l03186"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#ab9b569c030c0399a187f96e7d95e501f"> 3186</a></span> <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a>& <a class="code hl_function" href="classCatch_1_1Approx.html#ab9b569c030c0399a187f96e7d95e501f">epsilon</a>( T <span class="keyword">const</span>& newEpsilon ) {</div>
|
|
<div class="line"><a id="l03187" name="l03187"></a><span class="lineno"> 3187</span> <span class="keyword">const</span> <span class="keyword">auto</span> epsilonAsDouble = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newEpsilon);</div>
|
|
<div class="line"><a id="l03188" name="l03188"></a><span class="lineno"> 3188</span> <a class="code hl_function" href="classCatch_1_1Approx.html#aa1f094872e9d086ded948d4f138cb2fb">setEpsilon</a>(epsilonAsDouble);</div>
|
|
<div class="line"><a id="l03189" name="l03189"></a><span class="lineno"> 3189</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03190" name="l03190"></a><span class="lineno"> 3190</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03191" name="l03191"></a><span class="lineno"> 3191</span> </div>
|
|
<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03193" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03193" name="l03193"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#af4d5b0df9462561dacb65f19b9c770c3"> 3193</a></span> <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a>& <a class="code hl_function" href="classCatch_1_1Approx.html#af4d5b0df9462561dacb65f19b9c770c3">margin</a>( T <span class="keyword">const</span>& newMargin ) {</div>
|
|
<div class="line"><a id="l03194" name="l03194"></a><span class="lineno"> 3194</span> <span class="keyword">const</span> <span class="keyword">auto</span> marginAsDouble = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newMargin);</div>
|
|
<div class="line"><a id="l03195" name="l03195"></a><span class="lineno"> 3195</span> <a class="code hl_function" href="classCatch_1_1Approx.html#a317617c0c402f7b7a4aa3c78eadd6cc8">setMargin</a>(marginAsDouble);</div>
|
|
<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03197" name="l03197"></a><span class="lineno"> 3197</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03198" name="l03198"></a><span class="lineno"> 3198</span> </div>
|
|
<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</span> template <typename T, typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="foldopen" id="foldopen03200" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03200" name="l03200"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a8b01c1b0697e834c6df637b5163a7dac"> 3200</a></span> <a class="code hl_function" href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx</a>& <a class="code hl_function" href="classCatch_1_1Approx.html#a8b01c1b0697e834c6df637b5163a7dac">scale</a>( T <span class="keyword">const</span>& newScale ) {</div>
|
|
<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span> <a class="code hl_variable" href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114">m_scale</a> = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newScale);</div>
|
|
<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span> </div>
|
|
<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span> std::string toString() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span> </div>
|
|
<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a81cd951fe47d9e6f36e562783ac9fcc7"> 3208</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classCatch_1_1Approx.html#a81cd951fe47d9e6f36e562783ac9fcc7">m_epsilon</a>;</div>
|
|
<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#ace2c687f16a779c5ff3740f1f2a044b3"> 3209</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classCatch_1_1Approx.html#ace2c687f16a779c5ff3740f1f2a044b3">m_margin</a>;</div>
|
|
<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114"> 3210</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114">m_scale</a>;</div>
|
|
<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"><a class="line" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553"> 3211</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">m_value</a>;</div>
|
|
<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span> </div>
|
|
<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1literals.html">literals</a> {</div>
|
|
<div class="line"><a id="l03215" name="l03215"></a><span class="lineno"> 3215</span> <a class="code hl_class" href="classCatch_1_1Approx.html">Approx</a> <span class="keyword">operator</span> <span class="stringliteral">""</span>_a(<span class="keywordtype">long</span> <span class="keywordtype">double</span> val);</div>
|
|
<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span> <a class="code hl_class" href="classCatch_1_1Approx.html">Approx</a> <span class="keyword">operator</span> <span class="stringliteral">""</span>_a(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> val);</div>
|
|
<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span>} <span class="comment">// end namespace literals</span></div>
|
|
<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"> 3218</span> </div>
|
|
<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span><span class="keyword">template</span><></div>
|
|
<div class="foldopen" id="foldopen03220" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"><a class="line" href="structCatch_1_1StringMaker_3_01Catch_1_1Approx_01_4.html"> 3220</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StringMaker.html">StringMaker</a><<a class="code hl_namespace" href="namespaceCatch.html">Catch</a>::<a class="code hl_class" href="classCatch_1_1Approx.html">Approx</a>> {</div>
|
|
<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span> <span class="keyword">static</span> std::string <a class="code hl_function" href="structCatch_1_1StringMaker_3_01Catch_1_1Approx_01_4.html#ab30071d428fcd4b1aea833191f88fbaf">convert</a>(<a class="code hl_class" href="classCatch_1_1Approx.html">Catch::Approx</a> <span class="keyword">const</span>& value);</div>
|
|
<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span> </div>
|
|
<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03225" name="l03225"></a><span class="lineno"> 3225</span> </div>
|
|
<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_APPROX_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03227" name="l03227"></a><span class="lineno"> 3227</span> </div>
|
|
<div class="line"><a id="l03228" name="l03228"></a><span class="lineno"> 3228</span> </div>
|
|
<div class="line"><a id="l03229" name="l03229"></a><span class="lineno"> 3229</span><span class="preprocessor">#ifndef CATCH_ASSERTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03230" name="l03230"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2759b4e0c28ba249b9a547349198af2a"> 3230</a></span><span class="preprocessor">#define CATCH_ASSERTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03231" name="l03231"></a><span class="lineno"> 3231</span> </div>
|
|
<div class="line"><a id="l03232" name="l03232"></a><span class="lineno"> 3232</span> </div>
|
|
<div class="line"><a id="l03233" name="l03233"></a><span class="lineno"> 3233</span> </div>
|
|
<div class="line"><a id="l03234" name="l03234"></a><span class="lineno"> 3234</span><span class="preprocessor">#ifndef CATCH_SOURCE_LINE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03235" name="l03235"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abb4b23f7b17ae16d1ef6c02de6db8cf5"> 3235</a></span><span class="preprocessor">#define CATCH_SOURCE_LINE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03236" name="l03236"></a><span class="lineno"> 3236</span> </div>
|
|
<div class="line"><a id="l03237" name="l03237"></a><span class="lineno"> 3237</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l03238" name="l03238"></a><span class="lineno"> 3238</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l03239" name="l03239"></a><span class="lineno"> 3239</span> </div>
|
|
<div class="line"><a id="l03240" name="l03240"></a><span class="lineno"> 3240</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"> 3241</span> </div>
|
|
<div class="foldopen" id="foldopen03242" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"><a class="line" href="structCatch_1_1SourceLineInfo.html"> 3242</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1SourceLineInfo.html#a2d80932bb4129b1606d1924a5c44be2f">SourceLineInfo</a> {</div>
|
|
<div class="line"><a id="l03243" name="l03243"></a><span class="lineno"> 3243</span> </div>
|
|
<div class="line"><a id="l03244" name="l03244"></a><span class="lineno"><a class="line" href="structCatch_1_1SourceLineInfo.html#a2d80932bb4129b1606d1924a5c44be2f"> 3244</a></span> <a class="code hl_function" href="structCatch_1_1SourceLineInfo.html#a2d80932bb4129b1606d1924a5c44be2f">SourceLineInfo</a>() = <span class="keyword">delete</span>;</div>
|
|
<div class="foldopen" id="foldopen03245" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03245" name="l03245"></a><span class="lineno"><a class="line" href="structCatch_1_1SourceLineInfo.html#a264a34b14ba8d2bbf1889426494f0e45"> 3245</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="structCatch_1_1SourceLineInfo.html#a264a34b14ba8d2bbf1889426494f0e45">SourceLineInfo</a>( <span class="keywordtype">char</span> <span class="keyword">const</span>* _file, std::size_t _line ) <span class="keyword">noexcept</span>:</div>
|
|
<div class="line"><a id="l03246" name="l03246"></a><span class="lineno"> 3246</span> <a class="code hl_variable" href="structCatch_1_1SourceLineInfo.html#ad65537703e9f08c1fa7777fbc3f0c617">file</a>( _file ),</div>
|
|
<div class="line"><a id="l03247" name="l03247"></a><span class="lineno"> 3247</span> <a class="code hl_variable" href="structCatch_1_1SourceLineInfo.html#a841e5d696c7b9cde24e45e61dd979c77">line</a>( _line )</div>
|
|
<div class="line"><a id="l03248" name="l03248"></a><span class="lineno"> 3248</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03249" name="l03249"></a><span class="lineno"> 3249</span> </div>
|
|
<div class="line"><a id="l03250" name="l03250"></a><span class="lineno"> 3250</span> <span class="keywordtype">bool</span> operator == ( <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& other ) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l03251" name="l03251"></a><span class="lineno"> 3251</span> <span class="keywordtype">bool</span> operator < ( <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& other ) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l03252" name="l03252"></a><span class="lineno"> 3252</span> </div>
|
|
<div class="line"><a id="l03253" name="l03253"></a><span class="lineno"><a class="line" href="structCatch_1_1SourceLineInfo.html#ad65537703e9f08c1fa7777fbc3f0c617"> 3253</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code hl_variable" href="structCatch_1_1SourceLineInfo.html#ad65537703e9f08c1fa7777fbc3f0c617">file</a>;</div>
|
|
<div class="line"><a id="l03254" name="l03254"></a><span class="lineno"><a class="line" href="structCatch_1_1SourceLineInfo.html#a841e5d696c7b9cde24e45e61dd979c77"> 3254</a></span> std::size_t <a class="code hl_variable" href="structCatch_1_1SourceLineInfo.html#a841e5d696c7b9cde24e45e61dd979c77">line</a>;</div>
|
|
<div class="line"><a id="l03255" name="l03255"></a><span class="lineno"> 3255</span> </div>
|
|
<div class="line"><a id="l03256" name="l03256"></a><span class="lineno"> 3256</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>(std::ostream& os, <a class="code hl_function" href="structCatch_1_1SourceLineInfo.html#a2d80932bb4129b1606d1924a5c44be2f">SourceLineInfo</a> <span class="keyword">const</span>& info);</div>
|
|
<div class="line"><a id="l03257" name="l03257"></a><span class="lineno"> 3257</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03258" name="l03258"></a><span class="lineno"> 3258</span>}</div>
|
|
<div class="line"><a id="l03259" name="l03259"></a><span class="lineno"> 3259</span> </div>
|
|
<div class="foldopen" id="foldopen03260" data-start="" data-end="">
|
|
<div class="line"><a id="l03260" name="l03260"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abc0b2405454c51748a31e0393d9ad5d1"> 3260</a></span><span class="preprocessor">#define CATCH_INTERNAL_LINEINFO \</span></div>
|
|
<div class="line"><a id="l03261" name="l03261"></a><span class="lineno"> 3261</span><span class="preprocessor"> ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l03262" name="l03262"></a><span class="lineno"> 3262</span> </div>
|
|
<div class="line"><a id="l03263" name="l03263"></a><span class="lineno"> 3263</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SOURCE_LINE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03264" name="l03264"></a><span class="lineno"> 3264</span> </div>
|
|
<div class="line"><a id="l03265" name="l03265"></a><span class="lineno"> 3265</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03266" name="l03266"></a><span class="lineno"> 3266</span> </div>
|
|
<div class="foldopen" id="foldopen03267" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03267" name="l03267"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionInfo.html"> 3267</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> {</div>
|
|
<div class="line"><a id="l03268" name="l03268"></a><span class="lineno"> 3268</span> <span class="comment">// AssertionInfo() = delete;</span></div>
|
|
<div class="line"><a id="l03269" name="l03269"></a><span class="lineno"> 3269</span> </div>
|
|
<div class="line"><a id="l03270" name="l03270"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionInfo.html#aaf3fbb9f1fe09c879ba3d877584e3056"> 3270</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1AssertionInfo.html#aaf3fbb9f1fe09c879ba3d877584e3056">macroName</a>;</div>
|
|
<div class="line"><a id="l03271" name="l03271"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionInfo.html#a17bdbb404ba12658034f833be2f4c3e7"> 3271</a></span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_variable" href="structCatch_1_1AssertionInfo.html#a17bdbb404ba12658034f833be2f4c3e7">lineInfo</a>;</div>
|
|
<div class="line"><a id="l03272" name="l03272"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionInfo.html#accd36744b4acaa3a691a72df0b42190f"> 3272</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1AssertionInfo.html#accd36744b4acaa3a691a72df0b42190f">capturedExpression</a>;</div>
|
|
<div class="line"><a id="l03273" name="l03273"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionInfo.html#a60353b3632ab2f827162f2b2d6911073"> 3273</a></span> <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a> <a class="code hl_variable" href="structCatch_1_1AssertionInfo.html#a60353b3632ab2f827162f2b2d6911073">resultDisposition</a>;</div>
|
|
<div class="line"><a id="l03274" name="l03274"></a><span class="lineno"> 3274</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03275" name="l03275"></a><span class="lineno"> 3275</span> </div>
|
|
<div class="line"><a id="l03276" name="l03276"></a><span class="lineno"> 3276</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03277" name="l03277"></a><span class="lineno"> 3277</span> </div>
|
|
<div class="line"><a id="l03278" name="l03278"></a><span class="lineno"> 3278</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ASSERTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03279" name="l03279"></a><span class="lineno"> 3279</span> </div>
|
|
<div class="line"><a id="l03280" name="l03280"></a><span class="lineno"> 3280</span> </div>
|
|
<div class="line"><a id="l03281" name="l03281"></a><span class="lineno"> 3281</span><span class="preprocessor">#ifndef CATCH_ASSERTION_RESULT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03282" name="l03282"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8c37740bbbb839612e2c468fe2b88eeb"> 3282</a></span><span class="preprocessor">#define CATCH_ASSERTION_RESULT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03283" name="l03283"></a><span class="lineno"> 3283</span> </div>
|
|
<div class="line"><a id="l03284" name="l03284"></a><span class="lineno"> 3284</span> </div>
|
|
<div class="line"><a id="l03285" name="l03285"></a><span class="lineno"> 3285</span> </div>
|
|
<div class="line"><a id="l03286" name="l03286"></a><span class="lineno"> 3286</span><span class="preprocessor">#ifndef CATCH_LAZY_EXPR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03287" name="l03287"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2bad1acc671d24b74a0135010e3393eb"> 3287</a></span><span class="preprocessor">#define CATCH_LAZY_EXPR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03288" name="l03288"></a><span class="lineno"> 3288</span> </div>
|
|
<div class="line"><a id="l03289" name="l03289"></a><span class="lineno"> 3289</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l03290" name="l03290"></a><span class="lineno"> 3290</span> </div>
|
|
<div class="line"><a id="l03291" name="l03291"></a><span class="lineno"> 3291</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03292" name="l03292"></a><span class="lineno"> 3292</span> </div>
|
|
<div class="line"><a id="l03293" name="l03293"></a><span class="lineno"> 3293</span> <span class="keyword">class </span>ITransientExpression;</div>
|
|
<div class="line"><a id="l03294" name="l03294"></a><span class="lineno"> 3294</span> </div>
|
|
<div class="foldopen" id="foldopen03295" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03295" name="l03295"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html"> 3295</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">LazyExpression</a> {</div>
|
|
<div class="line"><a id="l03296" name="l03296"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a4301a3aa57b612dd8b6ef8461742ecab"> 3296</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classCatch_1_1LazyExpression.html#a4301a3aa57b612dd8b6ef8461742ecab">AssertionHandler</a>;</div>
|
|
<div class="line"><a id="l03297" name="l03297"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a64019eb137f5ce447cdc71cb80b6e7a4"> 3297</a></span> <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code hl_friend" href="classCatch_1_1LazyExpression.html#a64019eb137f5ce447cdc71cb80b6e7a4">AssertionStats</a>;</div>
|
|
<div class="line"><a id="l03298" name="l03298"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#af3aa096bb29a772bc534830f29a2ce7a"> 3298</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classCatch_1_1LazyExpression.html#af3aa096bb29a772bc534830f29a2ce7a">RunContext</a>;</div>
|
|
<div class="line"><a id="l03299" name="l03299"></a><span class="lineno"> 3299</span> </div>
|
|
<div class="line"><a id="l03300" name="l03300"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a5a9ce4c2401a262c21b4e107551180bc"> 3300</a></span> <a class="code hl_class" href="classCatch_1_1ITransientExpression.html">ITransientExpression</a> <span class="keyword">const</span>* <a class="code hl_variable" href="classCatch_1_1LazyExpression.html#a5a9ce4c2401a262c21b4e107551180bc">m_transientExpression</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l03301" name="l03301"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a975fdfe2bb139512024bb479d478425e"> 3301</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1LazyExpression.html#a975fdfe2bb139512024bb479d478425e">m_isNegated</a>;</div>
|
|
<div class="line"><a id="l03302" name="l03302"></a><span class="lineno"> 3302</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen03303" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03303" name="l03303"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7"> 3303</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">LazyExpression</a>( <span class="keywordtype">bool</span> isNegated ):</div>
|
|
<div class="line"><a id="l03304" name="l03304"></a><span class="lineno"> 3304</span> <a class="code hl_variable" href="classCatch_1_1LazyExpression.html#a975fdfe2bb139512024bb479d478425e">m_isNegated</a>(isNegated)</div>
|
|
<div class="line"><a id="l03305" name="l03305"></a><span class="lineno"> 3305</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03306" name="l03306"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#aa3648643bd1eb5fa1206eb6dc83a52ff"> 3306</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1LazyExpression.html#aa3648643bd1eb5fa1206eb6dc83a52ff">LazyExpression</a>(<a class="code hl_function" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">LazyExpression</a> <span class="keyword">const</span>& other) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l03307" name="l03307"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a1b080e25fdfdecbc3e475d0e96cf0fd4"> 3307</a></span> <a class="code hl_function" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">LazyExpression</a>& operator = ( <a class="code hl_function" href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">LazyExpression</a> <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l03308" name="l03308"></a><span class="lineno"> 3308</span> </div>
|
|
<div class="foldopen" id="foldopen03309" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03309" name="l03309"></a><span class="lineno"><a class="line" href="classCatch_1_1LazyExpression.html#a2e614ecca48813ceb65a447abe574a43"> 3309</a></span> <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03310" name="l03310"></a><span class="lineno"> 3310</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1LazyExpression.html#a5a9ce4c2401a262c21b4e107551180bc">m_transientExpression</a> != <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l03311" name="l03311"></a><span class="lineno"> 3311</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03312" name="l03312"></a><span class="lineno"> 3312</span> </div>
|
|
<div class="line"><a id="l03313" name="l03313"></a><span class="lineno"> 3313</span> <span class="keyword">friend</span> <span class="keyword">auto</span> <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( std::ostream& os, <a class="code hl_class" href="classCatch_1_1LazyExpression.html">LazyExpression</a> <span class="keyword">const</span>& lazyExpr ) -> std::ostream&;</div>
|
|
<div class="line"><a id="l03314" name="l03314"></a><span class="lineno"> 3314</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03315" name="l03315"></a><span class="lineno"> 3315</span> </div>
|
|
<div class="line"><a id="l03316" name="l03316"></a><span class="lineno"> 3316</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l03317" name="l03317"></a><span class="lineno"> 3317</span> </div>
|
|
<div class="line"><a id="l03318" name="l03318"></a><span class="lineno"> 3318</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_LAZY_EXPR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03319" name="l03319"></a><span class="lineno"> 3319</span> </div>
|
|
<div class="line"><a id="l03320" name="l03320"></a><span class="lineno"> 3320</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03321" name="l03321"></a><span class="lineno"> 3321</span> </div>
|
|
<div class="line"><a id="l03322" name="l03322"></a><span class="lineno"> 3322</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l03323" name="l03323"></a><span class="lineno"> 3323</span> </div>
|
|
<div class="foldopen" id="foldopen03324" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03324" name="l03324"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html"> 3324</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1AssertionResultData.html#a8c0846a7e323fb7bfe292fa59a11a00e">AssertionResultData</a></div>
|
|
<div class="line"><a id="l03325" name="l03325"></a><span class="lineno"> 3325</span> {</div>
|
|
<div class="line"><a id="l03326" name="l03326"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html#a8c0846a7e323fb7bfe292fa59a11a00e"> 3326</a></span> <a class="code hl_function" href="structCatch_1_1AssertionResultData.html#a8c0846a7e323fb7bfe292fa59a11a00e">AssertionResultData</a>() = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l03327" name="l03327"></a><span class="lineno"> 3327</span> </div>
|
|
<div class="line"><a id="l03328" name="l03328"></a><span class="lineno"> 3328</span> <a class="code hl_function" href="structCatch_1_1AssertionResultData.html#a8c0846a7e323fb7bfe292fa59a11a00e">AssertionResultData</a>( <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> _resultType, <a class="code hl_class" href="classCatch_1_1LazyExpression.html">LazyExpression</a> <span class="keyword">const</span>& _lazyExpression );</div>
|
|
<div class="line"><a id="l03329" name="l03329"></a><span class="lineno"> 3329</span> </div>
|
|
<div class="line"><a id="l03330" name="l03330"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html#ac34215803c4c4a88f795879f61c1f7b4"> 3330</a></span> std::string <a class="code hl_variable" href="structCatch_1_1AssertionResultData.html#ac34215803c4c4a88f795879f61c1f7b4">message</a>;</div>
|
|
<div class="line"><a id="l03331" name="l03331"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html#a9e809d36fffbeb1c7d0cbe7382dd9595"> 3331</a></span> <span class="keyword">mutable</span> std::string <a class="code hl_variable" href="structCatch_1_1AssertionResultData.html#a9e809d36fffbeb1c7d0cbe7382dd9595">reconstructedExpression</a>;</div>
|
|
<div class="line"><a id="l03332" name="l03332"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html#ad20fe728af4ef4aef8b9aea522ffe8b3"> 3332</a></span> <a class="code hl_class" href="classCatch_1_1LazyExpression.html">LazyExpression</a> <a class="code hl_variable" href="structCatch_1_1AssertionResultData.html#ad20fe728af4ef4aef8b9aea522ffe8b3">lazyExpression</a>;</div>
|
|
<div class="line"><a id="l03333" name="l03333"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionResultData.html#a7ceab4a7ff722aec5587e3748caf66b7"> 3333</a></span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> <a class="code hl_variable" href="structCatch_1_1AssertionResultData.html#a7ceab4a7ff722aec5587e3748caf66b7">resultType</a>;</div>
|
|
<div class="line"><a id="l03334" name="l03334"></a><span class="lineno"> 3334</span> </div>
|
|
<div class="line"><a id="l03335" name="l03335"></a><span class="lineno"> 3335</span> std::string <a class="code hl_function" href="structCatch_1_1AssertionResultData.html#a21c9d6ed92a8beaeeb229302ca8cffbb">reconstructExpression</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03336" name="l03336"></a><span class="lineno"> 3336</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03337" name="l03337"></a><span class="lineno"> 3337</span> </div>
|
|
<div class="foldopen" id="foldopen03338" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03338" name="l03338"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionResult.html"> 3338</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1AssertionResult.html#aea7b7b6894924f055ae23b6f2b89d43d">AssertionResult</a> {</div>
|
|
<div class="line"><a id="l03339" name="l03339"></a><span class="lineno"> 3339</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03340" name="l03340"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionResult.html#aea7b7b6894924f055ae23b6f2b89d43d"> 3340</a></span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aea7b7b6894924f055ae23b6f2b89d43d">AssertionResult</a>() = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l03341" name="l03341"></a><span class="lineno"> 3341</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aea7b7b6894924f055ae23b6f2b89d43d">AssertionResult</a>( <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <span class="keyword">const</span>& info, <a class="code hl_struct" href="structCatch_1_1AssertionResultData.html">AssertionResultData</a>&& data );</div>
|
|
<div class="line"><a id="l03342" name="l03342"></a><span class="lineno"> 3342</span> </div>
|
|
<div class="line"><a id="l03343" name="l03343"></a><span class="lineno"> 3343</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#ae39658b71c4afc3c8a859043b0e97027">isOk</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03344" name="l03344"></a><span class="lineno"> 3344</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#ac5cc872b721d5fb65d87221d30b22fdd">succeeded</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03345" name="l03345"></a><span class="lineno"> 3345</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#ac810750194e1722489d2fd16e8c6a4a8">getResultType</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03346" name="l03346"></a><span class="lineno"> 3346</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aba37b4fef1015989df2136592958e984">hasExpression</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03347" name="l03347"></a><span class="lineno"> 3347</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aae37064b401919fa8ac480ef86cca924">hasMessage</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03348" name="l03348"></a><span class="lineno"> 3348</span> std::string <a class="code hl_function" href="classCatch_1_1AssertionResult.html#a26a777f3959353c729544cb2ace0d279">getExpression</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03349" name="l03349"></a><span class="lineno"> 3349</span> std::string <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aac35a0ca42d33bff6467c76573730f5e">getExpressionInMacro</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03350" name="l03350"></a><span class="lineno"> 3350</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#a78c43506c2b3d8cc1fb141a97d09ec94">hasExpandedExpression</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03351" name="l03351"></a><span class="lineno"> 3351</span> std::string <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aaa46070791a6c07caaed86229b8d9d75">getExpandedExpression</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03352" name="l03352"></a><span class="lineno"> 3352</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#a046d7c6ecdbabcfe0bc212699bb87024">getMessage</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03353" name="l03353"></a><span class="lineno"> 3353</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#aa4d3fdbfe276a69a035762dbb790800f">getSourceInfo</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03354" name="l03354"></a><span class="lineno"> 3354</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1AssertionResult.html#a06dd13522bd42af8402bb3903787d844">getTestMacroName</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03355" name="l03355"></a><span class="lineno"> 3355</span> </div>
|
|
<div class="line"><a id="l03356" name="l03356"></a><span class="lineno"> 3356</span> <span class="comment">//protected:</span></div>
|
|
<div class="line"><a id="l03357" name="l03357"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionResult.html#a3e7236f73a51d6fc8bb9dfdefcee7772"> 3357</a></span> <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <a class="code hl_variable" href="classCatch_1_1AssertionResult.html#a3e7236f73a51d6fc8bb9dfdefcee7772">m_info</a>;</div>
|
|
<div class="line"><a id="l03358" name="l03358"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionResult.html#add3455b8bbedb0d643e18da67c66b4f7"> 3358</a></span> <a class="code hl_struct" href="structCatch_1_1AssertionResultData.html">AssertionResultData</a> <a class="code hl_variable" href="classCatch_1_1AssertionResult.html#add3455b8bbedb0d643e18da67c66b4f7">m_resultData</a>;</div>
|
|
<div class="line"><a id="l03359" name="l03359"></a><span class="lineno"> 3359</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03360" name="l03360"></a><span class="lineno"> 3360</span> </div>
|
|
<div class="line"><a id="l03361" name="l03361"></a><span class="lineno"> 3361</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03362" name="l03362"></a><span class="lineno"> 3362</span> </div>
|
|
<div class="line"><a id="l03363" name="l03363"></a><span class="lineno"> 3363</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ASSERTION_RESULT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03364" name="l03364"></a><span class="lineno"> 3364</span> </div>
|
|
<div class="line"><a id="l03365" name="l03365"></a><span class="lineno"> 3365</span> </div>
|
|
<div class="line"><a id="l03366" name="l03366"></a><span class="lineno"> 3366</span><span class="preprocessor">#ifndef CATCH_CASE_SENSITIVE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03367" name="l03367"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2adda86cc2f9230b2a2521f476a8b5d5"> 3367</a></span><span class="preprocessor">#define CATCH_CASE_SENSITIVE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03368" name="l03368"></a><span class="lineno"> 3368</span> </div>
|
|
<div class="line"><a id="l03369" name="l03369"></a><span class="lineno"> 3369</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03370" name="l03370"></a><span class="lineno"> 3370</span> </div>
|
|
<div class="line"><a id="l03371" name="l03371"></a><span class="lineno"><a class="line" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36"> 3371</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">CaseSensitive</a> { <a class="code hl_enumvalue" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36a93cba07454f06a4a960172bbd6e2a435">Yes</a>, <a class="code hl_enumvalue" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36abafd7322c6e97d25b6299b5d6fe8920b">No</a> };</div>
|
|
<div class="line"><a id="l03372" name="l03372"></a><span class="lineno"> 3372</span> </div>
|
|
<div class="line"><a id="l03373" name="l03373"></a><span class="lineno"> 3373</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l03374" name="l03374"></a><span class="lineno"> 3374</span> </div>
|
|
<div class="line"><a id="l03375" name="l03375"></a><span class="lineno"> 3375</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CASE_SENSITIVE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03376" name="l03376"></a><span class="lineno"> 3376</span> </div>
|
|
<div class="line"><a id="l03377" name="l03377"></a><span class="lineno"> 3377</span> </div>
|
|
<div class="line"><a id="l03378" name="l03378"></a><span class="lineno"> 3378</span><span class="preprocessor">#ifndef CATCH_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03379" name="l03379"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1e4422facae841516f65a68fbb377a13"> 3379</a></span><span class="preprocessor">#define CATCH_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03380" name="l03380"></a><span class="lineno"> 3380</span> </div>
|
|
<div class="line"><a id="l03381" name="l03381"></a><span class="lineno"> 3381</span> </div>
|
|
<div class="line"><a id="l03382" name="l03382"></a><span class="lineno"> 3382</span> </div>
|
|
<div class="line"><a id="l03383" name="l03383"></a><span class="lineno"> 3383</span><span class="preprocessor">#ifndef CATCH_TEST_SPEC_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03384" name="l03384"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0e3c7b7971637fa574f9d7fe1f873705"> 3384</a></span><span class="preprocessor">#define CATCH_TEST_SPEC_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03385" name="l03385"></a><span class="lineno"> 3385</span> </div>
|
|
<div class="line"><a id="l03386" name="l03386"></a><span class="lineno"> 3386</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l03387" name="l03387"></a><span class="lineno"> 3387</span><span class="preprocessor">#pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l03388" name="l03388"></a><span class="lineno"> 3388</span><span class="preprocessor">#pragma clang diagnostic ignored "-Wpadded"</span></div>
|
|
<div class="line"><a id="l03389" name="l03389"></a><span class="lineno"> 3389</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03390" name="l03390"></a><span class="lineno"> 3390</span> </div>
|
|
<div class="line"><a id="l03391" name="l03391"></a><span class="lineno"> 3391</span> </div>
|
|
<div class="line"><a id="l03392" name="l03392"></a><span class="lineno"> 3392</span> </div>
|
|
<div class="line"><a id="l03393" name="l03393"></a><span class="lineno"> 3393</span><span class="preprocessor">#ifndef CATCH_WILDCARD_PATTERN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03394" name="l03394"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0fa7a0741c4bde68e16bbbca5583a112"> 3394</a></span><span class="preprocessor">#define CATCH_WILDCARD_PATTERN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03395" name="l03395"></a><span class="lineno"> 3395</span> </div>
|
|
<div class="line"><a id="l03396" name="l03396"></a><span class="lineno"> 3396</span> </div>
|
|
<div class="line"><a id="l03397" name="l03397"></a><span class="lineno"> 3397</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03398" name="l03398"></a><span class="lineno"> 3398</span> </div>
|
|
<div class="line"><a id="l03399" name="l03399"></a><span class="lineno"> 3399</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a></div>
|
|
<div class="line"><a id="l03400" name="l03400"></a><span class="lineno"> 3400</span>{</div>
|
|
<div class="foldopen" id="foldopen03401" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03401" name="l03401"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html"> 3401</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1WildcardPattern.html#aeb90dae9b701d90cbed1e43904c86af2">WildcardPattern</a> {</div>
|
|
<div class="foldopen" id="foldopen03402" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03402" name="l03402"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadb"> 3402</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadb">WildcardPosition</a> {</div>
|
|
<div class="line"><a id="l03403" name="l03403"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba92974148108b6e2e681d4682321b89a1"> 3403</a></span> <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba92974148108b6e2e681d4682321b89a1">NoWildcard</a> = 0,</div>
|
|
<div class="line"><a id="l03404" name="l03404"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadbab15d0d9a0f6aa1bb3a529ff4aff087af"> 3404</a></span> <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadbab15d0d9a0f6aa1bb3a529ff4aff087af">WildcardAtStart</a> = 1,</div>
|
|
<div class="line"><a id="l03405" name="l03405"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba558b757b9392b8aca7815be8e90aa92e"> 3405</a></span> <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba558b757b9392b8aca7815be8e90aa92e">WildcardAtEnd</a> = 2,</div>
|
|
<div class="line"><a id="l03406" name="l03406"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba89f900210573e866296490b85798289c"> 3406</a></span> <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba89f900210573e866296490b85798289c">WildcardAtBothEnds</a> = <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadbab15d0d9a0f6aa1bb3a529ff4aff087af">WildcardAtStart</a> | <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba558b757b9392b8aca7815be8e90aa92e">WildcardAtEnd</a></div>
|
|
<div class="line"><a id="l03407" name="l03407"></a><span class="lineno"> 3407</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03408" name="l03408"></a><span class="lineno"> 3408</span> </div>
|
|
<div class="line"><a id="l03409" name="l03409"></a><span class="lineno"> 3409</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03410" name="l03410"></a><span class="lineno"> 3410</span> </div>
|
|
<div class="line"><a id="l03411" name="l03411"></a><span class="lineno"> 3411</span> <a class="code hl_class" href="classCatch_1_1WildcardPattern.html">WildcardPattern</a>( std::string <span class="keyword">const</span>& pattern, <a class="code hl_enumeration" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">CaseSensitive</a> caseSensitivity );</div>
|
|
<div class="line"><a id="l03412" name="l03412"></a><span class="lineno"> 3412</span> <span class="keywordtype">bool</span> matches( std::string <span class="keyword">const</span>& str ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03413" name="l03413"></a><span class="lineno"> 3413</span> </div>
|
|
<div class="line"><a id="l03414" name="l03414"></a><span class="lineno"> 3414</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03415" name="l03415"></a><span class="lineno"> 3415</span> std::string normaliseString( std::string <span class="keyword">const</span>& str ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03416" name="l03416"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#aef561aafa0f021653bc6b5806b6d57b0"> 3416</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">CaseSensitive</a> <a class="code hl_variable" href="classCatch_1_1WildcardPattern.html#aef561aafa0f021653bc6b5806b6d57b0">m_caseSensitivity</a>;</div>
|
|
<div class="line"><a id="l03417" name="l03417"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#af74da965b1257c4e958d95da15f30c69"> 3417</a></span> <a class="code hl_enumeration" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadb">WildcardPosition</a> <a class="code hl_variable" href="classCatch_1_1WildcardPattern.html#af74da965b1257c4e958d95da15f30c69">m_wildcard</a> = <a class="code hl_enumvalue" href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba92974148108b6e2e681d4682321b89a1">NoWildcard</a>;</div>
|
|
<div class="line"><a id="l03418" name="l03418"></a><span class="lineno"><a class="line" href="classCatch_1_1WildcardPattern.html#a8b96a014f1194387ce441f8f0c0e8a2e"> 3418</a></span> std::string <a class="code hl_variable" href="classCatch_1_1WildcardPattern.html#a8b96a014f1194387ce441f8f0c0e8a2e">m_pattern</a>;</div>
|
|
<div class="line"><a id="l03419" name="l03419"></a><span class="lineno"> 3419</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03420" name="l03420"></a><span class="lineno"> 3420</span>}</div>
|
|
<div class="line"><a id="l03421" name="l03421"></a><span class="lineno"> 3421</span> </div>
|
|
<div class="line"><a id="l03422" name="l03422"></a><span class="lineno"> 3422</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_WILDCARD_PATTERN_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03423" name="l03423"></a><span class="lineno"> 3423</span> </div>
|
|
<div class="line"><a id="l03424" name="l03424"></a><span class="lineno"> 3424</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l03425" name="l03425"></a><span class="lineno"> 3425</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03426" name="l03426"></a><span class="lineno"> 3426</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l03427" name="l03427"></a><span class="lineno"> 3427</span> </div>
|
|
<div class="line"><a id="l03428" name="l03428"></a><span class="lineno"> 3428</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03429" name="l03429"></a><span class="lineno"> 3429</span> </div>
|
|
<div class="line"><a id="l03430" name="l03430"></a><span class="lineno"> 3430</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l03431" name="l03431"></a><span class="lineno"> 3431</span> <span class="keyword">struct </span>TestCaseInfo;</div>
|
|
<div class="line"><a id="l03432" name="l03432"></a><span class="lineno"> 3432</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l03433" name="l03433"></a><span class="lineno"> 3433</span> </div>
|
|
<div class="foldopen" id="foldopen03434" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03434" name="l03434"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html"> 3434</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1TestSpec.html">TestSpec</a> {</div>
|
|
<div class="line"><a id="l03435" name="l03435"></a><span class="lineno"> 3435</span> </div>
|
|
<div class="foldopen" id="foldopen03436" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03436" name="l03436"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html"> 3436</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Pattern</a> {</div>
|
|
<div class="line"><a id="l03437" name="l03437"></a><span class="lineno"> 3437</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03438" name="l03438"></a><span class="lineno"> 3438</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Pattern</a>( std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#aab90aeef486cbb5993d13a09b0ea2046">name</a> );</div>
|
|
<div class="line"><a id="l03439" name="l03439"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html#a5d2a89cf8fc86dd6430c97d5bcc08c15"> 3439</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a5d2a89cf8fc86dd6430c97d5bcc08c15">~Pattern</a>();</div>
|
|
<div class="line"><a id="l03440" name="l03440"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html#a97a0c28ce8d6f55bad15eed4dd07896c"> 3440</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a97a0c28ce8d6f55bad15eed4dd07896c">matches</a>( <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& testCase ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l03441" name="l03441"></a><span class="lineno"> 3441</span> std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#aab90aeef486cbb5993d13a09b0ea2046">name</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03442" name="l03442"></a><span class="lineno"> 3442</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03443" name="l03443"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html#ae342a06a2d8e91b08e0381f5f744c98c"> 3443</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#ae342a06a2d8e91b08e0381f5f744c98c">serializeTo</a>( std::ostream& out ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l03444" name="l03444"></a><span class="lineno"> 3444</span> <span class="comment">// Writes string that would be reparsed into the pattern</span></div>
|
|
<div class="foldopen" id="foldopen03445" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03445" name="l03445"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html#a367d54387c5ec6714a290fed6fff2f8d"> 3445</a></span> <span class="keyword">friend</span> std::ostream& <a class="code hl_friend" href="classCatch_1_1TestSpec_1_1Pattern.html#a367d54387c5ec6714a290fed6fff2f8d">operator<<</a>(std::ostream& out,</div>
|
|
<div class="line"><a id="l03446" name="l03446"></a><span class="lineno"> 3446</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Pattern</a> <span class="keyword">const</span>& pattern) {</div>
|
|
<div class="line"><a id="l03447" name="l03447"></a><span class="lineno"> 3447</span> pattern.<a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#ae342a06a2d8e91b08e0381f5f744c98c">serializeTo</a>( out );</div>
|
|
<div class="line"><a id="l03448" name="l03448"></a><span class="lineno"> 3448</span> <span class="keywordflow">return</span> out;</div>
|
|
<div class="line"><a id="l03449" name="l03449"></a><span class="lineno"> 3449</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03450" name="l03450"></a><span class="lineno"> 3450</span> </div>
|
|
<div class="line"><a id="l03451" name="l03451"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1Pattern.html#afed21c2b4042fadb0f4ab50d69ec928b"> 3451</a></span> std::string <span class="keyword">const</span> <a class="code hl_variable" href="classCatch_1_1TestSpec_1_1Pattern.html#afed21c2b4042fadb0f4ab50d69ec928b">m_name</a>;</div>
|
|
<div class="line"><a id="l03452" name="l03452"></a><span class="lineno"> 3452</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03453" name="l03453"></a><span class="lineno"> 3453</span> </div>
|
|
<div class="foldopen" id="foldopen03454" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03454" name="l03454"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1NamePattern.html"> 3454</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestSpec_1_1NamePattern.html#a105f14dc1a786334d589cfe211663199">NamePattern</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Pattern</a> {</div>
|
|
<div class="line"><a id="l03455" name="l03455"></a><span class="lineno"> 3455</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03456" name="l03456"></a><span class="lineno"> 3456</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1NamePattern.html#a105f14dc1a786334d589cfe211663199">NamePattern</a>( std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#aab90aeef486cbb5993d13a09b0ea2046">name</a>, std::string <span class="keyword">const</span>& filterString );</div>
|
|
<div class="line"><a id="l03457" name="l03457"></a><span class="lineno"> 3457</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1NamePattern.html#aa48f2bb185ea2fd8c777da0b925d28f7">matches</a>( <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& testCase ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03458" name="l03458"></a><span class="lineno"> 3458</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03459" name="l03459"></a><span class="lineno"> 3459</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1NamePattern.html#ae856d54dea1edfe2adacf4f717250aef">serializeTo</a>( std::ostream& out ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03460" name="l03460"></a><span class="lineno"> 3460</span> </div>
|
|
<div class="line"><a id="l03461" name="l03461"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1NamePattern.html#a2906467f63b2239f4a8cf6211a4bd0e1"> 3461</a></span> <a class="code hl_class" href="classCatch_1_1WildcardPattern.html">WildcardPattern</a> <a class="code hl_variable" href="classCatch_1_1TestSpec_1_1NamePattern.html#a2906467f63b2239f4a8cf6211a4bd0e1">m_wildcardPattern</a>;</div>
|
|
<div class="line"><a id="l03462" name="l03462"></a><span class="lineno"> 3462</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03463" name="l03463"></a><span class="lineno"> 3463</span> </div>
|
|
<div class="foldopen" id="foldopen03464" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03464" name="l03464"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1TagPattern.html"> 3464</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestSpec_1_1TagPattern.html#aa721206ef2031155619bfb7e6d561347">TagPattern</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Pattern</a> {</div>
|
|
<div class="line"><a id="l03465" name="l03465"></a><span class="lineno"> 3465</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03466" name="l03466"></a><span class="lineno"> 3466</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1TagPattern.html#aa721206ef2031155619bfb7e6d561347">TagPattern</a>( std::string <span class="keyword">const</span>& tag, std::string <span class="keyword">const</span>& filterString );</div>
|
|
<div class="line"><a id="l03467" name="l03467"></a><span class="lineno"> 3467</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1TagPattern.html#a5a393a3ce431dc0b74ab6e7650a72b1b">matches</a>( <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& testCase ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03468" name="l03468"></a><span class="lineno"> 3468</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03469" name="l03469"></a><span class="lineno"> 3469</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestSpec_1_1TagPattern.html#a706569dc93f0f5c59c9d5b24e60f4ab4">serializeTo</a>( std::ostream& out ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03470" name="l03470"></a><span class="lineno"> 3470</span> </div>
|
|
<div class="line"><a id="l03471" name="l03471"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec_1_1TagPattern.html#a0f869df564b2f9682899f7e177d88a90"> 3471</a></span> std::string <a class="code hl_variable" href="classCatch_1_1TestSpec_1_1TagPattern.html#a0f869df564b2f9682899f7e177d88a90">m_tag</a>;</div>
|
|
<div class="line"><a id="l03472" name="l03472"></a><span class="lineno"> 3472</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03473" name="l03473"></a><span class="lineno"> 3473</span> </div>
|
|
<div class="foldopen" id="foldopen03474" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03474" name="l03474"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1Filter.html"> 3474</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1TestSpec_1_1Filter.html">Filter</a> {</div>
|
|
<div class="line"><a id="l03475" name="l03475"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1Filter.html#a46f2340492e8cea756b3cd6175cb3cf3"> 3475</a></span> std::vector<Detail::unique_ptr<Pattern>> <a class="code hl_variable" href="structCatch_1_1TestSpec_1_1Filter.html#a46f2340492e8cea756b3cd6175cb3cf3">m_required</a>;</div>
|
|
<div class="line"><a id="l03476" name="l03476"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1Filter.html#a8b8557a6511bcdc4272df2f938b83939"> 3476</a></span> std::vector<Detail::unique_ptr<Pattern>> <a class="code hl_variable" href="structCatch_1_1TestSpec_1_1Filter.html#a8b8557a6511bcdc4272df2f938b83939">m_forbidden</a>;</div>
|
|
<div class="line"><a id="l03477" name="l03477"></a><span class="lineno"> 3477</span></div>
|
|
<div class="line"><a id="l03480" name="l03480"></a><span class="lineno"> 3480</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1TestSpec_1_1Filter.html#aa6f50a5d8e92feba7cf52c43a720c2f8">serializeTo</a>( std::ostream& out ) <span class="keyword">const</span>;</div>
|
|
<div class="foldopen" id="foldopen03481" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03481" name="l03481"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1Filter.html#a9ee701c1a51a7621410ce68aaeaed7a4"> 3481</a></span> <span class="keyword">friend</span> std::ostream& <a class="code hl_friend" href="structCatch_1_1TestSpec_1_1Filter.html#a9ee701c1a51a7621410ce68aaeaed7a4">operator<<</a>(std::ostream& out, <a class="code hl_struct" href="structCatch_1_1TestSpec_1_1Filter.html">Filter</a> <span class="keyword">const</span>& f) {</div>
|
|
<div class="line"><a id="l03482" name="l03482"></a><span class="lineno"> 3482</span> f.<a class="code hl_function" href="structCatch_1_1TestSpec_1_1Filter.html#aa6f50a5d8e92feba7cf52c43a720c2f8">serializeTo</a>( out );</div>
|
|
<div class="line"><a id="l03483" name="l03483"></a><span class="lineno"> 3483</span> <span class="keywordflow">return</span> out;</div>
|
|
<div class="line"><a id="l03484" name="l03484"></a><span class="lineno"> 3484</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03485" name="l03485"></a><span class="lineno"> 3485</span> </div>
|
|
<div class="line"><a id="l03486" name="l03486"></a><span class="lineno"> 3486</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec.html#a2342df9eff2c7db0d26432c1ddef796f">matches</a>( <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& testCase ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03487" name="l03487"></a><span class="lineno"> 3487</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03488" name="l03488"></a><span class="lineno"> 3488</span> </div>
|
|
<div class="line"><a id="l03489" name="l03489"></a><span class="lineno"> 3489</span> <span class="keyword">static</span> std::string extractFilterName( Filter <span class="keyword">const</span>& filter );</div>
|
|
<div class="line"><a id="l03490" name="l03490"></a><span class="lineno"> 3490</span> </div>
|
|
<div class="line"><a id="l03491" name="l03491"></a><span class="lineno"> 3491</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen03492" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03492" name="l03492"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1FilterMatch.html"> 3492</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1TestSpec_1_1FilterMatch.html">FilterMatch</a> {</div>
|
|
<div class="line"><a id="l03493" name="l03493"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1FilterMatch.html#a507d5b197875537d48f900909c617965"> 3493</a></span> std::string <a class="code hl_variable" href="structCatch_1_1TestSpec_1_1FilterMatch.html#a507d5b197875537d48f900909c617965">name</a>;</div>
|
|
<div class="line"><a id="l03494" name="l03494"></a><span class="lineno"><a class="line" href="structCatch_1_1TestSpec_1_1FilterMatch.html#a56135fb7398272959d59817e0f8c2197"> 3494</a></span> std::vector<TestCaseHandle const*> <a class="code hl_variable" href="structCatch_1_1TestSpec_1_1FilterMatch.html#a56135fb7398272959d59817e0f8c2197">tests</a>;</div>
|
|
<div class="line"><a id="l03495" name="l03495"></a><span class="lineno"> 3495</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03496" name="l03496"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#a06b08ac127c37d48a4353f34bf20c0e3"> 3496</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1TestSpec.html#a06b08ac127c37d48a4353f34bf20c0e3">Matches</a> = std::vector<FilterMatch>;</div>
|
|
<div class="line"><a id="l03497" name="l03497"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#a8fca1c29ab3a21ea943f724ab0ecce08"> 3497</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1TestSpec.html#a8fca1c29ab3a21ea943f724ab0ecce08">vectorStrings</a> = std::vector<std::string>;</div>
|
|
<div class="line"><a id="l03498" name="l03498"></a><span class="lineno"> 3498</span> </div>
|
|
<div class="line"><a id="l03499" name="l03499"></a><span class="lineno"> 3499</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec.html#ac6d69b4a19677d95e46af0467fc72ecd">hasFilters</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03500" name="l03500"></a><span class="lineno"> 3500</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1TestSpec.html#a2342df9eff2c7db0d26432c1ddef796f">matches</a>( <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& testCase ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03501" name="l03501"></a><span class="lineno"> 3501</span> <a class="code hl_typedef" href="classCatch_1_1TestSpec.html#a06b08ac127c37d48a4353f34bf20c0e3">Matches</a> <a class="code hl_function" href="classCatch_1_1TestSpec.html#ae62a33926c9c2c3ab5b6f27a9e7aa484">matchesByFilter</a>( std::vector<TestCaseHandle> <span class="keyword">const</span>& testCases, <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> <span class="keyword">const</span>& config ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03502" name="l03502"></a><span class="lineno"> 3502</span> <span class="keyword">const</span> <a class="code hl_typedef" href="classCatch_1_1TestSpec.html#a8fca1c29ab3a21ea943f724ab0ecce08">vectorStrings</a> & <a class="code hl_function" href="classCatch_1_1TestSpec.html#ae6af81e7e267ae9a374d3f4ce0f9b88a">getInvalidSpecs</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03503" name="l03503"></a><span class="lineno"> 3503</span> </div>
|
|
<div class="line"><a id="l03504" name="l03504"></a><span class="lineno"> 3504</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03505" name="l03505"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#afe0c1e198e82143eae0fce3d7be0453d"> 3505</a></span> std::vector<Filter> <a class="code hl_variable" href="classCatch_1_1TestSpec.html#afe0c1e198e82143eae0fce3d7be0453d">m_filters</a>;</div>
|
|
<div class="line"><a id="l03506" name="l03506"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#ac05f6fc74f457794b9f6dff95ec7ea7a"> 3506</a></span> std::vector<std::string> <a class="code hl_variable" href="classCatch_1_1TestSpec.html#ac05f6fc74f457794b9f6dff95ec7ea7a">m_invalidSpecs</a>;</div>
|
|
<div class="line"><a id="l03507" name="l03507"></a><span class="lineno"> 3507</span> </div>
|
|
<div class="line"><a id="l03508" name="l03508"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#a8b4fea0f5a37c5ef447eddceacf113a7"> 3508</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classCatch_1_1TestSpec.html#a8b4fea0f5a37c5ef447eddceacf113a7">TestSpecParser</a>;</div>
|
|
<div class="line"><a id="l03511" name="l03511"></a><span class="lineno"> 3511</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestSpec.html#afc031d95269ce917dde9ff113c597caf">serializeTo</a>( std::ostream& out ) <span class="keyword">const</span>;</div>
|
|
<div class="foldopen" id="foldopen03512" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03512" name="l03512"></a><span class="lineno"><a class="line" href="classCatch_1_1TestSpec.html#a2e48bf00322a3a2f9a4a9f207d6da096"> 3512</a></span> <span class="keyword">friend</span> std::ostream& <a class="code hl_friend" href="classCatch_1_1TestSpec.html#a2e48bf00322a3a2f9a4a9f207d6da096">operator<<</a>(std::ostream& out,</div>
|
|
<div class="line"><a id="l03513" name="l03513"></a><span class="lineno"> 3513</span> <a class="code hl_class" href="classCatch_1_1TestSpec.html">TestSpec</a> <span class="keyword">const</span>& spec) {</div>
|
|
<div class="line"><a id="l03514" name="l03514"></a><span class="lineno"> 3514</span> spec.<a class="code hl_function" href="classCatch_1_1TestSpec.html#afc031d95269ce917dde9ff113c597caf">serializeTo</a>( out );</div>
|
|
<div class="line"><a id="l03515" name="l03515"></a><span class="lineno"> 3515</span> <span class="keywordflow">return</span> out;</div>
|
|
<div class="line"><a id="l03516" name="l03516"></a><span class="lineno"> 3516</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03517" name="l03517"></a><span class="lineno"> 3517</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03518" name="l03518"></a><span class="lineno"> 3518</span>}</div>
|
|
<div class="line"><a id="l03519" name="l03519"></a><span class="lineno"> 3519</span> </div>
|
|
<div class="line"><a id="l03520" name="l03520"></a><span class="lineno"> 3520</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l03521" name="l03521"></a><span class="lineno"> 3521</span><span class="preprocessor">#pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l03522" name="l03522"></a><span class="lineno"> 3522</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03523" name="l03523"></a><span class="lineno"> 3523</span> </div>
|
|
<div class="line"><a id="l03524" name="l03524"></a><span class="lineno"> 3524</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_SPEC_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03525" name="l03525"></a><span class="lineno"> 3525</span> </div>
|
|
<div class="line"><a id="l03526" name="l03526"></a><span class="lineno"> 3526</span> </div>
|
|
<div class="line"><a id="l03527" name="l03527"></a><span class="lineno"> 3527</span><span class="preprocessor">#ifndef CATCH_OPTIONAL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03528" name="l03528"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa8bc6160e5a0a7310cd622bfc9e858fa"> 3528</a></span><span class="preprocessor">#define CATCH_OPTIONAL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03529" name="l03529"></a><span class="lineno"> 3529</span> </div>
|
|
<div class="line"><a id="l03530" name="l03530"></a><span class="lineno"> 3530</span> </div>
|
|
<div class="line"><a id="l03531" name="l03531"></a><span class="lineno"> 3531</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l03532" name="l03532"></a><span class="lineno"> 3532</span> </div>
|
|
<div class="line"><a id="l03533" name="l03533"></a><span class="lineno"> 3533</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03534" name="l03534"></a><span class="lineno"> 3534</span> </div>
|
|
<div class="line"><a id="l03535" name="l03535"></a><span class="lineno"> 3535</span> <span class="comment">// An optional type</span></div>
|
|
<div class="line"><a id="l03536" name="l03536"></a><span class="lineno"> 3536</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen03537" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03537" name="l03537"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html"> 3537</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> {</div>
|
|
<div class="line"><a id="l03538" name="l03538"></a><span class="lineno"> 3538</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03539" name="l03539"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187"> 3539</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>(): <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>( nullptr ) {}</div>
|
|
<div class="line"><a id="l03540" name="l03540"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a4d8e2b6e96fe4156e1ff6c7eb6a47176"> 3540</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#a4d8e2b6e96fe4156e1ff6c7eb6a47176">~Optional</a>() { <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>(); }</div>
|
|
<div class="line"><a id="l03541" name="l03541"></a><span class="lineno"> 3541</span> </div>
|
|
<div class="foldopen" id="foldopen03542" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03542" name="l03542"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a11640fe6b19a9d2ecdfd1704a47d4a6b"> 3542</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#a11640fe6b19a9d2ecdfd1704a47d4a6b">Optional</a>( T <span class="keyword">const</span>& _value ):</div>
|
|
<div class="line"><a id="l03543" name="l03543"></a><span class="lineno"> 3543</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>( new ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( _value ) ) {}</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03544" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03544" name="l03544"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a963601c7cbbd0ce468fd07916cd1d991"> 3544</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#a963601c7cbbd0ce468fd07916cd1d991">Optional</a>( T&& _value ):</div>
|
|
<div class="line"><a id="l03545" name="l03545"></a><span class="lineno"> 3545</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>( new ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( _value ) ) ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03546" name="l03546"></a><span class="lineno"> 3546</span> </div>
|
|
<div class="foldopen" id="foldopen03547" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03547" name="l03547"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a3407e0994fe2e46eb3a333f78c21cadf"> 3547</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>& <a class="code hl_function" href="classCatch_1_1Optional.html#a3407e0994fe2e46eb3a333f78c21cadf">operator=</a>( T <span class="keyword">const</span>& _value ) {</div>
|
|
<div class="line"><a id="l03548" name="l03548"></a><span class="lineno"> 3548</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>();</div>
|
|
<div class="line"><a id="l03549" name="l03549"></a><span class="lineno"> 3549</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> = <span class="keyword">new</span> ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( _value );</div>
|
|
<div class="line"><a id="l03550" name="l03550"></a><span class="lineno"> 3550</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03551" name="l03551"></a><span class="lineno"> 3551</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03552" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03552" name="l03552"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a5a9aa5d9ddd0a03bbde2119ae1a3290d"> 3552</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>& <a class="code hl_function" href="classCatch_1_1Optional.html#a5a9aa5d9ddd0a03bbde2119ae1a3290d">operator=</a>( T&& _value ) {</div>
|
|
<div class="line"><a id="l03553" name="l03553"></a><span class="lineno"> 3553</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>();</div>
|
|
<div class="line"><a id="l03554" name="l03554"></a><span class="lineno"> 3554</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> = <span class="keyword">new</span> ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( _value ) );</div>
|
|
<div class="line"><a id="l03555" name="l03555"></a><span class="lineno"> 3555</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03556" name="l03556"></a><span class="lineno"> 3556</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03557" name="l03557"></a><span class="lineno"> 3557</span> </div>
|
|
<div class="foldopen" id="foldopen03558" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03558" name="l03558"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#af6ee253a7322440833f4aa52624adead"> 3558</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#af6ee253a7322440833f4aa52624adead">Optional</a>( <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& _other ):</div>
|
|
<div class="line"><a id="l03559" name="l03559"></a><span class="lineno"> 3559</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>( _other ? new ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( *_other ) : nullptr ) {}</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03560" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03560" name="l03560"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#ac685eb1a7d000aee65cee303adaed49b"> 3560</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#ac685eb1a7d000aee65cee303adaed49b">Optional</a>( <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>&& _other ):</div>
|
|
<div class="line"><a id="l03561" name="l03561"></a><span class="lineno"> 3561</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>( _other ? new ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( *_other ) )</div>
|
|
<div class="line"><a id="l03562" name="l03562"></a><span class="lineno"> 3562</span> : nullptr ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03563" name="l03563"></a><span class="lineno"> 3563</span> </div>
|
|
<div class="foldopen" id="foldopen03564" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03564" name="l03564"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a6d145286d1378bc01b4239101d472da6"> 3564</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>& <a class="code hl_function" href="classCatch_1_1Optional.html#a6d145286d1378bc01b4239101d472da6">operator=</a>( <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& _other ) {</div>
|
|
<div class="line"><a id="l03565" name="l03565"></a><span class="lineno"> 3565</span> <span class="keywordflow">if</span> ( &_other != <span class="keyword">this</span> ) {</div>
|
|
<div class="line"><a id="l03566" name="l03566"></a><span class="lineno"> 3566</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>();</div>
|
|
<div class="line"><a id="l03567" name="l03567"></a><span class="lineno"> 3567</span> <span class="keywordflow">if</span> ( _other ) { <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> = <span class="keyword">new</span> ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( *_other ); }</div>
|
|
<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"> 3568</span> }</div>
|
|
<div class="line"><a id="l03569" name="l03569"></a><span class="lineno"> 3569</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03570" name="l03570"></a><span class="lineno"> 3570</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03571" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03571" name="l03571"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#aec0083bc2eb795be370f93811dda4716"> 3571</a></span> <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>& <a class="code hl_function" href="classCatch_1_1Optional.html#aec0083bc2eb795be370f93811dda4716">operator=</a>( <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a>&& _other ) {</div>
|
|
<div class="line"><a id="l03572" name="l03572"></a><span class="lineno"> 3572</span> <span class="keywordflow">if</span> ( &_other != <span class="keyword">this</span> ) {</div>
|
|
<div class="line"><a id="l03573" name="l03573"></a><span class="lineno"> 3573</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>();</div>
|
|
<div class="line"><a id="l03574" name="l03574"></a><span class="lineno"> 3574</span> <span class="keywordflow">if</span> ( _other ) {</div>
|
|
<div class="line"><a id="l03575" name="l03575"></a><span class="lineno"> 3575</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> = <span class="keyword">new</span> ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( *_other ) );</div>
|
|
<div class="line"><a id="l03576" name="l03576"></a><span class="lineno"> 3576</span> }</div>
|
|
<div class="line"><a id="l03577" name="l03577"></a><span class="lineno"> 3577</span> }</div>
|
|
<div class="line"><a id="l03578" name="l03578"></a><span class="lineno"> 3578</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03579" name="l03579"></a><span class="lineno"> 3579</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03580" name="l03580"></a><span class="lineno"> 3580</span> </div>
|
|
<div class="foldopen" id="foldopen03581" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03581" name="l03581"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705"> 3581</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">reset</a>() {</div>
|
|
<div class="line"><a id="l03582" name="l03582"></a><span class="lineno"> 3582</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> ) { <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>->~T(); }</div>
|
|
<div class="line"><a id="l03583" name="l03583"></a><span class="lineno"> 3583</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l03584" name="l03584"></a><span class="lineno"> 3584</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03585" name="l03585"></a><span class="lineno"> 3585</span> </div>
|
|
<div class="foldopen" id="foldopen03586" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03586" name="l03586"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a2e786500fe59b1a006c4a59ccc068303"> 3586</a></span> T& <a class="code hl_function" href="classCatch_1_1Optional.html#a2e786500fe59b1a006c4a59ccc068303">operator*</a>() {</div>
|
|
<div class="line"><a id="l03587" name="l03587"></a><span class="lineno"> 3587</span> assert(<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>);</div>
|
|
<div class="line"><a id="l03588" name="l03588"></a><span class="lineno"> 3588</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>;</div>
|
|
<div class="line"><a id="l03589" name="l03589"></a><span class="lineno"> 3589</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03590" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03590" name="l03590"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a1cd2d43cdf6c3942d9697d05bccfb5bf"> 3590</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Optional.html#a1cd2d43cdf6c3942d9697d05bccfb5bf">operator*</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03591" name="l03591"></a><span class="lineno"> 3591</span> assert(<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>);</div>
|
|
<div class="line"><a id="l03592" name="l03592"></a><span class="lineno"> 3592</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>;</div>
|
|
<div class="line"><a id="l03593" name="l03593"></a><span class="lineno"> 3593</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03594" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03594" name="l03594"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a28ad04d25eaab682db6689ec0f2cb0ce"> 3594</a></span> T* <a class="code hl_function" href="classCatch_1_1Optional.html#a28ad04d25eaab682db6689ec0f2cb0ce">operator-></a>() {</div>
|
|
<div class="line"><a id="l03595" name="l03595"></a><span class="lineno"> 3595</span> assert(<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>);</div>
|
|
<div class="line"><a id="l03596" name="l03596"></a><span class="lineno"> 3596</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>;</div>
|
|
<div class="line"><a id="l03597" name="l03597"></a><span class="lineno"> 3597</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03598" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03598" name="l03598"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#ae295c76939d8f51b51d2790e40dc7eda"> 3598</a></span> <span class="keyword">const</span> T* <a class="code hl_function" href="classCatch_1_1Optional.html#ae295c76939d8f51b51d2790e40dc7eda">operator-></a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03599" name="l03599"></a><span class="lineno"> 3599</span> assert(<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>);</div>
|
|
<div class="line"><a id="l03600" name="l03600"></a><span class="lineno"> 3600</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>;</div>
|
|
<div class="line"><a id="l03601" name="l03601"></a><span class="lineno"> 3601</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03602" name="l03602"></a><span class="lineno"> 3602</span> </div>
|
|
<div class="foldopen" id="foldopen03603" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03603" name="l03603"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#aa528301eb45724cf1db1b2c7123778f3"> 3603</a></span> T <a class="code hl_function" href="classCatch_1_1Optional.html#aa528301eb45724cf1db1b2c7123778f3">valueOr</a>( T <span class="keyword">const</span>& defaultValue )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03604" name="l03604"></a><span class="lineno"> 3604</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> ? *<a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> : defaultValue;</div>
|
|
<div class="line"><a id="l03605" name="l03605"></a><span class="lineno"> 3605</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03606" name="l03606"></a><span class="lineno"> 3606</span> </div>
|
|
<div class="line"><a id="l03607" name="l03607"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1"> 3607</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1">some</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> != <span class="keyword">nullptr</span>; }</div>
|
|
<div class="line"><a id="l03608" name="l03608"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a4761d94b45a205bb9b5e7408e6cf963d"> 3608</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a4761d94b45a205bb9b5e7408e6cf963d">none</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> == <span class="keyword">nullptr</span>; }</div>
|
|
<div class="line"><a id="l03609" name="l03609"></a><span class="lineno"> 3609</span> </div>
|
|
<div class="line"><a id="l03610" name="l03610"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#af1e6fe8bb147e12cf285a6f6e398c16d"> 3610</a></span> <span class="keywordtype">bool</span> operator !()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a> == <span class="keyword">nullptr</span>; }</div>
|
|
<div class="foldopen" id="foldopen03611" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03611" name="l03611"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#ab65856f129233f69a4dd5efece1117b2"> 3611</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03612" name="l03612"></a><span class="lineno"> 3612</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1">some</a>();</div>
|
|
<div class="line"><a id="l03613" name="l03613"></a><span class="lineno"> 3613</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03614" name="l03614"></a><span class="lineno"> 3614</span> </div>
|
|
<div class="foldopen" id="foldopen03615" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03615" name="l03615"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a8b50f316f18ebb56b8b510158ea3f328"> 3615</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="classCatch_1_1Optional.html#a8b50f316f18ebb56b8b510158ea3f328">operator==</a>(<a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& a, <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& b) {</div>
|
|
<div class="line"><a id="l03616" name="l03616"></a><span class="lineno"> 3616</span> <span class="keywordflow">if</span> (a.<a class="code hl_function" href="classCatch_1_1Optional.html#a4761d94b45a205bb9b5e7408e6cf963d">none</a>() && b.<a class="code hl_function" href="classCatch_1_1Optional.html#a4761d94b45a205bb9b5e7408e6cf963d">none</a>()) {</div>
|
|
<div class="line"><a id="l03617" name="l03617"></a><span class="lineno"> 3617</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l03618" name="l03618"></a><span class="lineno"> 3618</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (a.<a class="code hl_function" href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1">some</a>() && b.<a class="code hl_function" href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1">some</a>()) {</div>
|
|
<div class="line"><a id="l03619" name="l03619"></a><span class="lineno"> 3619</span> <span class="keywordflow">return</span> *a == *b;</div>
|
|
<div class="line"><a id="l03620" name="l03620"></a><span class="lineno"> 3620</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l03621" name="l03621"></a><span class="lineno"> 3621</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03622" name="l03622"></a><span class="lineno"> 3622</span> }</div>
|
|
<div class="line"><a id="l03623" name="l03623"></a><span class="lineno"> 3623</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03624" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03624" name="l03624"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a093e7b10b13367c45f797a9539058591"> 3624</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="classCatch_1_1Optional.html#a093e7b10b13367c45f797a9539058591">operator!=</a>(<a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& a, <a class="code hl_function" href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Optional</a> <span class="keyword">const</span>& b) {</div>
|
|
<div class="line"><a id="l03625" name="l03625"></a><span class="lineno"> 3625</span> <span class="keywordflow">return</span> !( a == b );</div>
|
|
<div class="line"><a id="l03626" name="l03626"></a><span class="lineno"> 3626</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03627" name="l03627"></a><span class="lineno"> 3627</span> </div>
|
|
<div class="line"><a id="l03628" name="l03628"></a><span class="lineno"> 3628</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03629" name="l03629"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50"> 3629</a></span> T* <a class="code hl_variable" href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">nullableValue</a>;</div>
|
|
<div class="line"><a id="l03630" name="l03630"></a><span class="lineno"><a class="line" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378"> 3630</a></span> <span class="keyword">alignas</span>(<span class="keyword">alignof</span>(T)) <span class="keywordtype">char</span> <a class="code hl_variable" href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">storage</a>[<span class="keyword">sizeof</span>(T)];</div>
|
|
<div class="line"><a id="l03631" name="l03631"></a><span class="lineno"> 3631</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03632" name="l03632"></a><span class="lineno"> 3632</span> </div>
|
|
<div class="line"><a id="l03633" name="l03633"></a><span class="lineno"> 3633</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03634" name="l03634"></a><span class="lineno"> 3634</span> </div>
|
|
<div class="line"><a id="l03635" name="l03635"></a><span class="lineno"> 3635</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_OPTIONAL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03636" name="l03636"></a><span class="lineno"> 3636</span> </div>
|
|
<div class="line"><a id="l03637" name="l03637"></a><span class="lineno"> 3637</span> </div>
|
|
<div class="line"><a id="l03638" name="l03638"></a><span class="lineno"> 3638</span><span class="preprocessor">#ifndef CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03639" name="l03639"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac320fa2249227eb87743e7eb7e8e842c"> 3639</a></span><span class="preprocessor">#define CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03640" name="l03640"></a><span class="lineno"> 3640</span> </div>
|
|
<div class="line"><a id="l03641" name="l03641"></a><span class="lineno"> 3641</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l03642" name="l03642"></a><span class="lineno"> 3642</span> </div>
|
|
<div class="line"><a id="l03643" name="l03643"></a><span class="lineno"> 3643</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03644" name="l03644"></a><span class="lineno"> 3644</span> </div>
|
|
<div class="foldopen" id="foldopen03645" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03645" name="l03645"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3d"> 3645</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3d">GenerateFrom</a> {</div>
|
|
<div class="line"><a id="l03646" name="l03646"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3daa76d4ef5f3f6a672bbfab2865563e530"> 3646</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3daa76d4ef5f3f6a672bbfab2865563e530">Time</a>,</div>
|
|
<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da96799ffde92d497a6509cb4e124eb66a"> 3647</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da96799ffde92d497a6509cb4e124eb66a">RandomDevice</a>,</div>
|
|
<div class="line"><a id="l03649" name="l03649"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da7a1920d61156abc05a60135aefe8bc67"> 3649</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da7a1920d61156abc05a60135aefe8bc67">Default</a></div>
|
|
<div class="line"><a id="l03650" name="l03650"></a><span class="lineno"> 3650</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03651" name="l03651"></a><span class="lineno"> 3651</span> </div>
|
|
<div class="line"><a id="l03652" name="l03652"></a><span class="lineno"> 3652</span> std::uint32_t generateRandomSeed(GenerateFrom from);</div>
|
|
<div class="line"><a id="l03653" name="l03653"></a><span class="lineno"> 3653</span> </div>
|
|
<div class="line"><a id="l03654" name="l03654"></a><span class="lineno"> 3654</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03655" name="l03655"></a><span class="lineno"> 3655</span> </div>
|
|
<div class="line"><a id="l03656" name="l03656"></a><span class="lineno"> 3656</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03657" name="l03657"></a><span class="lineno"> 3657</span> </div>
|
|
<div class="line"><a id="l03658" name="l03658"></a><span class="lineno"> 3658</span> </div>
|
|
<div class="line"><a id="l03659" name="l03659"></a><span class="lineno"> 3659</span><span class="preprocessor">#ifndef CATCH_REPORTER_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03660" name="l03660"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aefabc99ca6da2fe6f0e3d556a187186c"> 3660</a></span><span class="preprocessor">#define CATCH_REPORTER_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03661" name="l03661"></a><span class="lineno"> 3661</span> </div>
|
|
<div class="line"><a id="l03662" name="l03662"></a><span class="lineno"> 3662</span> </div>
|
|
<div class="line"><a id="l03663" name="l03663"></a><span class="lineno"> 3663</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l03664" name="l03664"></a><span class="lineno"> 3664</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03665" name="l03665"></a><span class="lineno"> 3665</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l03666" name="l03666"></a><span class="lineno"> 3666</span> </div>
|
|
<div class="line"><a id="l03667" name="l03667"></a><span class="lineno"> 3667</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03668" name="l03668"></a><span class="lineno"> 3668</span> </div>
|
|
<div class="line"><a id="l03669" name="l03669"></a><span class="lineno"> 3669</span> <span class="keyword">enum class</span> ColourMode : std::uint8_t;</div>
|
|
<div class="line"><a id="l03670" name="l03670"></a><span class="lineno"> 3670</span> </div>
|
|
<div class="line"><a id="l03671" name="l03671"></a><span class="lineno"> 3671</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l03673" name="l03673"></a><span class="lineno"> 3673</span> std::vector<std::string> splitReporterSpec( StringRef reporterSpec );</div>
|
|
<div class="line"><a id="l03674" name="l03674"></a><span class="lineno"> 3674</span> </div>
|
|
<div class="line"><a id="l03675" name="l03675"></a><span class="lineno"> 3675</span> Optional<ColourMode> stringToColourMode( StringRef colourMode );</div>
|
|
<div class="line"><a id="l03676" name="l03676"></a><span class="lineno"> 3676</span> }</div>
|
|
<div class="line"><a id="l03677" name="l03677"></a><span class="lineno"> 3677</span></div>
|
|
<div class="foldopen" id="foldopen03686" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03686" name="l03686"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html"> 3686</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">ReporterSpec</a> {</div>
|
|
<div class="line"><a id="l03687" name="l03687"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#ad80296f4842b1232146c18fced36aaff"> 3687</a></span> std::string <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#ad80296f4842b1232146c18fced36aaff">m_name</a>;</div>
|
|
<div class="line"><a id="l03688" name="l03688"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#ad98793da3055504211331d3fba6999ac"> 3688</a></span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<std::string></a> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#ad98793da3055504211331d3fba6999ac">m_outputFileName</a>;</div>
|
|
<div class="line"><a id="l03689" name="l03689"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a07dad08f0c82e235fe1cc9b0ec32f838"> 3689</a></span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<ColourMode></a> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#a07dad08f0c82e235fe1cc9b0ec32f838">m_colourMode</a>;</div>
|
|
<div class="line"><a id="l03690" name="l03690"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a0e5fa7c1edb8caebfd9468cbb5742942"> 3690</a></span> std::map<std::string, std::string> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#a0e5fa7c1edb8caebfd9468cbb5742942">m_customOptions</a>;</div>
|
|
<div class="line"><a id="l03691" name="l03691"></a><span class="lineno"> 3691</span> </div>
|
|
<div class="line"><a id="l03692" name="l03692"></a><span class="lineno"> 3692</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="classCatch_1_1ReporterSpec.html#a5ed5c5634c667d64dfc4a18a9534404b">operator==</a>( <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">ReporterSpec</a> <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l03693" name="l03693"></a><span class="lineno"> 3693</span> <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">ReporterSpec</a> <span class="keyword">const</span>& rhs );</div>
|
|
<div class="foldopen" id="foldopen03694" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03694" name="l03694"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a71b0055588d164144557dbdfcc529ed4"> 3694</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="classCatch_1_1ReporterSpec.html#a71b0055588d164144557dbdfcc529ed4">operator!=</a>( <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">ReporterSpec</a> <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l03695" name="l03695"></a><span class="lineno"> 3695</span> <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">ReporterSpec</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03696" name="l03696"></a><span class="lineno"> 3696</span> <span class="keywordflow">return</span> !( lhs == rhs );</div>
|
|
<div class="line"><a id="l03697" name="l03697"></a><span class="lineno"> 3697</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03698" name="l03698"></a><span class="lineno"> 3698</span> </div>
|
|
<div class="line"><a id="l03699" name="l03699"></a><span class="lineno"> 3699</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03700" name="l03700"></a><span class="lineno"> 3700</span> <a class="code hl_class" href="classCatch_1_1ReporterSpec.html">ReporterSpec</a>(</div>
|
|
<div class="line"><a id="l03701" name="l03701"></a><span class="lineno"> 3701</span> std::string name,</div>
|
|
<div class="line"><a id="l03702" name="l03702"></a><span class="lineno"> 3702</span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<std::string></a> outputFileName,</div>
|
|
<div class="line"><a id="l03703" name="l03703"></a><span class="lineno"> 3703</span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<ColourMode></a> colourMode,</div>
|
|
<div class="line"><a id="l03704" name="l03704"></a><span class="lineno"> 3704</span> std::map<std::string, std::string> customOptions );</div>
|
|
<div class="line"><a id="l03705" name="l03705"></a><span class="lineno"> 3705</span> </div>
|
|
<div class="line"><a id="l03706" name="l03706"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a8767d90584b1feaccb75d157045c5e7a"> 3706</a></span> std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#a8767d90584b1feaccb75d157045c5e7a">name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#ad80296f4842b1232146c18fced36aaff">m_name</a>; }</div>
|
|
<div class="line"><a id="l03707" name="l03707"></a><span class="lineno"> 3707</span> </div>
|
|
<div class="foldopen" id="foldopen03708" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03708" name="l03708"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a80f4deef91e481a8cf33780cac44aa98"> 3708</a></span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<std::string></a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#a80f4deef91e481a8cf33780cac44aa98">outputFile</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03709" name="l03709"></a><span class="lineno"> 3709</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#ad98793da3055504211331d3fba6999ac">m_outputFileName</a>;</div>
|
|
<div class="line"><a id="l03710" name="l03710"></a><span class="lineno"> 3710</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03711" name="l03711"></a><span class="lineno"> 3711</span> </div>
|
|
<div class="line"><a id="l03712" name="l03712"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a0371ae20e7e8589beb12a5e3be964f3d"> 3712</a></span> <a class="code hl_class" href="classCatch_1_1Optional.html">Optional<ColourMode></a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#a0371ae20e7e8589beb12a5e3be964f3d">colourMode</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#a07dad08f0c82e235fe1cc9b0ec32f838">m_colourMode</a>; }</div>
|
|
<div class="line"><a id="l03713" name="l03713"></a><span class="lineno"> 3713</span> </div>
|
|
<div class="foldopen" id="foldopen03714" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03714" name="l03714"></a><span class="lineno"><a class="line" href="classCatch_1_1ReporterSpec.html#a6ffea7ca24daf1d8d1b64e434b61dcc0"> 3714</a></span> std::map<std::string, std::string> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1ReporterSpec.html#a6ffea7ca24daf1d8d1b64e434b61dcc0">customOptions</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03715" name="l03715"></a><span class="lineno"> 3715</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ReporterSpec.html#a0e5fa7c1edb8caebfd9468cbb5742942">m_customOptions</a>;</div>
|
|
<div class="line"><a id="l03716" name="l03716"></a><span class="lineno"> 3716</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03717" name="l03717"></a><span class="lineno"> 3717</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03718" name="l03718"></a><span class="lineno"> 3718</span></div>
|
|
<div class="line"><a id="l03729" name="l03729"></a><span class="lineno"> 3729</span> Optional<ReporterSpec> parseReporterSpec( StringRef reporterSpec );</div>
|
|
<div class="line"><a id="l03730" name="l03730"></a><span class="lineno"> 3730</span> </div>
|
|
<div class="line"><a id="l03731" name="l03731"></a><span class="lineno"> 3731</span>}</div>
|
|
<div class="line"><a id="l03732" name="l03732"></a><span class="lineno"> 3732</span> </div>
|
|
<div class="line"><a id="l03733" name="l03733"></a><span class="lineno"> 3733</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03734" name="l03734"></a><span class="lineno"> 3734</span> </div>
|
|
<div class="line"><a id="l03735" name="l03735"></a><span class="lineno"> 3735</span><span class="preprocessor">#include <chrono></span></div>
|
|
<div class="line"><a id="l03736" name="l03736"></a><span class="lineno"> 3736</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l03737" name="l03737"></a><span class="lineno"> 3737</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03738" name="l03738"></a><span class="lineno"> 3738</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l03739" name="l03739"></a><span class="lineno"> 3739</span> </div>
|
|
<div class="line"><a id="l03740" name="l03740"></a><span class="lineno"> 3740</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l03741" name="l03741"></a><span class="lineno"> 3741</span> </div>
|
|
<div class="line"><a id="l03742" name="l03742"></a><span class="lineno"> 3742</span> <span class="keyword">class </span>IStream;</div>
|
|
<div class="line"><a id="l03743" name="l03743"></a><span class="lineno"> 3743</span></div>
|
|
<div class="foldopen" id="foldopen03749" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03749" name="l03749"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html"> 3749</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ProcessedReporterSpec.html">ProcessedReporterSpec</a> {</div>
|
|
<div class="line"><a id="l03750" name="l03750"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html#aa783d13dc949a4f97a9949fe6986765f"> 3750</a></span> std::string <a class="code hl_variable" href="structCatch_1_1ProcessedReporterSpec.html#aa783d13dc949a4f97a9949fe6986765f">name</a>;</div>
|
|
<div class="line"><a id="l03751" name="l03751"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html#a50eea1b716979aedede2073523573cc2"> 3751</a></span> std::string <a class="code hl_variable" href="structCatch_1_1ProcessedReporterSpec.html#a50eea1b716979aedede2073523573cc2">outputFilename</a>;</div>
|
|
<div class="line"><a id="l03752" name="l03752"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html#ad17b305aa863b41fadf2dc45f45a1952"> 3752</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> <a class="code hl_variable" href="structCatch_1_1ProcessedReporterSpec.html#ad17b305aa863b41fadf2dc45f45a1952">colourMode</a>;</div>
|
|
<div class="line"><a id="l03753" name="l03753"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html#aaaeead5abd0ff72b8a1837b23243336a"> 3753</a></span> std::map<std::string, std::string> <a class="code hl_variable" href="structCatch_1_1ProcessedReporterSpec.html#aaaeead5abd0ff72b8a1837b23243336a">customOptions</a>;</div>
|
|
<div class="line"><a id="l03754" name="l03754"></a><span class="lineno"> 3754</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structCatch_1_1ProcessedReporterSpec.html#ada33772e67fb6f1d76e6b3895e5451cb">operator==</a>( <a class="code hl_struct" href="structCatch_1_1ProcessedReporterSpec.html">ProcessedReporterSpec</a> <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l03755" name="l03755"></a><span class="lineno"> 3755</span> <a class="code hl_struct" href="structCatch_1_1ProcessedReporterSpec.html">ProcessedReporterSpec</a> <span class="keyword">const</span>& rhs );</div>
|
|
<div class="foldopen" id="foldopen03756" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03756" name="l03756"></a><span class="lineno"><a class="line" href="structCatch_1_1ProcessedReporterSpec.html#a73a55f2b78f865d8445c897acf1595e9"> 3756</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structCatch_1_1ProcessedReporterSpec.html#a73a55f2b78f865d8445c897acf1595e9">operator!=</a>( <a class="code hl_struct" href="structCatch_1_1ProcessedReporterSpec.html">ProcessedReporterSpec</a> <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l03757" name="l03757"></a><span class="lineno"> 3757</span> <a class="code hl_struct" href="structCatch_1_1ProcessedReporterSpec.html">ProcessedReporterSpec</a> <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l03758" name="l03758"></a><span class="lineno"> 3758</span> <span class="keywordflow">return</span> !( lhs == rhs );</div>
|
|
<div class="line"><a id="l03759" name="l03759"></a><span class="lineno"> 3759</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03760" name="l03760"></a><span class="lineno"> 3760</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03761" name="l03761"></a><span class="lineno"> 3761</span> </div>
|
|
<div class="foldopen" id="foldopen03762" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03762" name="l03762"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html"> 3762</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a> {</div>
|
|
<div class="line"><a id="l03763" name="l03763"></a><span class="lineno"> 3763</span> </div>
|
|
<div class="line"><a id="l03764" name="l03764"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a0da0f6d493ef8f799273b4358d420a3a"> 3764</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a0da0f6d493ef8f799273b4358d420a3a">listTests</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03765" name="l03765"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#af780422bdef8d8b905204542855cf6b3"> 3765</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#af780422bdef8d8b905204542855cf6b3">listTags</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03766" name="l03766"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a4ba3618cae31b43237724f55359bfe95"> 3766</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a4ba3618cae31b43237724f55359bfe95">listReporters</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03767" name="l03767"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a4c28063ebb7747e0d1292d88c6c815c5"> 3767</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a4c28063ebb7747e0d1292d88c6c815c5">listListeners</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03768" name="l03768"></a><span class="lineno"> 3768</span> </div>
|
|
<div class="line"><a id="l03769" name="l03769"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#aeb091ca2df2c654caaa2ad29c14578e5"> 3769</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#aeb091ca2df2c654caaa2ad29c14578e5">showSuccessfulTests</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03770" name="l03770"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#afec8310b1904784edb292e143a602fba"> 3770</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#afec8310b1904784edb292e143a602fba">shouldDebugBreak</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03771" name="l03771"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a6dd23f8c9d9337f46187e7dbb6a8328e"> 3771</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a6dd23f8c9d9337f46187e7dbb6a8328e">noThrow</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03772" name="l03772"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a12535241547dfc57e6864c4fc2cd4dd9"> 3772</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a12535241547dfc57e6864c4fc2cd4dd9">showHelp</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03773" name="l03773"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a3c243de7a5957fa5311167039064379c"> 3773</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a3c243de7a5957fa5311167039064379c">showInvisibles</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03774" name="l03774"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a4c582987ddd060919a6fd203661f9210"> 3774</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a4c582987ddd060919a6fd203661f9210">filenamesAsTags</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03775" name="l03775"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a2cda9be1ee8b85e51c2e242330c99949"> 3775</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a2cda9be1ee8b85e51c2e242330c99949">libIdentify</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03776" name="l03776"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a1890c64c96561c11fc90b46012c7eec6"> 3776</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a1890c64c96561c11fc90b46012c7eec6">allowZeroTests</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03777" name="l03777"></a><span class="lineno"> 3777</span> </div>
|
|
<div class="line"><a id="l03778" name="l03778"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a2d5505751aab745d5ae5e4ffe5c92c35"> 3778</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a2d5505751aab745d5ae5e4ffe5c92c35">abortAfter</a> = -1;</div>
|
|
<div class="line"><a id="l03779" name="l03779"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ab449e3c748282e6d6ccec1220a269e98"> 3779</a></span> uint32_t <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ab449e3c748282e6d6ccec1220a269e98">rngSeed</a> = <a class="code hl_function" href="namespaceCatch.html#a170bbe5db76570c4820b5e2eb260f82b">generateRandomSeed</a>(<a class="code hl_enumvalue" href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da7a1920d61156abc05a60135aefe8bc67">GenerateFrom::Default</a>);</div>
|
|
<div class="line"><a id="l03780" name="l03780"></a><span class="lineno"> 3780</span> </div>
|
|
<div class="line"><a id="l03781" name="l03781"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a8264452e6ba331c13c445bcf47604e11"> 3781</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a8264452e6ba331c13c445bcf47604e11">shardCount</a> = 1;</div>
|
|
<div class="line"><a id="l03782" name="l03782"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#af5907f3dac725fc180493b08b0b86e9c"> 3782</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#af5907f3dac725fc180493b08b0b86e9c">shardIndex</a> = 0;</div>
|
|
<div class="line"><a id="l03783" name="l03783"></a><span class="lineno"> 3783</span> </div>
|
|
<div class="line"><a id="l03784" name="l03784"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a68cdb72e8eec907097c158e85b0047f1"> 3784</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a68cdb72e8eec907097c158e85b0047f1">skipBenchmarks</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03785" name="l03785"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a10bfee8e127e5babfa4817553cf3ea69"> 3785</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a10bfee8e127e5babfa4817553cf3ea69">benchmarkNoAnalysis</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03786" name="l03786"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ae76a7f7c5e9889f95c23f7a555000871"> 3786</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ae76a7f7c5e9889f95c23f7a555000871">benchmarkSamples</a> = 100;</div>
|
|
<div class="line"><a id="l03787" name="l03787"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ab93042534875065e313fc9c6d07555e6"> 3787</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ab93042534875065e313fc9c6d07555e6">benchmarkConfidenceInterval</a> = 0.95;</div>
|
|
<div class="line"><a id="l03788" name="l03788"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a45fdef92940dd2c210f80557a836f5fb"> 3788</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a45fdef92940dd2c210f80557a836f5fb">benchmarkResamples</a> = 100'000;</div>
|
|
<div class="line"><a id="l03789" name="l03789"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a145e2b7f25cb59b3ef793720328aaaee"> 3789</a></span> std::chrono::milliseconds::rep <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a145e2b7f25cb59b3ef793720328aaaee">benchmarkWarmupTime</a> = 100;</div>
|
|
<div class="line"><a id="l03790" name="l03790"></a><span class="lineno"> 3790</span> </div>
|
|
<div class="line"><a id="l03791" name="l03791"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ab0e6ea949455438bfdc22ed25bab12f8"> 3791</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737">Verbosity</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ab0e6ea949455438bfdc22ed25bab12f8">verbosity</a> = <a class="code hl_enumvalue" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0">Verbosity::Normal</a>;</div>
|
|
<div class="line"><a id="l03792" name="l03792"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#af3a1c0b4a748b24799941b59bcd9c138"> 3792</a></span> <a class="code hl_enumeration" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3">WarnAbout::What</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#af3a1c0b4a748b24799941b59bcd9c138">warnings</a> = <a class="code hl_enumvalue" href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a9ac33f9211280cca9082557329706d27">WarnAbout::Nothing</a>;</div>
|
|
<div class="line"><a id="l03793" name="l03793"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a7cdef18ba0c8a052b80ac9d80949efbc"> 3793</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8">ShowDurations</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a7cdef18ba0c8a052b80ac9d80949efbc">showDurations</a> = <a class="code hl_enumvalue" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a03cdfbdf8eac6fa7716a480c492f386e">ShowDurations::DefaultForReporter</a>;</div>
|
|
<div class="line"><a id="l03794" name="l03794"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#acfa3ccaefe9052d32b33e224b1d45d6f"> 3794</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#acfa3ccaefe9052d32b33e224b1d45d6f">minDuration</a> = -1;</div>
|
|
<div class="line"><a id="l03795" name="l03795"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a52508e710c553a3ce0531b4a59c2f25c"> 3795</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">TestRunOrder</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a52508e710c553a3ce0531b4a59c2f25c">runOrder</a> = <a class="code hl_enumvalue" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a8fe1ef91d6420c0e64838512106ec229">TestRunOrder::Declared</a>;</div>
|
|
<div class="line"><a id="l03796" name="l03796"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a8a617d7428797065c73b7d6585a81f77"> 3796</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a8a617d7428797065c73b7d6585a81f77">defaultColourMode</a> = <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a896ac0b4a6597d34fee67269b1d50a7f">ColourMode::PlatformDefault</a>;</div>
|
|
<div class="line"><a id="l03797" name="l03797"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a923861968eaad4d3c2ac82e514c7cc81"> 3797</a></span> <a class="code hl_enumeration" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399ba">WaitForKeypress::When</a> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a923861968eaad4d3c2ac82e514c7cc81">waitForKeypress</a> = <a class="code hl_enumvalue" href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baa3a78e4f64675e7ce54ffd29e6109f1ce">WaitForKeypress::Never</a>;</div>
|
|
<div class="line"><a id="l03798" name="l03798"></a><span class="lineno"> 3798</span> </div>
|
|
<div class="line"><a id="l03799" name="l03799"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ac75e1404fab69dfd7105f688179b3c46"> 3799</a></span> std::string <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ac75e1404fab69dfd7105f688179b3c46">defaultOutputFilename</a>;</div>
|
|
<div class="line"><a id="l03800" name="l03800"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a6c62e90478bc2911d032ec54c2e9d8df"> 3800</a></span> std::string <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a6c62e90478bc2911d032ec54c2e9d8df">name</a>;</div>
|
|
<div class="line"><a id="l03801" name="l03801"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#ac181ec69c5b6c925ac9bea9eaf7039c3"> 3801</a></span> std::string <a class="code hl_variable" href="structCatch_1_1ConfigData.html#ac181ec69c5b6c925ac9bea9eaf7039c3">processName</a>;</div>
|
|
<div class="line"><a id="l03802" name="l03802"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a1ae8b33c7837061097b209051c287099"> 3802</a></span> std::vector<ReporterSpec> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a1ae8b33c7837061097b209051c287099">reporterSpecifications</a>;</div>
|
|
<div class="line"><a id="l03803" name="l03803"></a><span class="lineno"> 3803</span> </div>
|
|
<div class="line"><a id="l03804" name="l03804"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#aa40b0e5d2f78a7addbd5c8d16a111840"> 3804</a></span> std::vector<std::string> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#aa40b0e5d2f78a7addbd5c8d16a111840">testsOrTags</a>;</div>
|
|
<div class="line"><a id="l03805" name="l03805"></a><span class="lineno"><a class="line" href="structCatch_1_1ConfigData.html#a76026ccfbefe117a33dde6540161b113"> 3805</a></span> std::vector<std::string> <a class="code hl_variable" href="structCatch_1_1ConfigData.html#a76026ccfbefe117a33dde6540161b113">sectionsToRun</a>;</div>
|
|
<div class="line"><a id="l03806" name="l03806"></a><span class="lineno"> 3806</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03807" name="l03807"></a><span class="lineno"> 3807</span> </div>
|
|
<div class="line"><a id="l03808" name="l03808"></a><span class="lineno"> 3808</span> </div>
|
|
<div class="foldopen" id="foldopen03809" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03809" name="l03809"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html"> 3809</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Config.html#aef773b055ffea632b300f9a44caac969">Config</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1IConfig.html">IConfig</a> {</div>
|
|
<div class="line"><a id="l03810" name="l03810"></a><span class="lineno"> 3810</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l03811" name="l03811"></a><span class="lineno"> 3811</span> </div>
|
|
<div class="line"><a id="l03812" name="l03812"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#aef773b055ffea632b300f9a44caac969"> 3812</a></span> <a class="code hl_function" href="classCatch_1_1Config.html#aef773b055ffea632b300f9a44caac969">Config</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l03813" name="l03813"></a><span class="lineno"> 3813</span> <a class="code hl_function" href="classCatch_1_1Config.html#aef773b055ffea632b300f9a44caac969">Config</a>( <a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a> <span class="keyword">const</span>& data );</div>
|
|
<div class="line"><a id="l03814" name="l03814"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#a96592271b5a0759d6fe48ad64363ecac"> 3814</a></span> <a class="code hl_function" href="classCatch_1_1Config.html#a96592271b5a0759d6fe48ad64363ecac">~Config</a>() <span class="keyword">override</span>; <span class="comment">// = default in the cpp file</span></div>
|
|
<div class="line"><a id="l03815" name="l03815"></a><span class="lineno"> 3815</span> </div>
|
|
<div class="line"><a id="l03816" name="l03816"></a><span class="lineno"> 3816</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a4717b0c64f13c6f7dc4afdaeb396b7b9">listTests</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03817" name="l03817"></a><span class="lineno"> 3817</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a87797a539ff81a7c3c0b302ede7ec9d3">listTags</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03818" name="l03818"></a><span class="lineno"> 3818</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a4af3e61afbc5db0c2bb1138254a765ce">listReporters</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03819" name="l03819"></a><span class="lineno"> 3819</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#aa9635ebb5686aa7b7a56670799f1bd55">listListeners</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03820" name="l03820"></a><span class="lineno"> 3820</span> </div>
|
|
<div class="line"><a id="l03821" name="l03821"></a><span class="lineno"> 3821</span> std::vector<ReporterSpec> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Config.html#a922bc13dfc4bf00338b53e21fcd65780">getReporterSpecs</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03822" name="l03822"></a><span class="lineno"> 3822</span> std::vector<ProcessedReporterSpec> <span class="keyword">const</span>&</div>
|
|
<div class="line"><a id="l03823" name="l03823"></a><span class="lineno"> 3823</span> <a class="code hl_function" href="classCatch_1_1Config.html#a67608968181d34335297e97eba690211">getProcessedReporterSpecs</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03824" name="l03824"></a><span class="lineno"> 3824</span> </div>
|
|
<div class="line"><a id="l03825" name="l03825"></a><span class="lineno"> 3825</span> std::vector<std::string> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Config.html#a0861c17ff4a01038f73eac5836d5c6fc">getTestsOrTags</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03826" name="l03826"></a><span class="lineno"> 3826</span> std::vector<std::string> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Config.html#a32e48a3b9bbf4ce933a154545de13b3f">getSectionsToRun</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03827" name="l03827"></a><span class="lineno"> 3827</span> </div>
|
|
<div class="line"><a id="l03828" name="l03828"></a><span class="lineno"> 3828</span> <a class="code hl_class" href="classCatch_1_1TestSpec.html">TestSpec</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Config.html#a9444b56d6f7549c2c6aad594d1bc6423">testSpec</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03829" name="l03829"></a><span class="lineno"> 3829</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a25c21a50fd3ac97d55dd8a068d83a732">hasTestFilters</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03830" name="l03830"></a><span class="lineno"> 3830</span> </div>
|
|
<div class="line"><a id="l03831" name="l03831"></a><span class="lineno"> 3831</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#af86a5df3faae04019a4fcadaae412e06">showHelp</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l03832" name="l03832"></a><span class="lineno"> 3832</span> </div>
|
|
<div class="line"><a id="l03833" name="l03833"></a><span class="lineno"> 3833</span> <span class="comment">// IConfig interface</span></div>
|
|
<div class="line"><a id="l03834" name="l03834"></a><span class="lineno"> 3834</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#aeb09ac92356afabdd2adde43f188d80b">allowThrows</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03835" name="l03835"></a><span class="lineno"> 3835</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Config.html#ab0f3b902ccd7403d9e016ee7305aeab0">name</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03836" name="l03836"></a><span class="lineno"> 3836</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a7f4f4c2b7bffa63026df5f47e845c526">includeSuccessfulResults</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03837" name="l03837"></a><span class="lineno"> 3837</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a517d35c4a4d9e8fd0009f22e85af1bea">warnAboutMissingAssertions</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03838" name="l03838"></a><span class="lineno"> 3838</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#abd76a2429ec39af0d0007e68b799995a">warnAboutUnmatchedTestSpecs</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03839" name="l03839"></a><span class="lineno"> 3839</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#ac39443127fe7694ed429ecd7150d56a8">zeroTestsCountAsSuccess</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03840" name="l03840"></a><span class="lineno"> 3840</span> <a class="code hl_enumeration" href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8">ShowDurations</a> <a class="code hl_function" href="classCatch_1_1Config.html#a9ec9c643cac0984a7836ab6df06d6273">showDurations</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03841" name="l03841"></a><span class="lineno"> 3841</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCatch_1_1Config.html#aa7e4e11370e1aa911be305bad13dec59">minDuration</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03842" name="l03842"></a><span class="lineno"> 3842</span> <a class="code hl_enumeration" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">TestRunOrder</a> <a class="code hl_function" href="classCatch_1_1Config.html#ac61658e58a9ebcee936305f64ed01f7a">runOrder</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03843" name="l03843"></a><span class="lineno"> 3843</span> uint32_t <a class="code hl_function" href="classCatch_1_1Config.html#af3f236719ddeb5e90ef4a019ddbe9536">rngSeed</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03844" name="l03844"></a><span class="lineno"> 3844</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Config.html#a00dfd8d83bec3e3fda355808b2fb17f3">shardCount</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03845" name="l03845"></a><span class="lineno"> 3845</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Config.html#ae98cabe03f0358b3cc626192c6c688e6">shardIndex</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03846" name="l03846"></a><span class="lineno"> 3846</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> <a class="code hl_function" href="classCatch_1_1Config.html#a26266f99f3de3c5e2033a2ce50fdfade">defaultColourMode</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03847" name="l03847"></a><span class="lineno"> 3847</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#aec665ed79cc298ea0eb88908870f8b44">shouldDebugBreak</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03848" name="l03848"></a><span class="lineno"> 3848</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Config.html#acb7644621cf5d1f8221a6cb2cfe209a8">abortAfter</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03849" name="l03849"></a><span class="lineno"> 3849</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a692d44c3e1d5fa3cf6f19d4f7e317611">showInvisibles</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03850" name="l03850"></a><span class="lineno"> 3850</span> <a class="code hl_enumeration" href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737">Verbosity</a> <a class="code hl_function" href="classCatch_1_1Config.html#aa0ac4601dd8e5bedf7dc4c0761ec2097">verbosity</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03851" name="l03851"></a><span class="lineno"> 3851</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#ac012a4b2c761d98ea5932f15c8a6e1e5">skipBenchmarks</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03852" name="l03852"></a><span class="lineno"> 3852</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Config.html#a9b4ce10d290aec9d81b6f81bbee2abac">benchmarkNoAnalysis</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03853" name="l03853"></a><span class="lineno"> 3853</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Config.html#a29df3e2ed944f9dd58638757656ceddb">benchmarkSamples</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03854" name="l03854"></a><span class="lineno"> 3854</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCatch_1_1Config.html#a221f859f37a43fbbad28b7cb7f429683">benchmarkConfidenceInterval</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03855" name="l03855"></a><span class="lineno"> 3855</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Config.html#a5b411a91a0799f5f4e377ce4e1c4daf6">benchmarkResamples</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03856" name="l03856"></a><span class="lineno"> 3856</span> std::chrono::milliseconds <a class="code hl_function" href="classCatch_1_1Config.html#a8ba83d69c3cacef6191027fd551d72ba">benchmarkWarmupTime</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l03857" name="l03857"></a><span class="lineno"> 3857</span> </div>
|
|
<div class="line"><a id="l03858" name="l03858"></a><span class="lineno"> 3858</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03859" name="l03859"></a><span class="lineno"> 3859</span> <span class="comment">// Reads Bazel env vars and applies them to the config</span></div>
|
|
<div class="line"><a id="l03860" name="l03860"></a><span class="lineno"> 3860</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Config.html#ab70d50b3dc71a13a193fa7c8af5bad57">readBazelEnvVars</a>();</div>
|
|
<div class="line"><a id="l03861" name="l03861"></a><span class="lineno"> 3861</span> </div>
|
|
<div class="line"><a id="l03862" name="l03862"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#ae37d3d2cf69338328ea1ba3c468c084f"> 3862</a></span> <a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a> <a class="code hl_variable" href="classCatch_1_1Config.html#ae37d3d2cf69338328ea1ba3c468c084f">m_data</a>;</div>
|
|
<div class="line"><a id="l03863" name="l03863"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#a357e6e4cb2e8e27c15b0cb1749a82582"> 3863</a></span> std::vector<ProcessedReporterSpec> <a class="code hl_variable" href="classCatch_1_1Config.html#a357e6e4cb2e8e27c15b0cb1749a82582">m_processedReporterSpecs</a>;</div>
|
|
<div class="line"><a id="l03864" name="l03864"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#a2ed6d226278786e4ef6461dd42f8ff45"> 3864</a></span> <a class="code hl_class" href="classCatch_1_1TestSpec.html">TestSpec</a> <a class="code hl_variable" href="classCatch_1_1Config.html#a2ed6d226278786e4ef6461dd42f8ff45">m_testSpec</a>;</div>
|
|
<div class="line"><a id="l03865" name="l03865"></a><span class="lineno"><a class="line" href="classCatch_1_1Config.html#a75a4abdf0463e615dad26bd758f5cca6"> 3865</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1Config.html#a75a4abdf0463e615dad26bd758f5cca6">m_hasTestFilters</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l03866" name="l03866"></a><span class="lineno"> 3866</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03867" name="l03867"></a><span class="lineno"> 3867</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03868" name="l03868"></a><span class="lineno"> 3868</span> </div>
|
|
<div class="line"><a id="l03869" name="l03869"></a><span class="lineno"> 3869</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03870" name="l03870"></a><span class="lineno"> 3870</span> </div>
|
|
<div class="line"><a id="l03871" name="l03871"></a><span class="lineno"> 3871</span> </div>
|
|
<div class="line"><a id="l03872" name="l03872"></a><span class="lineno"> 3872</span><span class="preprocessor">#ifndef CATCH_GET_RANDOM_SEED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03873" name="l03873"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5b80a8f77f31e37d4b932545e9438e24"> 3873</a></span><span class="preprocessor">#define CATCH_GET_RANDOM_SEED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03874" name="l03874"></a><span class="lineno"> 3874</span> </div>
|
|
<div class="line"><a id="l03875" name="l03875"></a><span class="lineno"> 3875</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l03876" name="l03876"></a><span class="lineno"> 3876</span> </div>
|
|
<div class="line"><a id="l03877" name="l03877"></a><span class="lineno"> 3877</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03879" name="l03879"></a><span class="lineno"> 3879</span> std::uint32_t getSeed();</div>
|
|
<div class="line"><a id="l03880" name="l03880"></a><span class="lineno"> 3880</span>}</div>
|
|
<div class="line"><a id="l03881" name="l03881"></a><span class="lineno"> 3881</span> </div>
|
|
<div class="line"><a id="l03882" name="l03882"></a><span class="lineno"> 3882</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GET_RANDOM_SEED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03883" name="l03883"></a><span class="lineno"> 3883</span> </div>
|
|
<div class="line"><a id="l03884" name="l03884"></a><span class="lineno"> 3884</span> </div>
|
|
<div class="line"><a id="l03885" name="l03885"></a><span class="lineno"> 3885</span><span class="preprocessor">#ifndef CATCH_MESSAGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03886" name="l03886"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a97b2e01ae711f3ff15d5df5064c99041"> 3886</a></span><span class="preprocessor">#define CATCH_MESSAGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03887" name="l03887"></a><span class="lineno"> 3887</span> </div>
|
|
<div class="line"><a id="l03888" name="l03888"></a><span class="lineno"> 3888</span> </div>
|
|
<div class="line"><a id="l03889" name="l03889"></a><span class="lineno"> 3889</span> </div>
|
|
<div class="line"><a id="l03890" name="l03890"></a><span class="lineno"> 3890</span></div>
|
|
<div class="line"><a id="l03901" name="l03901"></a><span class="lineno"> 3901</span> </div>
|
|
<div class="line"><a id="l03902" name="l03902"></a><span class="lineno"> 3902</span><span class="preprocessor">#ifndef CATCH_CONFIG_PREFIX_MESSAGES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03903" name="l03903"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a175aae3391345983c36de65e0012b0dd"> 3903</a></span><span class="preprocessor">#define CATCH_CONFIG_PREFIX_MESSAGES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03904" name="l03904"></a><span class="lineno"> 3904</span> </div>
|
|
<div class="line"><a id="l03905" name="l03905"></a><span class="lineno"> 3905</span> </div>
|
|
<div class="line"><a id="l03906" name="l03906"></a><span class="lineno"> 3906</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_PREFIX_MESSAGES)</span></div>
|
|
<div class="line"><a id="l03907" name="l03907"></a><span class="lineno"> 3907</span><span class="preprocessor"> #define CATCH_CONFIG_PREFIX_MESSAGES</span></div>
|
|
<div class="line"><a id="l03908" name="l03908"></a><span class="lineno"> 3908</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l03909" name="l03909"></a><span class="lineno"> 3909</span> </div>
|
|
<div class="line"><a id="l03910" name="l03910"></a><span class="lineno"> 3910</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_PREFIX_MESSAGES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03911" name="l03911"></a><span class="lineno"> 3911</span> </div>
|
|
<div class="line"><a id="l03912" name="l03912"></a><span class="lineno"> 3912</span> </div>
|
|
<div class="line"><a id="l03913" name="l03913"></a><span class="lineno"> 3913</span><span class="preprocessor">#ifndef CATCH_STREAM_END_STOP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03914" name="l03914"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aac289be2ca50a84410d80d29d12247be"> 3914</a></span><span class="preprocessor">#define CATCH_STREAM_END_STOP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03915" name="l03915"></a><span class="lineno"> 3915</span> </div>
|
|
<div class="line"><a id="l03916" name="l03916"></a><span class="lineno"> 3916</span> </div>
|
|
<div class="line"><a id="l03917" name="l03917"></a><span class="lineno"> 3917</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03918" name="l03918"></a><span class="lineno"> 3918</span> </div>
|
|
<div class="line"><a id="l03919" name="l03919"></a><span class="lineno"> 3919</span> <span class="comment">// Use this in variadic streaming macros to allow</span></div>
|
|
<div class="line"><a id="l03920" name="l03920"></a><span class="lineno"> 3920</span> <span class="comment">// << +StreamEndStop</span></div>
|
|
<div class="line"><a id="l03921" name="l03921"></a><span class="lineno"> 3921</span> <span class="comment">// as well as</span></div>
|
|
<div class="line"><a id="l03922" name="l03922"></a><span class="lineno"> 3922</span> <span class="comment">// << stuff +StreamEndStop</span></div>
|
|
<div class="foldopen" id="foldopen03923" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03923" name="l03923"></a><span class="lineno"><a class="line" href="structCatch_1_1StreamEndStop.html"> 3923</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1StreamEndStop.html">StreamEndStop</a> {</div>
|
|
<div class="line"><a id="l03924" name="l03924"></a><span class="lineno"><a class="line" href="structCatch_1_1StreamEndStop.html#af6025eaf439fee9fcb40fcd22084c582"> 3924</a></span> <span class="keyword">constexpr</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="structCatch_1_1StreamEndStop.html#af6025eaf439fee9fcb40fcd22084c582">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>(); }</div>
|
|
<div class="line"><a id="l03925" name="l03925"></a><span class="lineno"> 3925</span> </div>
|
|
<div class="line"><a id="l03926" name="l03926"></a><span class="lineno"> 3926</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen03927" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03927" name="l03927"></a><span class="lineno"><a class="line" href="structCatch_1_1StreamEndStop.html#a7eb91ead1033a6208004282a8dc38842"> 3927</a></span> <span class="keyword">constexpr</span> <span class="keyword">friend</span> T <span class="keyword">const</span>& <a class="code hl_friend" href="structCatch_1_1StreamEndStop.html#a7eb91ead1033a6208004282a8dc38842">operator+</a>( T <span class="keyword">const</span>& value, <a class="code hl_struct" href="structCatch_1_1StreamEndStop.html">StreamEndStop</a> ) {</div>
|
|
<div class="line"><a id="l03928" name="l03928"></a><span class="lineno"> 3928</span> <span class="keywordflow">return</span> value;</div>
|
|
<div class="line"><a id="l03929" name="l03929"></a><span class="lineno"> 3929</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03930" name="l03930"></a><span class="lineno"> 3930</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03931" name="l03931"></a><span class="lineno"> 3931</span> </div>
|
|
<div class="line"><a id="l03932" name="l03932"></a><span class="lineno"> 3932</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l03933" name="l03933"></a><span class="lineno"> 3933</span> </div>
|
|
<div class="line"><a id="l03934" name="l03934"></a><span class="lineno"> 3934</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STREAM_END_STOP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03935" name="l03935"></a><span class="lineno"> 3935</span> </div>
|
|
<div class="line"><a id="l03936" name="l03936"></a><span class="lineno"> 3936</span> </div>
|
|
<div class="line"><a id="l03937" name="l03937"></a><span class="lineno"> 3937</span><span class="preprocessor">#ifndef CATCH_MESSAGE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03938" name="l03938"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad1262a82cc980718e82ab42226eaa8b3"> 3938</a></span><span class="preprocessor">#define CATCH_MESSAGE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03939" name="l03939"></a><span class="lineno"> 3939</span> </div>
|
|
<div class="line"><a id="l03940" name="l03940"></a><span class="lineno"> 3940</span> </div>
|
|
<div class="line"><a id="l03941" name="l03941"></a><span class="lineno"> 3941</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03942" name="l03942"></a><span class="lineno"> 3942</span> </div>
|
|
<div class="line"><a id="l03943" name="l03943"></a><span class="lineno"> 3943</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03944" name="l03944"></a><span class="lineno"> 3944</span> </div>
|
|
<div class="foldopen" id="foldopen03945" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03945" name="l03945"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html"> 3945</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1MessageInfo.html#aee8f50d1ae912f75246a0ddf65f90926">MessageInfo</a> {</div>
|
|
<div class="line"><a id="l03946" name="l03946"></a><span class="lineno"> 3946</span> <a class="code hl_function" href="structCatch_1_1MessageInfo.html#aee8f50d1ae912f75246a0ddf65f90926">MessageInfo</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> _macroName,</div>
|
|
<div class="line"><a id="l03947" name="l03947"></a><span class="lineno"> 3947</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& _lineInfo,</div>
|
|
<div class="line"><a id="l03948" name="l03948"></a><span class="lineno"> 3948</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> _type );</div>
|
|
<div class="line"><a id="l03949" name="l03949"></a><span class="lineno"> 3949</span> </div>
|
|
<div class="line"><a id="l03950" name="l03950"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#a3ee7cd41def0989d2193bad7101436a0"> 3950</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a3ee7cd41def0989d2193bad7101436a0">macroName</a>;</div>
|
|
<div class="line"><a id="l03951" name="l03951"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#ab6cd06e050bf426c6577502a5c50e256"> 3951</a></span> std::string <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#ab6cd06e050bf426c6577502a5c50e256">message</a>;</div>
|
|
<div class="line"><a id="l03952" name="l03952"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#a985165328723e599696ebd8e43195cc5"> 3952</a></span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a985165328723e599696ebd8e43195cc5">lineInfo</a>;</div>
|
|
<div class="line"><a id="l03953" name="l03953"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#ae928b9117465c696e45951d9d0284e78"> 3953</a></span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#ae928b9117465c696e45951d9d0284e78">type</a>;</div>
|
|
<div class="line"><a id="l03954" name="l03954"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6"> 3954</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">sequence</a>;</div>
|
|
<div class="line"><a id="l03955" name="l03955"></a><span class="lineno"> 3955</span> </div>
|
|
<div class="foldopen" id="foldopen03956" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03956" name="l03956"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#af4b37f2172ba55395813b4bb6bbbde1a"> 3956</a></span> <span class="keywordtype">bool</span> operator == (<a class="code hl_function" href="structCatch_1_1MessageInfo.html#aee8f50d1ae912f75246a0ddf65f90926">MessageInfo</a> <span class="keyword">const</span>& other)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03957" name="l03957"></a><span class="lineno"> 3957</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">sequence</a> == other.<a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">sequence</a>;</div>
|
|
<div class="line"><a id="l03958" name="l03958"></a><span class="lineno"> 3958</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen03959" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03959" name="l03959"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#a8254cb8fca2da02a29a9843cdcb79df1"> 3959</a></span> <span class="keywordtype">bool</span> operator < (<a class="code hl_function" href="structCatch_1_1MessageInfo.html#aee8f50d1ae912f75246a0ddf65f90926">MessageInfo</a> <span class="keyword">const</span>& other)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l03960" name="l03960"></a><span class="lineno"> 3960</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">sequence</a> < other.<a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">sequence</a>;</div>
|
|
<div class="line"><a id="l03961" name="l03961"></a><span class="lineno"> 3961</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03962" name="l03962"></a><span class="lineno"> 3962</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l03963" name="l03963"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageInfo.html#a250459555d236f9510a5afd78a6c1979"> 3963</a></span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structCatch_1_1MessageInfo.html#a250459555d236f9510a5afd78a6c1979">globalCount</a>;</div>
|
|
<div class="line"><a id="l03964" name="l03964"></a><span class="lineno"> 3964</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03965" name="l03965"></a><span class="lineno"> 3965</span> </div>
|
|
<div class="line"><a id="l03966" name="l03966"></a><span class="lineno"> 3966</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l03967" name="l03967"></a><span class="lineno"> 3967</span> </div>
|
|
<div class="line"><a id="l03968" name="l03968"></a><span class="lineno"> 3968</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MESSAGE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l03969" name="l03969"></a><span class="lineno"> 3969</span> </div>
|
|
<div class="line"><a id="l03970" name="l03970"></a><span class="lineno"> 3970</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l03971" name="l03971"></a><span class="lineno"> 3971</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l03972" name="l03972"></a><span class="lineno"> 3972</span> </div>
|
|
<div class="line"><a id="l03973" name="l03973"></a><span class="lineno"> 3973</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l03974" name="l03974"></a><span class="lineno"> 3974</span> </div>
|
|
<div class="line"><a id="l03975" name="l03975"></a><span class="lineno"> 3975</span> <span class="keyword">struct </span>SourceLineInfo;</div>
|
|
<div class="line"><a id="l03976" name="l03976"></a><span class="lineno"> 3976</span> <span class="keyword">class </span>IResultCapture;</div>
|
|
<div class="line"><a id="l03977" name="l03977"></a><span class="lineno"> 3977</span> </div>
|
|
<div class="foldopen" id="foldopen03978" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03978" name="l03978"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageStream.html"> 3978</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1MessageStream.html">MessageStream</a> {</div>
|
|
<div class="line"><a id="l03979" name="l03979"></a><span class="lineno"> 3979</span> </div>
|
|
<div class="line"><a id="l03980" name="l03980"></a><span class="lineno"> 3980</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen03981" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03981" name="l03981"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageStream.html#a7c052042fb31ed74d97df99ae14ebd46"> 3981</a></span> <a class="code hl_struct" href="structCatch_1_1MessageStream.html">MessageStream</a>& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( T <span class="keyword">const</span>& value ) {</div>
|
|
<div class="line"><a id="l03982" name="l03982"></a><span class="lineno"> 3982</span> <a class="code hl_variable" href="structCatch_1_1MessageStream.html#a9202520faed8882ef469db9f353ec578">m_stream</a> << value;</div>
|
|
<div class="line"><a id="l03983" name="l03983"></a><span class="lineno"> 3983</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l03984" name="l03984"></a><span class="lineno"> 3984</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l03985" name="l03985"></a><span class="lineno"> 3985</span> </div>
|
|
<div class="line"><a id="l03986" name="l03986"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageStream.html#a9202520faed8882ef469db9f353ec578"> 3986</a></span> <a class="code hl_class" href="classCatch_1_1ReusableStringStream.html">ReusableStringStream</a> <a class="code hl_variable" href="structCatch_1_1MessageStream.html#a9202520faed8882ef469db9f353ec578">m_stream</a>;</div>
|
|
<div class="line"><a id="l03987" name="l03987"></a><span class="lineno"> 3987</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l03988" name="l03988"></a><span class="lineno"> 3988</span> </div>
|
|
<div class="foldopen" id="foldopen03989" data-start="{" data-end="};">
|
|
<div class="line"><a id="l03989" name="l03989"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageBuilder.html"> 3989</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1MessageBuilder.html#a0e1926da9e1a40cd4036d6d0587f88c3">MessageBuilder</a> : <a class="code hl_struct" href="structCatch_1_1MessageStream.html">MessageStream</a> {</div>
|
|
<div class="foldopen" id="foldopen03990" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03990" name="l03990"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageBuilder.html#a0e1926da9e1a40cd4036d6d0587f88c3"> 3990</a></span> <a class="code hl_function" href="structCatch_1_1MessageBuilder.html#a0e1926da9e1a40cd4036d6d0587f88c3">MessageBuilder</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> macroName,</div>
|
|
<div class="line"><a id="l03991" name="l03991"></a><span class="lineno"> 3991</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo,</div>
|
|
<div class="line"><a id="l03992" name="l03992"></a><span class="lineno"> 3992</span> <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> type ):</div>
|
|
<div class="line"><a id="l03993" name="l03993"></a><span class="lineno"> 3993</span> <a class="code hl_variable" href="structCatch_1_1MessageBuilder.html#a979f1c2b36d78f80ee275bfa5ba0209f">m_info</a>(macroName, lineInfo, type) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l03994" name="l03994"></a><span class="lineno"> 3994</span> </div>
|
|
<div class="line"><a id="l03995" name="l03995"></a><span class="lineno"> 3995</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen03996" data-start="{" data-end="}">
|
|
<div class="line"><a id="l03996" name="l03996"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageBuilder.html#a26d872b1a9ee05e21a62226f8ec9be57"> 3996</a></span> <a class="code hl_function" href="structCatch_1_1MessageBuilder.html#a0e1926da9e1a40cd4036d6d0587f88c3">MessageBuilder</a>&& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( T <span class="keyword">const</span>& value ) && {</div>
|
|
<div class="line"><a id="l03997" name="l03997"></a><span class="lineno"> 3997</span> <a class="code hl_variable" href="structCatch_1_1MessageStream.html#a9202520faed8882ef469db9f353ec578">m_stream</a> << value;</div>
|
|
<div class="line"><a id="l03998" name="l03998"></a><span class="lineno"> 3998</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(*<span class="keyword">this</span>);</div>
|
|
<div class="line"><a id="l03999" name="l03999"></a><span class="lineno"> 3999</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04000" name="l04000"></a><span class="lineno"> 4000</span> </div>
|
|
<div class="line"><a id="l04001" name="l04001"></a><span class="lineno"><a class="line" href="structCatch_1_1MessageBuilder.html#a979f1c2b36d78f80ee275bfa5ba0209f"> 4001</a></span> <a class="code hl_struct" href="structCatch_1_1MessageInfo.html">MessageInfo</a> <a class="code hl_variable" href="structCatch_1_1MessageBuilder.html#a979f1c2b36d78f80ee275bfa5ba0209f">m_info</a>;</div>
|
|
<div class="line"><a id="l04002" name="l04002"></a><span class="lineno"> 4002</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04003" name="l04003"></a><span class="lineno"> 4003</span> </div>
|
|
<div class="foldopen" id="foldopen04004" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04004" name="l04004"></a><span class="lineno"><a class="line" href="classCatch_1_1ScopedMessage.html"> 4004</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">ScopedMessage</a> {</div>
|
|
<div class="line"><a id="l04005" name="l04005"></a><span class="lineno"> 4005</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04006" name="l04006"></a><span class="lineno"> 4006</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">ScopedMessage</a>( <a class="code hl_struct" href="structCatch_1_1MessageBuilder.html">MessageBuilder</a>&& builder );</div>
|
|
<div class="line"><a id="l04007" name="l04007"></a><span class="lineno"><a class="line" href="classCatch_1_1ScopedMessage.html#a5fe2e79afdfd737818c15edfc49f378e"> 4007</a></span> <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a5fe2e79afdfd737818c15edfc49f378e">ScopedMessage</a>( <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">ScopedMessage</a>& duplicate ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l04008" name="l04008"></a><span class="lineno"> 4008</span> <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">ScopedMessage</a>( <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">ScopedMessage</a>&& old ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l04009" name="l04009"></a><span class="lineno"> 4009</span> <a class="code hl_function" href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">~ScopedMessage</a>();</div>
|
|
<div class="line"><a id="l04010" name="l04010"></a><span class="lineno"> 4010</span> </div>
|
|
<div class="line"><a id="l04011" name="l04011"></a><span class="lineno"><a class="line" href="classCatch_1_1ScopedMessage.html#ae6e1476f389cc6e1586f033b3747b27b"> 4011</a></span> <a class="code hl_struct" href="structCatch_1_1MessageInfo.html">MessageInfo</a> <a class="code hl_variable" href="classCatch_1_1ScopedMessage.html#ae6e1476f389cc6e1586f033b3747b27b">m_info</a>;</div>
|
|
<div class="line"><a id="l04012" name="l04012"></a><span class="lineno"><a class="line" href="classCatch_1_1ScopedMessage.html#a4fe5607c1f7407240a0da8405b1c12e7"> 4012</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1ScopedMessage.html#a4fe5607c1f7407240a0da8405b1c12e7">m_moved</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l04013" name="l04013"></a><span class="lineno"> 4013</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04014" name="l04014"></a><span class="lineno"> 4014</span> </div>
|
|
<div class="foldopen" id="foldopen04015" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04015" name="l04015"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html"> 4015</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Capturer</a> {</div>
|
|
<div class="line"><a id="l04016" name="l04016"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#aefa14693d28906e5e7b06975af38aaed"> 4016</a></span> std::vector<MessageInfo> <a class="code hl_variable" href="classCatch_1_1Capturer.html#aefa14693d28906e5e7b06975af38aaed">m_messages</a>;</div>
|
|
<div class="line"><a id="l04017" name="l04017"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#a29edecce81d56837945ba2585c0ff941"> 4017</a></span> <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>& <a class="code hl_variable" href="classCatch_1_1Capturer.html#a29edecce81d56837945ba2585c0ff941">m_resultCapture</a>;</div>
|
|
<div class="line"><a id="l04018" name="l04018"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#a1c3bea0fde97a7663ece4b81187fa9ed"> 4018</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Capturer.html#a1c3bea0fde97a7663ece4b81187fa9ed">m_captured</a> = 0;</div>
|
|
<div class="line"><a id="l04019" name="l04019"></a><span class="lineno"> 4019</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04020" name="l04020"></a><span class="lineno"> 4020</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Capturer</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> macroName, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo, <a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> resultType, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> names );</div>
|
|
<div class="line"><a id="l04021" name="l04021"></a><span class="lineno"> 4021</span> </div>
|
|
<div class="line"><a id="l04022" name="l04022"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#ab8010e6737ac7a1cdf1be9ab65220cb6"> 4022</a></span> <a class="code hl_function" href="classCatch_1_1Capturer.html#ab8010e6737ac7a1cdf1be9ab65220cb6">Capturer</a>(<a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Capturer</a> <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l04023" name="l04023"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#a6de9ab7fdd4f1e3cccbbb058d8e58d1d"> 4023</a></span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Capturer</a>& <a class="code hl_function" href="classCatch_1_1Capturer.html#a6de9ab7fdd4f1e3cccbbb058d8e58d1d">operator=</a>(<a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Capturer</a> <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l04024" name="l04024"></a><span class="lineno"> 4024</span> </div>
|
|
<div class="line"><a id="l04025" name="l04025"></a><span class="lineno"> 4025</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">~Capturer</a>();</div>
|
|
<div class="line"><a id="l04026" name="l04026"></a><span class="lineno"> 4026</span> </div>
|
|
<div class="line"><a id="l04027" name="l04027"></a><span class="lineno"> 4027</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a0695ebf77f7cdcb344c73bcb3d9131e4">captureValue</a>( <span class="keywordtype">size_t</span> index, std::string <span class="keyword">const</span>& value );</div>
|
|
<div class="line"><a id="l04028" name="l04028"></a><span class="lineno"> 4028</span> </div>
|
|
<div class="line"><a id="l04029" name="l04029"></a><span class="lineno"> 4029</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04030" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04030" name="l04030"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#a60d08e6db2e54740bb2298bbbec3bc0b"> 4030</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a60d08e6db2e54740bb2298bbbec3bc0b">captureValues</a>( <span class="keywordtype">size_t</span> index, T <span class="keyword">const</span>& value ) {</div>
|
|
<div class="line"><a id="l04031" name="l04031"></a><span class="lineno"> 4031</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a0695ebf77f7cdcb344c73bcb3d9131e4">captureValue</a>( index, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( value ) );</div>
|
|
<div class="line"><a id="l04032" name="l04032"></a><span class="lineno"> 4032</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04033" name="l04033"></a><span class="lineno"> 4033</span> </div>
|
|
<div class="line"><a id="l04034" name="l04034"></a><span class="lineno"> 4034</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Ts></div>
|
|
<div class="foldopen" id="foldopen04035" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04035" name="l04035"></a><span class="lineno"><a class="line" href="classCatch_1_1Capturer.html#a76f2a097cfeb3042688300b81eb9bcbc"> 4035</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a76f2a097cfeb3042688300b81eb9bcbc">captureValues</a>( <span class="keywordtype">size_t</span> index, T <span class="keyword">const</span>& value, Ts <span class="keyword">const</span>&... values ) {</div>
|
|
<div class="line"><a id="l04036" name="l04036"></a><span class="lineno"> 4036</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a0695ebf77f7cdcb344c73bcb3d9131e4">captureValue</a>( index, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>(value) );</div>
|
|
<div class="line"><a id="l04037" name="l04037"></a><span class="lineno"> 4037</span> <a class="code hl_function" href="classCatch_1_1Capturer.html#a60d08e6db2e54740bb2298bbbec3bc0b">captureValues</a>( index+1, values... );</div>
|
|
<div class="line"><a id="l04038" name="l04038"></a><span class="lineno"> 4038</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04039" name="l04039"></a><span class="lineno"> 4039</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04040" name="l04040"></a><span class="lineno"> 4040</span> </div>
|
|
<div class="line"><a id="l04041" name="l04041"></a><span class="lineno"> 4041</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l04042" name="l04042"></a><span class="lineno"> 4042</span></div>
|
|
<div class="foldopen" id="foldopen04044" data-start="" data-end="">
|
|
<div class="line"><a id="l04044" name="l04044"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad1f7d83040ad9b09020dc72c57019638"> 4044</a></span><span class="preprocessor">#define INTERNAL_CATCH_MSG( macroName, messageType, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l04045" name="l04045"></a><span class="lineno"> 4045</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l04046" name="l04046"></a><span class="lineno"> 4046</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::StringRef(), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l04047" name="l04047"></a><span class="lineno"> 4047</span><span class="preprocessor"> catchAssertionHandler.handleMessage( messageType, ( Catch::MessageStream() << __VA_ARGS__ + ::Catch::StreamEndStop() ).m_stream.str() ); \</span></div>
|
|
<div class="line"><a id="l04048" name="l04048"></a><span class="lineno"> 4048</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l04049" name="l04049"></a><span class="lineno"> 4049</span><span class="preprocessor"> } while( false )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l04050" name="l04050"></a><span class="lineno"> 4050</span></div>
|
|
<div class="foldopen" id="foldopen04052" data-start="" data-end="">
|
|
<div class="line"><a id="l04052" name="l04052"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad8c51fdad7ab7e39414cd1bf90a3ce06"> 4052</a></span><span class="preprocessor">#define INTERNAL_CATCH_CAPTURE( varName, macroName, ... ) \</span></div>
|
|
<div class="line"><a id="l04053" name="l04053"></a><span class="lineno"> 4053</span><span class="preprocessor"> Catch::Capturer varName( macroName##_catch_sr, \</span></div>
|
|
<div class="line"><a id="l04054" name="l04054"></a><span class="lineno"> 4054</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l04055" name="l04055"></a><span class="lineno"> 4055</span><span class="preprocessor"> Catch::ResultWas::Info, \</span></div>
|
|
<div class="line"><a id="l04056" name="l04056"></a><span class="lineno"> 4056</span><span class="preprocessor"> #__VA_ARGS__##_catch_sr ); \</span></div>
|
|
<div class="line"><a id="l04057" name="l04057"></a><span class="lineno"> 4057</span><span class="preprocessor"> varName.captureValues( 0, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l04058" name="l04058"></a><span class="lineno"> 4058</span></div>
|
|
<div class="foldopen" id="foldopen04060" data-start="" data-end="">
|
|
<div class="line"><a id="l04060" name="l04060"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab0eb5cfab90a80f3113f0ecb65c62a1c"> 4060</a></span><span class="preprocessor">#define INTERNAL_CATCH_INFO( macroName, log ) \</span></div>
|
|
<div class="line"><a id="l04061" name="l04061"></a><span class="lineno"> 4061</span><span class="preprocessor"> const Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l04062" name="l04062"></a><span class="lineno"> 4062</span></div>
|
|
<div class="foldopen" id="foldopen04064" data-start="" data-end="">
|
|
<div class="line"><a id="l04064" name="l04064"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab268c09b68167db4b163234f9934463f"> 4064</a></span><span class="preprocessor">#define INTERNAL_CATCH_UNSCOPED_INFO( macroName, log ) \</span></div>
|
|
<div class="line"><a id="l04065" name="l04065"></a><span class="lineno"> 4065</span><span class="preprocessor"> Catch::getResultCapture().emplaceUnscopedMessage( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l04066" name="l04066"></a><span class="lineno"> 4066</span> </div>
|
|
<div class="line"><a id="l04067" name="l04067"></a><span class="lineno"> 4067</span> </div>
|
|
<div class="line"><a id="l04068" name="l04068"></a><span class="lineno"> 4068</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l04069" name="l04069"></a><span class="lineno"> 4069</span> </div>
|
|
<div class="line"><a id="l04070" name="l04070"></a><span class="lineno"> 4070</span><span class="preprocessor"> #define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( "CATCH_INFO", msg )</span></div>
|
|
<div class="line"><a id="l04071" name="l04071"></a><span class="lineno"> 4071</span><span class="preprocessor"> #define CATCH_UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "CATCH_UNSCOPED_INFO", msg )</span></div>
|
|
<div class="line"><a id="l04072" name="l04072"></a><span class="lineno"> 4072</span><span class="preprocessor"> #define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( "CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )</span></div>
|
|
<div class="line"><a id="l04073" name="l04073"></a><span class="lineno"> 4073</span><span class="preprocessor"> #define CATCH_CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_CAPTURE", __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l04074" name="l04074"></a><span class="lineno"> 4074</span> </div>
|
|
<div class="line"><a id="l04075" name="l04075"></a><span class="lineno"> 4075</span><span class="preprocessor">#elif defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l04076" name="l04076"></a><span class="lineno"> 4076</span> </div>
|
|
<div class="line"><a id="l04077" name="l04077"></a><span class="lineno"> 4077</span><span class="preprocessor"> #define CATCH_INFO( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04078" name="l04078"></a><span class="lineno"> 4078</span><span class="preprocessor"> #define CATCH_UNSCOPED_INFO( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04079" name="l04079"></a><span class="lineno"> 4079</span><span class="preprocessor"> #define CATCH_WARN( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04080" name="l04080"></a><span class="lineno"> 4080</span><span class="preprocessor"> #define CATCH_CAPTURE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04081" name="l04081"></a><span class="lineno"> 4081</span> </div>
|
|
<div class="line"><a id="l04082" name="l04082"></a><span class="lineno"> 4082</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l04083" name="l04083"></a><span class="lineno"> 4083</span> </div>
|
|
<div class="line"><a id="l04084" name="l04084"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3ae64706314066fdc8b6c8029a915aa7"> 4084</a></span><span class="preprocessor"> #define INFO( msg ) INTERNAL_CATCH_INFO( "INFO", msg )</span></div>
|
|
<div class="line"><a id="l04085" name="l04085"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8dd723bbdb751f1c2f3af8c4f264b7a3"> 4085</a></span><span class="preprocessor"> #define UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )</span></div>
|
|
<div class="line"><a id="l04086" name="l04086"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a108d6c5c51dd46e82a62b262394f0242"> 4086</a></span><span class="preprocessor"> #define WARN( msg ) INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )</span></div>
|
|
<div class="line"><a id="l04087" name="l04087"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aaf9fe43c53965ff8d94bbd522fd1fd7a"> 4087</a></span><span class="preprocessor"> #define CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE", __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l04088" name="l04088"></a><span class="lineno"> 4088</span> </div>
|
|
<div class="line"><a id="l04089" name="l04089"></a><span class="lineno"> 4089</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l04090" name="l04090"></a><span class="lineno"> 4090</span> </div>
|
|
<div class="line"><a id="l04091" name="l04091"></a><span class="lineno"> 4091</span><span class="preprocessor"> #define INFO( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04092" name="l04092"></a><span class="lineno"> 4092</span><span class="preprocessor"> #define UNSCOPED_INFO( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04093" name="l04093"></a><span class="lineno"> 4093</span><span class="preprocessor"> #define WARN( msg ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04094" name="l04094"></a><span class="lineno"> 4094</span><span class="preprocessor"> #define CAPTURE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l04095" name="l04095"></a><span class="lineno"> 4095</span> </div>
|
|
<div class="line"><a id="l04096" name="l04096"></a><span class="lineno"> 4096</span><span class="preprocessor">#endif </span><span class="comment">// end of user facing macro declarations</span></div>
|
|
<div class="line"><a id="l04097" name="l04097"></a><span class="lineno"> 4097</span> </div>
|
|
<div class="line"><a id="l04098" name="l04098"></a><span class="lineno"> 4098</span> </div>
|
|
<div class="line"><a id="l04099" name="l04099"></a><span class="lineno"> 4099</span> </div>
|
|
<div class="line"><a id="l04100" name="l04100"></a><span class="lineno"> 4100</span> </div>
|
|
<div class="line"><a id="l04101" name="l04101"></a><span class="lineno"> 4101</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MESSAGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04102" name="l04102"></a><span class="lineno"> 4102</span> </div>
|
|
<div class="line"><a id="l04103" name="l04103"></a><span class="lineno"> 4103</span> </div>
|
|
<div class="line"><a id="l04104" name="l04104"></a><span class="lineno"> 4104</span><span class="preprocessor">#ifndef CATCH_SECTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04105" name="l04105"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7ad2204b68b9ac65dc70ea0a6359ad4a"> 4105</a></span><span class="preprocessor">#define CATCH_SECTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04106" name="l04106"></a><span class="lineno"> 4106</span> </div>
|
|
<div class="line"><a id="l04107" name="l04107"></a><span class="lineno"> 4107</span> </div>
|
|
<div class="line"><a id="l04108" name="l04108"></a><span class="lineno"> 4108</span> </div>
|
|
<div class="line"><a id="l04109" name="l04109"></a><span class="lineno"> 4109</span><span class="preprocessor">#ifndef CATCH_TOTALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04110" name="l04110"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9eb5dcf06da2ee2e371489225f9c0bc0"> 4110</a></span><span class="preprocessor">#define CATCH_TOTALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04111" name="l04111"></a><span class="lineno"> 4111</span> </div>
|
|
<div class="line"><a id="l04112" name="l04112"></a><span class="lineno"> 4112</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l04113" name="l04113"></a><span class="lineno"> 4113</span> </div>
|
|
<div class="line"><a id="l04114" name="l04114"></a><span class="lineno"> 4114</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l04115" name="l04115"></a><span class="lineno"> 4115</span> </div>
|
|
<div class="foldopen" id="foldopen04116" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04116" name="l04116"></a><span class="lineno"><a class="line" href="structCatch_1_1Counts.html"> 4116</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> {</div>
|
|
<div class="line"><a id="l04117" name="l04117"></a><span class="lineno"> 4117</span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> operator - ( <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <span class="keyword">const</span>& other ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04118" name="l04118"></a><span class="lineno"> 4118</span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a>& operator += ( <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <span class="keyword">const</span>& other );</div>
|
|
<div class="line"><a id="l04119" name="l04119"></a><span class="lineno"> 4119</span> </div>
|
|
<div class="line"><a id="l04120" name="l04120"></a><span class="lineno"> 4120</span> std::uint64_t <a class="code hl_function" href="structCatch_1_1Counts.html#a71bb4c4ac8e1dcb06951848f587bf591">total</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04121" name="l04121"></a><span class="lineno"> 4121</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Counts.html#a84999490e0ecaa3de5e121bf48eda1b3">allPassed</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04122" name="l04122"></a><span class="lineno"> 4122</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Counts.html#a33bd996e016030155b99fe1c51c08991">allOk</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04123" name="l04123"></a><span class="lineno"> 4123</span> </div>
|
|
<div class="line"><a id="l04124" name="l04124"></a><span class="lineno"><a class="line" href="structCatch_1_1Counts.html#ad12eff20b90d230188b2b41a7c4562a1"> 4124</a></span> std::uint64_t <a class="code hl_variable" href="structCatch_1_1Counts.html#ad12eff20b90d230188b2b41a7c4562a1">passed</a> = 0;</div>
|
|
<div class="line"><a id="l04125" name="l04125"></a><span class="lineno"><a class="line" href="structCatch_1_1Counts.html#ab0bda88e125a1ba60b47c262fc2c529c"> 4125</a></span> std::uint64_t <a class="code hl_variable" href="structCatch_1_1Counts.html#ab0bda88e125a1ba60b47c262fc2c529c">failed</a> = 0;</div>
|
|
<div class="line"><a id="l04126" name="l04126"></a><span class="lineno"><a class="line" href="structCatch_1_1Counts.html#ad42a25fd6c31ca6c6320f4cf5e857028"> 4126</a></span> std::uint64_t <a class="code hl_variable" href="structCatch_1_1Counts.html#ad42a25fd6c31ca6c6320f4cf5e857028">failedButOk</a> = 0;</div>
|
|
<div class="line"><a id="l04127" name="l04127"></a><span class="lineno"><a class="line" href="structCatch_1_1Counts.html#a4bc5425fed9628cb30e9c4702ee75ea5"> 4127</a></span> std::uint64_t <a class="code hl_variable" href="structCatch_1_1Counts.html#a4bc5425fed9628cb30e9c4702ee75ea5">skipped</a> = 0;</div>
|
|
<div class="line"><a id="l04128" name="l04128"></a><span class="lineno"> 4128</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04129" name="l04129"></a><span class="lineno"> 4129</span> </div>
|
|
<div class="foldopen" id="foldopen04130" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04130" name="l04130"></a><span class="lineno"><a class="line" href="structCatch_1_1Totals.html"> 4130</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> {</div>
|
|
<div class="line"><a id="l04131" name="l04131"></a><span class="lineno"> 4131</span> </div>
|
|
<div class="line"><a id="l04132" name="l04132"></a><span class="lineno"> 4132</span> <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> operator - ( <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> <span class="keyword">const</span>& other ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04133" name="l04133"></a><span class="lineno"> 4133</span> <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a>& operator += ( <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> <span class="keyword">const</span>& other );</div>
|
|
<div class="line"><a id="l04134" name="l04134"></a><span class="lineno"> 4134</span> </div>
|
|
<div class="line"><a id="l04135" name="l04135"></a><span class="lineno"> 4135</span> <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> <a class="code hl_function" href="structCatch_1_1Totals.html#a1a94a654f5f3786b75695e081fc9bca2">delta</a>( <a class="code hl_struct" href="structCatch_1_1Totals.html">Totals</a> <span class="keyword">const</span>& prevTotals ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04136" name="l04136"></a><span class="lineno"> 4136</span> </div>
|
|
<div class="line"><a id="l04137" name="l04137"></a><span class="lineno"><a class="line" href="structCatch_1_1Totals.html#a885ded66df752147b30c3d45aa602ec9"> 4137</a></span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <a class="code hl_variable" href="structCatch_1_1Totals.html#a885ded66df752147b30c3d45aa602ec9">assertions</a>;</div>
|
|
<div class="line"><a id="l04138" name="l04138"></a><span class="lineno"><a class="line" href="structCatch_1_1Totals.html#adb195fe477aedee2ecea88c888f16506"> 4138</a></span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <a class="code hl_variable" href="structCatch_1_1Totals.html#adb195fe477aedee2ecea88c888f16506">testCases</a>;</div>
|
|
<div class="line"><a id="l04139" name="l04139"></a><span class="lineno"> 4139</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04140" name="l04140"></a><span class="lineno"> 4140</span>}</div>
|
|
<div class="line"><a id="l04141" name="l04141"></a><span class="lineno"> 4141</span> </div>
|
|
<div class="line"><a id="l04142" name="l04142"></a><span class="lineno"> 4142</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TOTALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04143" name="l04143"></a><span class="lineno"> 4143</span> </div>
|
|
<div class="line"><a id="l04144" name="l04144"></a><span class="lineno"> 4144</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l04145" name="l04145"></a><span class="lineno"> 4145</span> </div>
|
|
<div class="line"><a id="l04146" name="l04146"></a><span class="lineno"> 4146</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l04147" name="l04147"></a><span class="lineno"> 4147</span> </div>
|
|
<div class="foldopen" id="foldopen04148" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04148" name="l04148"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionInfo.html"> 4148</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1SectionInfo.html#a31cbd6895a18c6c80b5c8ed1fd366ac0">SectionInfo</a> {</div>
|
|
<div class="line"><a id="l04149" name="l04149"></a><span class="lineno"> 4149</span> <span class="comment">// The last argument is ignored, so that people can write</span></div>
|
|
<div class="line"><a id="l04150" name="l04150"></a><span class="lineno"> 4150</span> <span class="comment">// SECTION("ShortName", "Proper description that is long") and</span></div>
|
|
<div class="line"><a id="l04151" name="l04151"></a><span class="lineno"> 4151</span> <span class="comment">// still use the `-c` flag comfortably.</span></div>
|
|
<div class="foldopen" id="foldopen04152" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04152" name="l04152"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionInfo.html#a31cbd6895a18c6c80b5c8ed1fd366ac0"> 4152</a></span> <a class="code hl_function" href="structCatch_1_1SectionInfo.html#a31cbd6895a18c6c80b5c8ed1fd366ac0">SectionInfo</a>( <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& _lineInfo, std::string _name,</div>
|
|
<div class="line"><a id="l04153" name="l04153"></a><span class="lineno"> 4153</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> = <span class="keyword">nullptr</span> ):</div>
|
|
<div class="line"><a id="l04154" name="l04154"></a><span class="lineno"> 4154</span> <a class="code hl_variable" href="structCatch_1_1SectionInfo.html#a704c8fc662d309137e0d4f199cb7df58">name</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(_name)),</div>
|
|
<div class="line"><a id="l04155" name="l04155"></a><span class="lineno"> 4155</span> <a class="code hl_variable" href="structCatch_1_1SectionInfo.html#adbc83b8a3507c4acc8ee249e93465711">lineInfo</a>(_lineInfo)</div>
|
|
<div class="line"><a id="l04156" name="l04156"></a><span class="lineno"> 4156</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04157" name="l04157"></a><span class="lineno"> 4157</span> </div>
|
|
<div class="line"><a id="l04158" name="l04158"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionInfo.html#a704c8fc662d309137e0d4f199cb7df58"> 4158</a></span> std::string <a class="code hl_variable" href="structCatch_1_1SectionInfo.html#a704c8fc662d309137e0d4f199cb7df58">name</a>;</div>
|
|
<div class="line"><a id="l04159" name="l04159"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionInfo.html#adbc83b8a3507c4acc8ee249e93465711"> 4159</a></span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_variable" href="structCatch_1_1SectionInfo.html#adbc83b8a3507c4acc8ee249e93465711">lineInfo</a>;</div>
|
|
<div class="line"><a id="l04160" name="l04160"></a><span class="lineno"> 4160</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04161" name="l04161"></a><span class="lineno"> 4161</span> </div>
|
|
<div class="foldopen" id="foldopen04162" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04162" name="l04162"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionEndInfo.html"> 4162</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1SectionEndInfo.html">SectionEndInfo</a> {</div>
|
|
<div class="line"><a id="l04163" name="l04163"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionEndInfo.html#a2d44793392cb83735d086d726822abe9"> 4163</a></span> <a class="code hl_struct" href="structCatch_1_1SectionInfo.html">SectionInfo</a> <a class="code hl_variable" href="structCatch_1_1SectionEndInfo.html#a2d44793392cb83735d086d726822abe9">sectionInfo</a>;</div>
|
|
<div class="line"><a id="l04164" name="l04164"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionEndInfo.html#ae70b154cbc05b5dd2901d97f89303d8c"> 4164</a></span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <a class="code hl_variable" href="structCatch_1_1SectionEndInfo.html#ae70b154cbc05b5dd2901d97f89303d8c">prevAssertions</a>;</div>
|
|
<div class="line"><a id="l04165" name="l04165"></a><span class="lineno"><a class="line" href="structCatch_1_1SectionEndInfo.html#a7c262f2dab9cff166b8eca620c47eea5"> 4165</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structCatch_1_1SectionEndInfo.html#a7c262f2dab9cff166b8eca620c47eea5">durationInSeconds</a>;</div>
|
|
<div class="line"><a id="l04166" name="l04166"></a><span class="lineno"> 4166</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04167" name="l04167"></a><span class="lineno"> 4167</span> </div>
|
|
<div class="line"><a id="l04168" name="l04168"></a><span class="lineno"> 4168</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l04169" name="l04169"></a><span class="lineno"> 4169</span> </div>
|
|
<div class="line"><a id="l04170" name="l04170"></a><span class="lineno"> 4170</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SECTION_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04171" name="l04171"></a><span class="lineno"> 4171</span> </div>
|
|
<div class="line"><a id="l04172" name="l04172"></a><span class="lineno"> 4172</span> </div>
|
|
<div class="line"><a id="l04173" name="l04173"></a><span class="lineno"> 4173</span><span class="preprocessor">#ifndef CATCH_SESSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04174" name="l04174"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae27cd6b2c286c2425c20e8a462a19656"> 4174</a></span><span class="preprocessor">#define CATCH_SESSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04175" name="l04175"></a><span class="lineno"> 4175</span> </div>
|
|
<div class="line"><a id="l04176" name="l04176"></a><span class="lineno"> 4176</span> </div>
|
|
<div class="line"><a id="l04177" name="l04177"></a><span class="lineno"> 4177</span> </div>
|
|
<div class="line"><a id="l04178" name="l04178"></a><span class="lineno"> 4178</span><span class="preprocessor">#ifndef CATCH_COMMANDLINE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04179" name="l04179"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae0d0eab37352e179e90dc4aab125ce12"> 4179</a></span><span class="preprocessor">#define CATCH_COMMANDLINE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04180" name="l04180"></a><span class="lineno"> 4180</span> </div>
|
|
<div class="line"><a id="l04181" name="l04181"></a><span class="lineno"> 4181</span> </div>
|
|
<div class="line"><a id="l04182" name="l04182"></a><span class="lineno"> 4182</span> </div>
|
|
<div class="line"><a id="l04183" name="l04183"></a><span class="lineno"> 4183</span><span class="preprocessor">#ifndef CATCH_CLARA_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04184" name="l04184"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad73a2e7cd0695c330cc56dfafe2730c4"> 4184</a></span><span class="preprocessor">#define CATCH_CLARA_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04185" name="l04185"></a><span class="lineno"> 4185</span> </div>
|
|
<div class="line"><a id="l04186" name="l04186"></a><span class="lineno"> 4186</span><span class="preprocessor">#if defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l04187" name="l04187"></a><span class="lineno"> 4187</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l04188" name="l04188"></a><span class="lineno"> 4188</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wweak-vtables"</span></div>
|
|
<div class="line"><a id="l04189" name="l04189"></a><span class="lineno"> 4189</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wshadow"</span></div>
|
|
<div class="line"><a id="l04190" name="l04190"></a><span class="lineno"> 4190</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wdeprecated"</span></div>
|
|
<div class="line"><a id="l04191" name="l04191"></a><span class="lineno"> 4191</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l04192" name="l04192"></a><span class="lineno"> 4192</span> </div>
|
|
<div class="line"><a id="l04193" name="l04193"></a><span class="lineno"> 4193</span><span class="preprocessor">#if defined( __GNUC__ )</span></div>
|
|
<div class="line"><a id="l04194" name="l04194"></a><span class="lineno"> 4194</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l04195" name="l04195"></a><span class="lineno"> 4195</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wsign-conversion"</span></div>
|
|
<div class="line"><a id="l04196" name="l04196"></a><span class="lineno"> 4196</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l04197" name="l04197"></a><span class="lineno"> 4197</span> </div>
|
|
<div class="line"><a id="l04198" name="l04198"></a><span class="lineno"> 4198</span><span class="preprocessor">#ifndef CLARA_CONFIG_OPTIONAL_TYPE</span></div>
|
|
<div class="line"><a id="l04199" name="l04199"></a><span class="lineno"> 4199</span><span class="preprocessor"># ifdef __has_include</span></div>
|
|
<div class="line"><a id="l04200" name="l04200"></a><span class="lineno"> 4200</span><span class="preprocessor"># if __has_include( <optional>) && __cplusplus >= 201703L</span></div>
|
|
<div class="line"><a id="l04201" name="l04201"></a><span class="lineno"> 4201</span><span class="preprocessor"># include <optional></span></div>
|
|
<div class="line"><a id="l04202" name="l04202"></a><span class="lineno"> 4202</span><span class="preprocessor"># define CLARA_CONFIG_OPTIONAL_TYPE std::optional</span></div>
|
|
<div class="line"><a id="l04203" name="l04203"></a><span class="lineno"> 4203</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l04204" name="l04204"></a><span class="lineno"> 4204</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l04205" name="l04205"></a><span class="lineno"> 4205</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l04206" name="l04206"></a><span class="lineno"> 4206</span> </div>
|
|
<div class="line"><a id="l04207" name="l04207"></a><span class="lineno"> 4207</span> </div>
|
|
<div class="line"><a id="l04208" name="l04208"></a><span class="lineno"> 4208</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l04209" name="l04209"></a><span class="lineno"> 4209</span><span class="preprocessor">#include <memory></span></div>
|
|
<div class="line"><a id="l04210" name="l04210"></a><span class="lineno"> 4210</span><span class="preprocessor">#include <ostream></span></div>
|
|
<div class="line"><a id="l04211" name="l04211"></a><span class="lineno"> 4211</span><span class="preprocessor">#include <sstream></span></div>
|
|
<div class="line"><a id="l04212" name="l04212"></a><span class="lineno"> 4212</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l04213" name="l04213"></a><span class="lineno"> 4213</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l04214" name="l04214"></a><span class="lineno"> 4214</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l04215" name="l04215"></a><span class="lineno"> 4215</span> </div>
|
|
<div class="line"><a id="l04216" name="l04216"></a><span class="lineno"> 4216</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l04217" name="l04217"></a><span class="lineno"> 4217</span> <span class="keyword">namespace </span>Clara {</div>
|
|
<div class="line"><a id="l04218" name="l04218"></a><span class="lineno"> 4218</span> </div>
|
|
<div class="line"><a id="l04219" name="l04219"></a><span class="lineno"> 4219</span> <span class="keyword">class </span>Args;</div>
|
|
<div class="line"><a id="l04220" name="l04220"></a><span class="lineno"> 4220</span> <span class="keyword">class </span>Parser;</div>
|
|
<div class="line"><a id="l04221" name="l04221"></a><span class="lineno"> 4221</span> </div>
|
|
<div class="line"><a id="l04222" name="l04222"></a><span class="lineno"> 4222</span> <span class="comment">// enum of result types from a parse</span></div>
|
|
<div class="foldopen" id="foldopen04223" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04223" name="l04223"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61"> 4223</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61">ParseResultType</a> {</div>
|
|
<div class="line"><a id="l04224" name="l04224"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d"> 4224</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d">Matched</a>,</div>
|
|
<div class="line"><a id="l04225" name="l04225"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ac8b77721c677e0429241a9250972122d"> 4225</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ac8b77721c677e0429241a9250972122d">NoMatch</a>,</div>
|
|
<div class="line"><a id="l04226" name="l04226"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61aaa79962a9cad5bd52c86305ad0bd9442"> 4226</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61aaa79962a9cad5bd52c86305ad0bd9442">ShortCircuitAll</a>,</div>
|
|
<div class="line"><a id="l04227" name="l04227"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61a3b06a989e906666754995bb461cacc4f"> 4227</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61a3b06a989e906666754995bb461cacc4f">ShortCircuitSame</a></div>
|
|
<div class="line"><a id="l04228" name="l04228"></a><span class="lineno"> 4228</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04229" name="l04229"></a><span class="lineno"> 4229</span> </div>
|
|
<div class="line"><a id="l04230" name="l04230"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1accept__many__t.html"> 4230</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1accept__many__t.html">accept_many_t</a> {};</div>
|
|
<div class="line"><a id="l04231" name="l04231"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara.html#ae84a92d31f809405143b6a0963649ea4"> 4231</a></span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1accept__many__t.html">accept_many_t</a> <a class="code hl_variable" href="namespaceCatch_1_1Clara.html#ae84a92d31f809405143b6a0963649ea4">accept_many</a> {};</div>
|
|
<div class="line"><a id="l04232" name="l04232"></a><span class="lineno"> 4232</span> </div>
|
|
<div class="line"><a id="l04233" name="l04233"></a><span class="lineno"> 4233</span> <span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1Detail.html">Detail</a> {</div>
|
|
<div class="foldopen" id="foldopen04234" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04234" name="l04234"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1fake__arg.html"> 4234</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1fake__arg.html">fake_arg</a> {</div>
|
|
<div class="line"><a id="l04235" name="l04235"></a><span class="lineno"> 4235</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l04236" name="l04236"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1fake__arg.html#a4ff1d144b5e2853c4dcf5eefe8cfb826"> 4236</a></span> <span class="keyword">operator</span> T();</div>
|
|
<div class="line"><a id="l04237" name="l04237"></a><span class="lineno"> 4237</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04238" name="l04238"></a><span class="lineno"> 4238</span> </div>
|
|
<div class="line"><a id="l04239" name="l04239"></a><span class="lineno"> 4239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> F, <span class="keyword">typename</span> = <span class="keywordtype">void</span>></div>
|
|
<div class="line"><a id="l04240" name="l04240"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html"> 4240</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">is_unary_function</a> : std::false_type {};</div>
|
|
<div class="line"><a id="l04241" name="l04241"></a><span class="lineno"> 4241</span> </div>
|
|
<div class="line"><a id="l04242" name="l04242"></a><span class="lineno"> 4242</span> <span class="keyword">template</span> <<span class="keyword">typename</span> F></div>
|
|
<div class="foldopen" id="foldopen04243" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04243" name="l04243"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function_3_01F_00_01Catch_1_1Detail_1_1void__t_3_0182394c29954fc08234dda1e3f0b3edaa.html"> 4243</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">is_unary_function</a><</div>
|
|
<div class="line"><a id="l04244" name="l04244"></a><span class="lineno"> 4244</span> F,</div>
|
|
<div class="line"><a id="l04245" name="l04245"></a><span class="lineno"> 4245</span> <a class="code hl_namespace" href="namespaceCatch.html">Catch</a>::<a class="code hl_typedef" href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d">Detail::void_t</a><decltype(</div>
|
|
<div class="line"><a id="l04246" name="l04246"></a><span class="lineno"> 4246</span> std::declval<F>()( fake_arg() ) )</div>
|
|
<div class="line"><a id="l04247" name="l04247"></a><span class="lineno"> 4247</span> ></div>
|
|
<div class="line"><a id="l04248" name="l04248"></a><span class="lineno"> 4248</span> > : std::true_type {};</div>
|
|
</div>
|
|
<div class="line"><a id="l04249" name="l04249"></a><span class="lineno"> 4249</span> </div>
|
|
<div class="line"><a id="l04250" name="l04250"></a><span class="lineno"> 4250</span> <span class="comment">// Traits for extracting arg and return type of lambdas (for single</span></div>
|
|
<div class="line"><a id="l04251" name="l04251"></a><span class="lineno"> 4251</span> <span class="comment">// argument lambdas)</span></div>
|
|
<div class="line"><a id="l04252" name="l04252"></a><span class="lineno"> 4252</span> <span class="keyword">template</span> <<span class="keyword">typename</span> L></div>
|
|
<div class="foldopen" id="foldopen04253" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04253" name="l04253"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html"> 4253</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a></div>
|
|
<div class="line"><a id="l04254" name="l04254"></a><span class="lineno"> 4254</span> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a><decltype( &L::operator() )> {};</div>
|
|
</div>
|
|
<div class="line"><a id="l04255" name="l04255"></a><span class="lineno"> 4255</span> </div>
|
|
<div class="line"><a id="l04256" name="l04256"></a><span class="lineno"> 4256</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ClassT, <span class="keyword">typename</span> ReturnT, <span class="keyword">typename</span>... <a class="code hl_class" href="classCatch_1_1Clara_1_1Args.html">Args</a>></div>
|
|
<div class="foldopen" id="foldopen04257" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04257" name="l04257"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07Args_8_8_8_08_01const_01_4.html"> 4257</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a><ReturnT ( ClassT::* )( Args... ) const> {</div>
|
|
<div class="line"><a id="l04258" name="l04258"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07Args_8_8_8_08_01const_01_4.html#a03300d673156c5ef9b417da012aaa4ac"> 4258</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07Args_8_8_8_08_01const_01_4.html#a03300d673156c5ef9b417da012aaa4ac">isValid</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l04259" name="l04259"></a><span class="lineno"> 4259</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04260" name="l04260"></a><span class="lineno"> 4260</span> </div>
|
|
<div class="line"><a id="l04261" name="l04261"></a><span class="lineno"> 4261</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ClassT, <span class="keyword">typename</span> ReturnT, <span class="keyword">typename</span> ArgT></div>
|
|
<div class="foldopen" id="foldopen04262" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04262" name="l04262"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html"> 4262</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a><ReturnT ( ClassT::* )( ArgT ) const> {</div>
|
|
<div class="line"><a id="l04263" name="l04263"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a10cccc922bfd18cf72bf956f2013af2c"> 4263</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a10cccc922bfd18cf72bf956f2013af2c">isValid</a> = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l04264" name="l04264"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a61ea3267fcf0b643d9451889c6a4e5ed"> 4264</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a61ea3267fcf0b643d9451889c6a4e5ed">ArgType</a> = std::remove_const_t<std::remove_reference_t<ArgT>>;</div>
|
|
<div class="line"><a id="l04265" name="l04265"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a3a3140ca54356f90ecce68ca32aedb18"> 4265</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a3a3140ca54356f90ecce68ca32aedb18">ReturnType</a> = ReturnT;</div>
|
|
<div class="line"><a id="l04266" name="l04266"></a><span class="lineno"> 4266</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04267" name="l04267"></a><span class="lineno"> 4267</span> </div>
|
|
<div class="line"><a id="l04268" name="l04268"></a><span class="lineno"> 4268</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a>;</div>
|
|
<div class="line"><a id="l04269" name="l04269"></a><span class="lineno"> 4269</span> </div>
|
|
<div class="line"><a id="l04270" name="l04270"></a><span class="lineno"> 4270</span> <span class="comment">// Wraps a token coming from a token stream. These may not directly</span></div>
|
|
<div class="line"><a id="l04271" name="l04271"></a><span class="lineno"> 4271</span> <span class="comment">// correspond to strings as a single string may encode an option +</span></div>
|
|
<div class="line"><a id="l04272" name="l04272"></a><span class="lineno"> 4272</span> <span class="comment">// its argument if the : or = form is used</span></div>
|
|
<div class="line"><a id="l04273" name="l04273"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04a1853680a6d666b9fea2d789dd00bc7eb"> 4273</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04">TokenType</a> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04a054b4f3ea543c990f6b125f41af6ebf7">Option</a>, <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04a1853680a6d666b9fea2d789dd00bc7eb">Argument</a> };</div>
|
|
<div class="foldopen" id="foldopen04274" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04274" name="l04274"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1Token.html"> 4274</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1Token.html">Token</a> {</div>
|
|
<div class="line"><a id="l04275" name="l04275"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a17573c21c9bc04d91005a815e1a5daf7"> 4275</a></span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04">TokenType</a> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a17573c21c9bc04d91005a815e1a5daf7">type</a>;</div>
|
|
<div class="line"><a id="l04276" name="l04276"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a26f66e6adc150e45cf325e0163367e41"> 4276</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a26f66e6adc150e45cf325e0163367e41">token</a>;</div>
|
|
<div class="line"><a id="l04277" name="l04277"></a><span class="lineno"> 4277</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04278" name="l04278"></a><span class="lineno"> 4278</span> </div>
|
|
<div class="line"><a id="l04279" name="l04279"></a><span class="lineno"> 4279</span> <span class="comment">// Abstracts iterators into args as a stream of tokens, with option</span></div>
|
|
<div class="line"><a id="l04280" name="l04280"></a><span class="lineno"> 4280</span> <span class="comment">// arguments uniformly handled</span></div>
|
|
<div class="foldopen" id="foldopen04281" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04281" name="l04281"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html"> 4281</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ad8dc980877675c10dac0f65db670c6f0">TokenStream</a> {</div>
|
|
<div class="line"><a id="l04282" name="l04282"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198"> 4282</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Iterator</a> = std::vector<StringRef>::const_iterator;</div>
|
|
<div class="line"><a id="l04283" name="l04283"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24"> 4283</a></span> <a class="code hl_typedef" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Iterator</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24">it</a>;</div>
|
|
<div class="line"><a id="l04284" name="l04284"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c"> 4284</a></span> <a class="code hl_typedef" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Iterator</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c">itEnd</a>;</div>
|
|
<div class="line"><a id="l04285" name="l04285"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1"> 4285</a></span> std::vector<Token> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>;</div>
|
|
<div class="line"><a id="l04286" name="l04286"></a><span class="lineno"> 4286</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a970fc9ebb56408c2ef3e3b1b9180034f">loadBuffer</a>();</div>
|
|
<div class="line"><a id="l04287" name="l04287"></a><span class="lineno"> 4287</span> </div>
|
|
<div class="line"><a id="l04288" name="l04288"></a><span class="lineno"> 4288</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04289" name="l04289"></a><span class="lineno"> 4289</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ad8dc980877675c10dac0f65db670c6f0">TokenStream</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Args.html">Args</a> <span class="keyword">const</span>& args );</div>
|
|
<div class="line"><a id="l04290" name="l04290"></a><span class="lineno"> 4290</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ad8dc980877675c10dac0f65db670c6f0">TokenStream</a>( <a class="code hl_typedef" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Iterator</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24">it</a>, <a class="code hl_typedef" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Iterator</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c">itEnd</a> );</div>
|
|
<div class="line"><a id="l04291" name="l04291"></a><span class="lineno"> 4291</span> </div>
|
|
<div class="foldopen" id="foldopen04292" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04292" name="l04292"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a0c7ded0e44bf8c8babae9f101994701f"> 4292</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04293" name="l04293"></a><span class="lineno"> 4293</span> <span class="keywordflow">return</span> !<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.empty() || <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24">it</a> != <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c">itEnd</a>;</div>
|
|
<div class="line"><a id="l04294" name="l04294"></a><span class="lineno"> 4294</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04295" name="l04295"></a><span class="lineno"> 4295</span> </div>
|
|
<div class="foldopen" id="foldopen04296" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04296" name="l04296"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a940261ffe80ac6b4bc385196b0868621"> 4296</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a940261ffe80ac6b4bc385196b0868621">count</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04297" name="l04297"></a><span class="lineno"> 4297</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.size() + ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c">itEnd</a> - <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24">it</a> );</div>
|
|
<div class="line"><a id="l04298" name="l04298"></a><span class="lineno"> 4298</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04299" name="l04299"></a><span class="lineno"> 4299</span> </div>
|
|
<div class="foldopen" id="foldopen04300" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04300" name="l04300"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ab3256d49e2065a8ee2f5c89767ac628a"> 4300</a></span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1Token.html">Token</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ab3256d49e2065a8ee2f5c89767ac628a">operator*</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04301" name="l04301"></a><span class="lineno"> 4301</span> assert( !<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.empty() );</div>
|
|
<div class="line"><a id="l04302" name="l04302"></a><span class="lineno"> 4302</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.front();</div>
|
|
<div class="line"><a id="l04303" name="l04303"></a><span class="lineno"> 4303</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04304" name="l04304"></a><span class="lineno"> 4304</span> </div>
|
|
<div class="foldopen" id="foldopen04305" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04305" name="l04305"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a4a0cfed4b9781c7ff20c11da579d4c06"> 4305</a></span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1Token.html">Token</a> <span class="keyword">const</span>* <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a4a0cfed4b9781c7ff20c11da579d4c06">operator-></a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04306" name="l04306"></a><span class="lineno"> 4306</span> assert( !<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.empty() );</div>
|
|
<div class="line"><a id="l04307" name="l04307"></a><span class="lineno"> 4307</span> <span class="keywordflow">return</span> &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">m_tokenBuffer</a>.front();</div>
|
|
<div class="line"><a id="l04308" name="l04308"></a><span class="lineno"> 4308</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04309" name="l04309"></a><span class="lineno"> 4309</span> </div>
|
|
<div class="line"><a id="l04310" name="l04310"></a><span class="lineno"> 4310</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a>& operator++();</div>
|
|
<div class="line"><a id="l04311" name="l04311"></a><span class="lineno"> 4311</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04312" name="l04312"></a><span class="lineno"> 4312</span></div>
|
|
<div class="foldopen" id="foldopen04314" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04314" name="l04314"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1"> 4314</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> {</div>
|
|
<div class="line"><a id="l04315" name="l04315"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115"> 4315</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">Ok</a>, </div>
|
|
<div class="line"><a id="l04316" name="l04316"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157"> 4316</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157">LogicError</a>, </div>
|
|
<div class="line"><a id="l04318" name="l04318"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1"> 4318</a></span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1">RuntimeError</a> </div>
|
|
<div class="line"><a id="l04319" name="l04319"></a><span class="lineno"> 4319</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04320" name="l04320"></a><span class="lineno"> 4320</span> </div>
|
|
<div class="foldopen" id="foldopen04321" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04321" name="l04321"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html"> 4321</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a> {</div>
|
|
<div class="line"><a id="l04322" name="l04322"></a><span class="lineno"> 4322</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l04323" name="l04323"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086"> 4323</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> type ): <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a>( type ) {}</div>
|
|
<div class="line"><a id="l04324" name="l04324"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a07fecafa1021ad679bc878a4c6cbea6d"> 4324</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a07fecafa1021ad679bc878a4c6cbea6d">~ResultBase</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l04325" name="l04325"></a><span class="lineno"> 4325</span> </div>
|
|
<div class="line"><a id="l04326" name="l04326"></a><span class="lineno"> 4326</span> </div>
|
|
<div class="line"><a id="l04327" name="l04327"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a75a480c3898c4622db5922b5b146c006"> 4327</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a75a480c3898c4622db5922b5b146c006">ResultBase</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04328" name="l04328"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a761941b417b13ab165cab8f12db394f2"> 4328</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a761941b417b13ab165cab8f12db394f2">operator=</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04329" name="l04329"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a9971684f2626900c1ed1b9f43b8ad97a"> 4329</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a9971684f2626900c1ed1b9f43b8ad97a">ResultBase</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04330" name="l04330"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a808a79ceca2dbf83da72347994784d4f"> 4330</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a808a79ceca2dbf83da72347994784d4f">operator=</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04331" name="l04331"></a><span class="lineno"> 4331</span> </div>
|
|
<div class="line"><a id="l04332" name="l04332"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#aa745dfcd5ea1c94e93b57e5434a34177"> 4332</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#aa745dfcd5ea1c94e93b57e5434a34177">enforceOk</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l04333" name="l04333"></a><span class="lineno"> 4333</span> </div>
|
|
<div class="line"><a id="l04334" name="l04334"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2"> 4334</a></span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a>;</div>
|
|
<div class="line"><a id="l04335" name="l04335"></a><span class="lineno"> 4335</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04336" name="l04336"></a><span class="lineno"> 4336</span> </div>
|
|
<div class="line"><a id="l04337" name="l04337"></a><span class="lineno"> 4337</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04338" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04338" name="l04338"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html"> 4338</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a> {</div>
|
|
<div class="line"><a id="l04339" name="l04339"></a><span class="lineno"> 4339</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen04340" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04340" name="l04340"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a"> 4340</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a>() const& {</div>
|
|
<div class="line"><a id="l04341" name="l04341"></a><span class="lineno"> 4341</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#aa745dfcd5ea1c94e93b57e5434a34177">enforceOk</a>();</div>
|
|
<div class="line"><a id="l04342" name="l04342"></a><span class="lineno"> 4342</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a>;</div>
|
|
<div class="line"><a id="l04343" name="l04343"></a><span class="lineno"> 4343</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04344" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04344" name="l04344"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ac205446a0e5a70a6d16fa497d515b83e"> 4344</a></span> T&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ac205446a0e5a70a6d16fa497d515b83e">value</a>() && {</div>
|
|
<div class="line"><a id="l04345" name="l04345"></a><span class="lineno"> 4345</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#aa745dfcd5ea1c94e93b57e5434a34177">enforceOk</a>();</div>
|
|
<div class="line"><a id="l04346" name="l04346"></a><span class="lineno"> 4346</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> );</div>
|
|
<div class="line"><a id="l04347" name="l04347"></a><span class="lineno"> 4347</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04348" name="l04348"></a><span class="lineno"> 4348</span> </div>
|
|
<div class="line"><a id="l04349" name="l04349"></a><span class="lineno"> 4349</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l04350" name="l04350"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a"> 4350</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> type ): <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( type ) {}</div>
|
|
<div class="line"><a id="l04351" name="l04351"></a><span class="lineno"> 4351</span> </div>
|
|
<div class="foldopen" id="foldopen04352" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04352" name="l04352"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a5c51e56e4f6074c61c6aa5cacfa18022"> 4352</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a5c51e56e4f6074c61c6aa5cacfa18022">ResultValueBase</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a> <span class="keyword">const</span>& other ):</div>
|
|
<div class="line"><a id="l04353" name="l04353"></a><span class="lineno"> 4353</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( other ) {</div>
|
|
<div class="line"><a id="l04354" name="l04354"></a><span class="lineno"> 4354</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04355" name="l04355"></a><span class="lineno"> 4355</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( other.<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> );</div>
|
|
<div class="line"><a id="l04356" name="l04356"></a><span class="lineno"> 4356</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04357" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04357" name="l04357"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a9eaf605757feed205f4fd6332a8baa1b"> 4357</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a9eaf605757feed205f4fd6332a8baa1b">ResultValueBase</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a>&& other ):</div>
|
|
<div class="line"><a id="l04358" name="l04358"></a><span class="lineno"> 4358</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( other ) {</div>
|
|
<div class="line"><a id="l04359" name="l04359"></a><span class="lineno"> 4359</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04360" name="l04360"></a><span class="lineno"> 4360</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(other.m_value) );</div>
|
|
<div class="line"><a id="l04361" name="l04361"></a><span class="lineno"> 4361</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04362" name="l04362"></a><span class="lineno"> 4362</span> </div>
|
|
<div class="line"><a id="l04363" name="l04363"></a><span class="lineno"> 4363</span> </div>
|
|
<div class="foldopen" id="foldopen04364" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04364" name="l04364"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0bd390452e6412aefa0dc8d732ff52c5"> 4364</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0bd390452e6412aefa0dc8d732ff52c5">ResultValueBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a>, T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a> ):</div>
|
|
<div class="line"><a id="l04365" name="l04365"></a><span class="lineno"> 4365</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a>::<a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">Ok</a> ) {</div>
|
|
<div class="line"><a id="l04366" name="l04366"></a><span class="lineno"> 4366</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a> );</div>
|
|
<div class="line"><a id="l04367" name="l04367"></a><span class="lineno"> 4367</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04368" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04368" name="l04368"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a3d85c7ccab03a8b20dffa2678ee8ed77"> 4368</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a3d85c7ccab03a8b20dffa2678ee8ed77">ResultValueBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a>, T&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a> ):</div>
|
|
<div class="line"><a id="l04369" name="l04369"></a><span class="lineno"> 4369</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a>::<a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">Ok</a> ) {</div>
|
|
<div class="line"><a id="l04370" name="l04370"></a><span class="lineno"> 4370</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a>) );</div>
|
|
<div class="line"><a id="l04371" name="l04371"></a><span class="lineno"> 4371</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04372" name="l04372"></a><span class="lineno"> 4372</span> </div>
|
|
<div class="foldopen" id="foldopen04373" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04373" name="l04373"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0e5c16b22375908f71f052493deda158"> 4373</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0e5c16b22375908f71f052493deda158">operator=</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a> <span class="keyword">const</span>& other ) {</div>
|
|
<div class="line"><a id="l04374" name="l04374"></a><span class="lineno"> 4374</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04375" name="l04375"></a><span class="lineno"> 4375</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a>.~T();</div>
|
|
<div class="line"><a id="l04376" name="l04376"></a><span class="lineno"> 4376</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a761941b417b13ab165cab8f12db394f2">ResultBase::operator=</a>( other );</div>
|
|
<div class="line"><a id="l04377" name="l04377"></a><span class="lineno"> 4377</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04378" name="l04378"></a><span class="lineno"> 4378</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( other.<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> );</div>
|
|
<div class="line"><a id="l04379" name="l04379"></a><span class="lineno"> 4379</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l04380" name="l04380"></a><span class="lineno"> 4380</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04381" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04381" name="l04381"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a32385a630a328ffa9891032cdf0b5e78"> 4381</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a32385a630a328ffa9891032cdf0b5e78">operator=</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a>&& other ) {</div>
|
|
<div class="line"><a id="l04382" name="l04382"></a><span class="lineno"> 4382</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> ) <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a>.~T();</div>
|
|
<div class="line"><a id="l04383" name="l04383"></a><span class="lineno"> 4383</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a761941b417b13ab165cab8f12db394f2">ResultBase::operator=</a>( other );</div>
|
|
<div class="line"><a id="l04384" name="l04384"></a><span class="lineno"> 4384</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04385" name="l04385"></a><span class="lineno"> 4385</span> <span class="keyword">new</span> ( &<a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a> ) T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(other.m_value) );</div>
|
|
<div class="line"><a id="l04386" name="l04386"></a><span class="lineno"> 4386</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l04387" name="l04387"></a><span class="lineno"> 4387</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04388" name="l04388"></a><span class="lineno"> 4388</span> </div>
|
|
<div class="line"><a id="l04389" name="l04389"></a><span class="lineno"> 4389</span> </div>
|
|
<div class="foldopen" id="foldopen04390" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04390" name="l04390"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ab06f7ed3b1956baad0ea8316991d660e"> 4390</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ab06f7ed3b1956baad0ea8316991d660e">~ResultValueBase</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l04391" name="l04391"></a><span class="lineno"> 4391</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04392" name="l04392"></a><span class="lineno"> 4392</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a>.~T();</div>
|
|
<div class="line"><a id="l04393" name="l04393"></a><span class="lineno"> 4393</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04394" name="l04394"></a><span class="lineno"> 4394</span> </div>
|
|
<div class="line"><a id="l04395" name="l04395"></a><span class="lineno"> 4395</span> <span class="keyword">union </span>{</div>
|
|
<div class="line"><a id="l04396" name="l04396"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a"> 4396</a></span> T <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">m_value</a>;</div>
|
|
<div class="line"><a id="l04397" name="l04397"></a><span class="lineno"> 4397</span> };</div>
|
|
<div class="line"><a id="l04398" name="l04398"></a><span class="lineno"> 4398</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04399" name="l04399"></a><span class="lineno"> 4399</span> </div>
|
|
<div class="foldopen" id="foldopen04400" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04400" name="l04400"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase_3_01void_01_4.html"> 4400</a></span> <span class="keyword">template</span> <> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a><void> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase_3_01void_01_4.html#a533f12fda5654c0f71f311877b137086">ResultBase</a> {</div>
|
|
<div class="line"><a id="l04401" name="l04401"></a><span class="lineno"> 4401</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l04402" name="l04402"></a><span class="lineno"> 4402</span> <span class="keyword">using </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">ResultBase::ResultBase</a>;</div>
|
|
<div class="line"><a id="l04403" name="l04403"></a><span class="lineno"> 4403</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04404" name="l04404"></a><span class="lineno"> 4404</span> </div>
|
|
<div class="line"><a id="l04405" name="l04405"></a><span class="lineno"> 4405</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T = <span class="keywordtype">void</span>></div>
|
|
<div class="foldopen" id="foldopen04406" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04406" name="l04406"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html"> 4406</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a><T> {</div>
|
|
<div class="line"><a id="l04407" name="l04407"></a><span class="lineno"> 4407</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04408" name="l04408"></a><span class="lineno"> 4408</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="foldopen" id="foldopen04409" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04409" name="l04409"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0"> 4409</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult<U></a> <span class="keyword">const</span>& other ):</div>
|
|
<div class="line"><a id="l04410" name="l04410"></a><span class="lineno"> 4410</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a><T>( other.<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">type</a>() ),</div>
|
|
<div class="line"><a id="l04411" name="l04411"></a><span class="lineno"> 4411</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8">m_errorMessage</a>( other.<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a72212341d12d38b9ef6f8c3ecaae3d66">errorMessage</a>() ) {</div>
|
|
<div class="line"><a id="l04412" name="l04412"></a><span class="lineno"> 4412</span> assert( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">type</a>() != <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> );</div>
|
|
<div class="line"><a id="l04413" name="l04413"></a><span class="lineno"> 4413</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04414" name="l04414"></a><span class="lineno"> 4414</span> </div>
|
|
<div class="line"><a id="l04415" name="l04415"></a><span class="lineno"> 4415</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="foldopen" id="foldopen04416" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04416" name="l04416"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446"> 4416</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446">ok</a>( U&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a> ) -> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a> {</div>
|
|
<div class="line"><a id="l04417" name="l04417"></a><span class="lineno"> 4417</span> <span class="keywordflow">return</span> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a>, <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(<a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">value</a>) };</div>
|
|
<div class="line"><a id="l04418" name="l04418"></a><span class="lineno"> 4418</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04419" name="l04419"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4d9c94c86f71eaa76356ab808a221b62"> 4419</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4d9c94c86f71eaa76356ab808a221b62">ok</a>() -> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a> { <span class="keywordflow">return</span> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> }; }</div>
|
|
<div class="foldopen" id="foldopen04420" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04420" name="l04420"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ae6c470af1becfc54d75df69104e45160"> 4420</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ae6c470af1becfc54d75df69104e45160">logicError</a>( std::string&& message )</div>
|
|
<div class="line"><a id="l04421" name="l04421"></a><span class="lineno"> 4421</span> -> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a> {</div>
|
|
<div class="line"><a id="l04422" name="l04422"></a><span class="lineno"> 4422</span> <span class="keywordflow">return</span> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157">ResultType::LogicError</a>, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(message) };</div>
|
|
<div class="line"><a id="l04423" name="l04423"></a><span class="lineno"> 4423</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04424" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04424" name="l04424"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a8adbd2c9cd517ae768a18b9d9dca2c01"> 4424</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a8adbd2c9cd517ae768a18b9d9dca2c01">runtimeError</a>( std::string&& message )</div>
|
|
<div class="line"><a id="l04425" name="l04425"></a><span class="lineno"> 4425</span> -> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">BasicResult</a> {</div>
|
|
<div class="line"><a id="l04426" name="l04426"></a><span class="lineno"> 4426</span> <span class="keywordflow">return</span> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1">ResultType::RuntimeError</a>, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(message) };</div>
|
|
<div class="line"><a id="l04427" name="l04427"></a><span class="lineno"> 4427</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04428" name="l04428"></a><span class="lineno"> 4428</span> </div>
|
|
<div class="foldopen" id="foldopen04429" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04429" name="l04429"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a015816d63f3b71d246d95142e3223e13"> 4429</a></span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04430" name="l04430"></a><span class="lineno"> 4430</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a>;</div>
|
|
<div class="line"><a id="l04431" name="l04431"></a><span class="lineno"> 4431</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04432" name="l04432"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16"> 4432</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">type</a>() const -> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> { <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a>; }</div>
|
|
<div class="foldopen" id="foldopen04433" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04433" name="l04433"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a72212341d12d38b9ef6f8c3ecaae3d66"> 4433</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a72212341d12d38b9ef6f8c3ecaae3d66">errorMessage</a>() const -> std::<span class="keywordtype">string</span> const& {</div>
|
|
<div class="line"><a id="l04434" name="l04434"></a><span class="lineno"> 4434</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8">m_errorMessage</a>;</div>
|
|
<div class="line"><a id="l04435" name="l04435"></a><span class="lineno"> 4435</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04436" name="l04436"></a><span class="lineno"> 4436</span> </div>
|
|
<div class="line"><a id="l04437" name="l04437"></a><span class="lineno"> 4437</span> <span class="keyword">protected</span>:</div>
|
|
<div class="foldopen" id="foldopen04438" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04438" name="l04438"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a87690846616d49ba834603770909055d"> 4438</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a87690846616d49ba834603770909055d">enforceOk</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l04439" name="l04439"></a><span class="lineno"> 4439</span> </div>
|
|
<div class="line"><a id="l04440" name="l04440"></a><span class="lineno"> 4440</span> <span class="comment">// Errors shouldn't reach this point, but if they do</span></div>
|
|
<div class="line"><a id="l04441" name="l04441"></a><span class="lineno"> 4441</span> <span class="comment">// the actual error message will be in m_errorMessage</span></div>
|
|
<div class="line"><a id="l04442" name="l04442"></a><span class="lineno"> 4442</span> assert( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a> != <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157">ResultType::LogicError</a> );</div>
|
|
<div class="line"><a id="l04443" name="l04443"></a><span class="lineno"> 4443</span> assert( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a> != <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1">ResultType::RuntimeError</a> );</div>
|
|
<div class="line"><a id="l04444" name="l04444"></a><span class="lineno"> 4444</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a> != <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> )</div>
|
|
<div class="line"><a id="l04445" name="l04445"></a><span class="lineno"> 4445</span> std::abort();</div>
|
|
<div class="line"><a id="l04446" name="l04446"></a><span class="lineno"> 4446</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04447" name="l04447"></a><span class="lineno"> 4447</span> </div>
|
|
<div class="line"><a id="l04448" name="l04448"></a><span class="lineno"> 4448</span> std::string</div>
|
|
<div class="line"><a id="l04449" name="l04449"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8"> 4449</a></span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8">m_errorMessage</a>; <span class="comment">// Only populated if resultType is an error</span></div>
|
|
<div class="line"><a id="l04450" name="l04450"></a><span class="lineno"> 4450</span> </div>
|
|
<div class="foldopen" id="foldopen04451" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04451" name="l04451"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a881617c5872c403eacc22966a046fc82"> 4451</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a881617c5872c403eacc22966a046fc82">BasicResult</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">type</a>,</div>
|
|
<div class="line"><a id="l04452" name="l04452"></a><span class="lineno"> 4452</span> std::string&& message ):</div>
|
|
<div class="line"><a id="l04453" name="l04453"></a><span class="lineno"> 4453</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">ResultValueBase</a><T>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">type</a> ), <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8">m_errorMessage</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(message) ) {</div>
|
|
<div class="line"><a id="l04454" name="l04454"></a><span class="lineno"> 4454</span> assert( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">m_type</a> != <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">ResultType::Ok</a> );</div>
|
|
<div class="line"><a id="l04455" name="l04455"></a><span class="lineno"> 4455</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04456" name="l04456"></a><span class="lineno"> 4456</span> </div>
|
|
<div class="line"><a id="l04457" name="l04457"></a><span class="lineno"> 4457</span> <span class="keyword">using </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html">ResultValueBase</a><T><a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html">::ResultValueBase</a>;</div>
|
|
<div class="line"><a id="l04458" name="l04458"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2"> 4458</a></span> <span class="keyword">using </span><a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">ResultBase::m_type</a>;</div>
|
|
<div class="line"><a id="l04459" name="l04459"></a><span class="lineno"> 4459</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04460" name="l04460"></a><span class="lineno"> 4460</span> </div>
|
|
<div class="foldopen" id="foldopen04461" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04461" name="l04461"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html"> 4461</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a0679064574ecbebec9285d8e92afbd9b">ParseState</a> {</div>
|
|
<div class="line"><a id="l04462" name="l04462"></a><span class="lineno"> 4462</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04463" name="l04463"></a><span class="lineno"> 4463</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a0679064574ecbebec9285d8e92afbd9b">ParseState</a>( <a class="code hl_enumeration" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61">ParseResultType</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a211fa625d0df8986696fa20cce24b303">type</a>,</div>
|
|
<div class="line"><a id="l04464" name="l04464"></a><span class="lineno"> 4464</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a2c6aaa931d54f2733f653379db9b6cc7">remainingTokens</a> );</div>
|
|
<div class="line"><a id="l04465" name="l04465"></a><span class="lineno"> 4465</span> </div>
|
|
<div class="line"><a id="l04466" name="l04466"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a211fa625d0df8986696fa20cce24b303"> 4466</a></span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61">ParseResultType</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a211fa625d0df8986696fa20cce24b303">type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#ac5d99ac34c7f193b80d2172f4390c821">m_type</a>; }</div>
|
|
<div class="foldopen" id="foldopen04467" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04467" name="l04467"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a2c6aaa931d54f2733f653379db9b6cc7"> 4467</a></span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a2c6aaa931d54f2733f653379db9b6cc7">remainingTokens</a>() const& {</div>
|
|
<div class="line"><a id="l04468" name="l04468"></a><span class="lineno"> 4468</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a9d44a683a634fb521a1caafa9afaa69f">m_remainingTokens</a>;</div>
|
|
<div class="line"><a id="l04469" name="l04469"></a><span class="lineno"> 4469</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04470" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04470" name="l04470"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a1783a7644a87ceeda5757c9dbaee15a8"> 4470</a></span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a>&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a1783a7644a87ceeda5757c9dbaee15a8">remainingTokens</a>() && {</div>
|
|
<div class="line"><a id="l04471" name="l04471"></a><span class="lineno"> 4471</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a9d44a683a634fb521a1caafa9afaa69f">m_remainingTokens</a> );</div>
|
|
<div class="line"><a id="l04472" name="l04472"></a><span class="lineno"> 4472</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04473" name="l04473"></a><span class="lineno"> 4473</span> </div>
|
|
<div class="line"><a id="l04474" name="l04474"></a><span class="lineno"> 4474</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l04475" name="l04475"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#ac5d99ac34c7f193b80d2172f4390c821"> 4475</a></span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61">ParseResultType</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#ac5d99ac34c7f193b80d2172f4390c821">m_type</a>;</div>
|
|
<div class="line"><a id="l04476" name="l04476"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a9d44a683a634fb521a1caafa9afaa69f"> 4476</a></span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a9d44a683a634fb521a1caafa9afaa69f">m_remainingTokens</a>;</div>
|
|
<div class="line"><a id="l04477" name="l04477"></a><span class="lineno"> 4477</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04478" name="l04478"></a><span class="lineno"> 4478</span> </div>
|
|
<div class="line"><a id="l04479" name="l04479"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a"> 4479</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a">Result</a> = <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html">BasicResult<void></a>;</div>
|
|
<div class="line"><a id="l04480" name="l04480"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42"> 4480</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> = <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html">BasicResult<ParseResultType></a>;</div>
|
|
<div class="line"><a id="l04481" name="l04481"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf"> 4481</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">InternalParseResult</a> = <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html">BasicResult<ParseState></a>;</div>
|
|
<div class="line"><a id="l04482" name="l04482"></a><span class="lineno"> 4482</span> </div>
|
|
<div class="foldopen" id="foldopen04483" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04483" name="l04483"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html"> 4483</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html">HelpColumns</a> {</div>
|
|
<div class="line"><a id="l04484" name="l04484"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#ae2146379a2c62a134824a1b2d8ebf63c"> 4484</a></span> std::string <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#ae2146379a2c62a134824a1b2d8ebf63c">left</a>;</div>
|
|
<div class="line"><a id="l04485" name="l04485"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#a1259be2140566b6519190c8fbeb565df"> 4485</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#a1259be2140566b6519190c8fbeb565df">descriptions</a>;</div>
|
|
<div class="line"><a id="l04486" name="l04486"></a><span class="lineno"> 4486</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04487" name="l04487"></a><span class="lineno"> 4487</span> </div>
|
|
<div class="line"><a id="l04488" name="l04488"></a><span class="lineno"> 4488</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04489" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04489" name="l04489"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#a91a7876e712852feaf1d1d6072216af9"> 4489</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#ab5b76a1843c33a4a71aa698a3defc528">convertInto</a>( std::string <span class="keyword">const</span>& source, T& target ) {</div>
|
|
<div class="line"><a id="l04490" name="l04490"></a><span class="lineno"> 4490</span> std::stringstream ss( source );</div>
|
|
<div class="line"><a id="l04491" name="l04491"></a><span class="lineno"> 4491</span> ss >> target;</div>
|
|
<div class="line"><a id="l04492" name="l04492"></a><span class="lineno"> 4492</span> <span class="keywordflow">if</span> ( ss.fail() ) {</div>
|
|
<div class="line"><a id="l04493" name="l04493"></a><span class="lineno"> 4493</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a8adbd2c9cd517ae768a18b9d9dca2c01">ParserResult::runtimeError</a>(</div>
|
|
<div class="line"><a id="l04494" name="l04494"></a><span class="lineno"> 4494</span> <span class="stringliteral">"Unable to convert '"</span> + source +</div>
|
|
<div class="line"><a id="l04495" name="l04495"></a><span class="lineno"> 4495</span> <span class="stringliteral">"' to destination type"</span> );</div>
|
|
<div class="line"><a id="l04496" name="l04496"></a><span class="lineno"> 4496</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l04497" name="l04497"></a><span class="lineno"> 4497</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446">ParserResult::ok</a>( <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d">ParseResultType::Matched</a> );</div>
|
|
<div class="line"><a id="l04498" name="l04498"></a><span class="lineno"> 4498</span> }</div>
|
|
<div class="line"><a id="l04499" name="l04499"></a><span class="lineno"> 4499</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04500" name="l04500"></a><span class="lineno"> 4500</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> convertInto( std::string <span class="keyword">const</span>& source,</div>
|
|
<div class="line"><a id="l04501" name="l04501"></a><span class="lineno"> 4501</span> std::string& target );</div>
|
|
<div class="line"><a id="l04502" name="l04502"></a><span class="lineno"> 4502</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> convertInto( std::string <span class="keyword">const</span>& source, <span class="keywordtype">bool</span>& target );</div>
|
|
<div class="line"><a id="l04503" name="l04503"></a><span class="lineno"> 4503</span> </div>
|
|
<div class="line"><a id="l04504" name="l04504"></a><span class="lineno"> 4504</span><span class="preprocessor">#ifdef CLARA_CONFIG_OPTIONAL_TYPE</span></div>
|
|
<div class="line"><a id="l04505" name="l04505"></a><span class="lineno"> 4505</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l04506" name="l04506"></a><span class="lineno"> 4506</span> <span class="keyword">auto</span> convertInto( std::string <span class="keyword">const</span>& source,</div>
|
|
<div class="line"><a id="l04507" name="l04507"></a><span class="lineno"> 4507</span> CLARA_CONFIG_OPTIONAL_TYPE<T>& target )</div>
|
|
<div class="line"><a id="l04508" name="l04508"></a><span class="lineno"> 4508</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> {</div>
|
|
<div class="line"><a id="l04509" name="l04509"></a><span class="lineno"> 4509</span> T temp;</div>
|
|
<div class="line"><a id="l04510" name="l04510"></a><span class="lineno"> 4510</span> <span class="keyword">auto</span> result = convertInto( source, temp );</div>
|
|
<div class="line"><a id="l04511" name="l04511"></a><span class="lineno"> 4511</span> <span class="keywordflow">if</span> ( result )</div>
|
|
<div class="line"><a id="l04512" name="l04512"></a><span class="lineno"> 4512</span> target = <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( temp );</div>
|
|
<div class="line"><a id="l04513" name="l04513"></a><span class="lineno"> 4513</span> <span class="keywordflow">return</span> result;</div>
|
|
<div class="line"><a id="l04514" name="l04514"></a><span class="lineno"> 4514</span> }</div>
|
|
<div class="line"><a id="l04515" name="l04515"></a><span class="lineno"> 4515</span><span class="preprocessor">#endif </span><span class="comment">// CLARA_CONFIG_OPTIONAL_TYPE</span></div>
|
|
<div class="line"><a id="l04516" name="l04516"></a><span class="lineno"> 4516</span> </div>
|
|
<div class="foldopen" id="foldopen04517" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04517" name="l04517"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html"> 4517</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html">BoundRef</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Catch::Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l04518" name="l04518"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#a67026ffa73a70686b56cd4a81b5f3b2c"> 4518</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#a67026ffa73a70686b56cd4a81b5f3b2c">~BoundRef</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04519" name="l04519"></a><span class="lineno"> 4519</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#a4d240d57ca2a9e028410da61ec8c8986">isContainer</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04520" name="l04520"></a><span class="lineno"> 4520</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#aef6d0a21a22418b8580f60bbdd83f420">isFlag</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04521" name="l04521"></a><span class="lineno"> 4521</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04522" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04522" name="l04522"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html"> 4522</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html">BoundValueRefBase</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html">BoundRef</a> {</div>
|
|
<div class="line"><a id="l04523" name="l04523"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html#aa0567715426053267207c58342ed3fc8"> 4523</a></span> <span class="keyword">virtual</span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html#aa0567715426053267207c58342ed3fc8">setValue</a>( std::string <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04524" name="l04524"></a><span class="lineno"> 4524</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> = 0;</div>
|
|
<div class="line"><a id="l04525" name="l04525"></a><span class="lineno"> 4525</span> };</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04526" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04526" name="l04526"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html"> 4526</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html">BoundFlagRefBase</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html">BoundRef</a> {</div>
|
|
<div class="line"><a id="l04527" name="l04527"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html#ace5c2ee089c74ecb6b2faf705c0b3c47"> 4527</a></span> <span class="keyword">virtual</span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html#ace5c2ee089c74ecb6b2faf705c0b3c47">setFlag</a>( <span class="keywordtype">bool</span> flag ) -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> = 0;</div>
|
|
<div class="line"><a id="l04528" name="l04528"></a><span class="lineno"> 4528</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html#a7c34675b920014dda03f8025d8614365">isFlag</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04529" name="l04529"></a><span class="lineno"> 4529</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04530" name="l04530"></a><span class="lineno"> 4530</span> </div>
|
|
<div class="foldopen" id="foldopen04531" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04531" name="l04531"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html"> 4531</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3dc01495f65f13239f4a015dbb012940">BoundValueRef</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html">BoundValueRefBase</a> {</div>
|
|
<div class="line"><a id="l04532" name="l04532"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3be8fb98a0eaf9d95513d1c60a4f01cb"> 4532</a></span> T& <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3be8fb98a0eaf9d95513d1c60a4f01cb">m_ref</a>;</div>
|
|
<div class="line"><a id="l04533" name="l04533"></a><span class="lineno"> 4533</span> </div>
|
|
<div class="line"><a id="l04534" name="l04534"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3dc01495f65f13239f4a015dbb012940"> 4534</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3dc01495f65f13239f4a015dbb012940">BoundValueRef</a>( T& ref ): <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3be8fb98a0eaf9d95513d1c60a4f01cb">m_ref</a>( ref ) {}</div>
|
|
<div class="line"><a id="l04535" name="l04535"></a><span class="lineno"> 4535</span> </div>
|
|
<div class="foldopen" id="foldopen04536" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04536" name="l04536"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a178228658004255150c6984aefff0d03"> 4536</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a178228658004255150c6984aefff0d03">setValue</a>( std::string <span class="keyword">const</span>& arg )<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l04537" name="l04537"></a><span class="lineno"> 4537</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#ab5b76a1843c33a4a71aa698a3defc528">convertInto</a>( arg, <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3be8fb98a0eaf9d95513d1c60a4f01cb">m_ref</a> );</div>
|
|
<div class="line"><a id="l04538" name="l04538"></a><span class="lineno"> 4538</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04539" name="l04539"></a><span class="lineno"> 4539</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04540" name="l04540"></a><span class="lineno"> 4540</span> </div>
|
|
<div class="line"><a id="l04541" name="l04541"></a><span class="lineno"> 4541</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04542" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04542" name="l04542"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html"> 4542</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a0da2f97ae86ae3a839533f2363252b1c">BoundValueRef</a><std::vector<T>> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html">BoundValueRefBase</a> {</div>
|
|
<div class="line"><a id="l04543" name="l04543"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3932641218df5ec78b4cd8748318c820"> 4543</a></span> std::vector<T>& <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3932641218df5ec78b4cd8748318c820">m_ref</a>;</div>
|
|
<div class="line"><a id="l04544" name="l04544"></a><span class="lineno"> 4544</span> </div>
|
|
<div class="line"><a id="l04545" name="l04545"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a0da2f97ae86ae3a839533f2363252b1c"> 4545</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a0da2f97ae86ae3a839533f2363252b1c">BoundValueRef</a>( std::vector<T>& ref ): <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3932641218df5ec78b4cd8748318c820">m_ref</a>( ref ) {}</div>
|
|
<div class="line"><a id="l04546" name="l04546"></a><span class="lineno"> 4546</span> </div>
|
|
<div class="line"><a id="l04547" name="l04547"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a122a3afa72dbdf202af14e93365806aa"> 4547</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a122a3afa72dbdf202af14e93365806aa">isContainer</a>() const -> <span class="keywordtype">bool</span><span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
|
|
<div class="line"><a id="l04548" name="l04548"></a><span class="lineno"> 4548</span> </div>
|
|
<div class="foldopen" id="foldopen04549" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04549" name="l04549"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3f70815651b76772e3b4016e8a2a7f8c"> 4549</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3f70815651b76772e3b4016e8a2a7f8c">setValue</a>( std::string <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04550" name="l04550"></a><span class="lineno"> 4550</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> <span class="keyword">override</span> {</div>
|
|
<div class="line"><a id="l04551" name="l04551"></a><span class="lineno"> 4551</span> T temp;</div>
|
|
<div class="line"><a id="l04552" name="l04552"></a><span class="lineno"> 4552</span> <span class="keyword">auto</span> result = <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#ab5b76a1843c33a4a71aa698a3defc528">convertInto</a>( arg, temp );</div>
|
|
<div class="line"><a id="l04553" name="l04553"></a><span class="lineno"> 4553</span> <span class="keywordflow">if</span> ( result )</div>
|
|
<div class="line"><a id="l04554" name="l04554"></a><span class="lineno"> 4554</span> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3932641218df5ec78b4cd8748318c820">m_ref</a>.push_back( temp );</div>
|
|
<div class="line"><a id="l04555" name="l04555"></a><span class="lineno"> 4555</span> <span class="keywordflow">return</span> result;</div>
|
|
<div class="line"><a id="l04556" name="l04556"></a><span class="lineno"> 4556</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04557" name="l04557"></a><span class="lineno"> 4557</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04558" name="l04558"></a><span class="lineno"> 4558</span> </div>
|
|
<div class="foldopen" id="foldopen04559" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04559" name="l04559"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html"> 4559</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a9b422f2e11188095e3e9c9217dcf44b6">BoundFlagRef</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html">BoundFlagRefBase</a> {</div>
|
|
<div class="line"><a id="l04560" name="l04560"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a23864ade2db416da0124b79fd6d56202"> 4560</a></span> <span class="keywordtype">bool</span>& <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a23864ade2db416da0124b79fd6d56202">m_ref</a>;</div>
|
|
<div class="line"><a id="l04561" name="l04561"></a><span class="lineno"> 4561</span> </div>
|
|
<div class="line"><a id="l04562" name="l04562"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a9b422f2e11188095e3e9c9217dcf44b6"> 4562</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a9b422f2e11188095e3e9c9217dcf44b6">BoundFlagRef</a>( <span class="keywordtype">bool</span>& ref ): <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a23864ade2db416da0124b79fd6d56202">m_ref</a>( ref ) {}</div>
|
|
<div class="line"><a id="l04563" name="l04563"></a><span class="lineno"> 4563</span> </div>
|
|
<div class="line"><a id="l04564" name="l04564"></a><span class="lineno"> 4564</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> setFlag( <span class="keywordtype">bool</span> flag ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l04565" name="l04565"></a><span class="lineno"> 4565</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04566" name="l04566"></a><span class="lineno"> 4566</span> </div>
|
|
<div class="foldopen" id="foldopen04567" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04567" name="l04567"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html"> 4567</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> ReturnType> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html">LambdaInvoker</a> {</div>
|
|
<div class="line"><a id="l04568" name="l04568"></a><span class="lineno"> 4568</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l04569" name="l04569"></a><span class="lineno"> 4569</span> std::is_same<ReturnType, ParserResult>::value,</div>
|
|
<div class="line"><a id="l04570" name="l04570"></a><span class="lineno"> 4570</span> <span class="stringliteral">"Lambda must return void or clara::ParserResult"</span> );</div>
|
|
<div class="line"><a id="l04571" name="l04571"></a><span class="lineno"> 4571</span> </div>
|
|
<div class="line"><a id="l04572" name="l04572"></a><span class="lineno"> 4572</span> <span class="keyword">template</span> <<span class="keyword">typename</span> L, <span class="keyword">typename</span> ArgType></div>
|
|
<div class="foldopen" id="foldopen04573" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04573" name="l04573"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html#a50c5d59c9c08b0ef32be08fd4e41529e"> 4573</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html#a50c5d59c9c08b0ef32be08fd4e41529e">invoke</a>( L <span class="keyword">const</span>& lambda, ArgType <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04574" name="l04574"></a><span class="lineno"> 4574</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> {</div>
|
|
<div class="line"><a id="l04575" name="l04575"></a><span class="lineno"> 4575</span> <span class="keywordflow">return</span> lambda( arg );</div>
|
|
<div class="line"><a id="l04576" name="l04576"></a><span class="lineno"> 4576</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04577" name="l04577"></a><span class="lineno"> 4577</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04578" name="l04578"></a><span class="lineno"> 4578</span> </div>
|
|
<div class="foldopen" id="foldopen04579" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04579" name="l04579"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_3_01void_01_4.html"> 4579</a></span> <span class="keyword">template</span> <> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html">LambdaInvoker</a><void> {</div>
|
|
<div class="line"><a id="l04580" name="l04580"></a><span class="lineno"> 4580</span> <span class="keyword">template</span> <<span class="keyword">typename</span> L, <span class="keyword">typename</span> ArgType></div>
|
|
<div class="foldopen" id="foldopen04581" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04581" name="l04581"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_3_01void_01_4.html#a9022e9b0cf0b907b459633c679340111"> 4581</a></span> <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_3_01void_01_4.html#a9022e9b0cf0b907b459633c679340111">invoke</a>( L <span class="keyword">const</span>& lambda, ArgType <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04582" name="l04582"></a><span class="lineno"> 4582</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> {</div>
|
|
<div class="line"><a id="l04583" name="l04583"></a><span class="lineno"> 4583</span> lambda( arg );</div>
|
|
<div class="line"><a id="l04584" name="l04584"></a><span class="lineno"> 4584</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446">ParserResult::ok</a>( <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d">ParseResultType::Matched</a> );</div>
|
|
<div class="line"><a id="l04585" name="l04585"></a><span class="lineno"> 4585</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04586" name="l04586"></a><span class="lineno"> 4586</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04587" name="l04587"></a><span class="lineno"> 4587</span> </div>
|
|
<div class="line"><a id="l04588" name="l04588"></a><span class="lineno"> 4588</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ArgType, <span class="keyword">typename</span> L></div>
|
|
<div class="foldopen" id="foldopen04589" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04589" name="l04589"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#aa756e2e2404a66852ab7fbd14a2a4647"> 4589</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#aa756e2e2404a66852ab7fbd14a2a4647">invokeLambda</a>( L <span class="keyword">const</span>& lambda, std::string <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04590" name="l04590"></a><span class="lineno"> 4590</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> {</div>
|
|
<div class="line"><a id="l04591" name="l04591"></a><span class="lineno"> 4591</span> ArgType temp{};</div>
|
|
<div class="line"><a id="l04592" name="l04592"></a><span class="lineno"> 4592</span> <span class="keyword">auto</span> result = <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#ab5b76a1843c33a4a71aa698a3defc528">convertInto</a>( arg, temp );</div>
|
|
<div class="line"><a id="l04593" name="l04593"></a><span class="lineno"> 4593</span> <span class="keywordflow">return</span> !result ? result</div>
|
|
<div class="line"><a id="l04594" name="l04594"></a><span class="lineno"> 4594</span> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html">LambdaInvoker</a><<span class="keyword">typename</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a><</div>
|
|
<div class="line"><a id="l04595" name="l04595"></a><span class="lineno"> 4595</span> L>::ReturnType>::invoke( lambda, temp );</div>
|
|
<div class="line"><a id="l04596" name="l04596"></a><span class="lineno"> 4596</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04597" name="l04597"></a><span class="lineno"> 4597</span> </div>
|
|
<div class="foldopen" id="foldopen04598" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04598" name="l04598"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html"> 4598</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> L> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792">BoundLambda</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html">BoundValueRefBase</a> {</div>
|
|
<div class="line"><a id="l04599" name="l04599"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a854649dcc9dde71a0d6dca03f00686d5"> 4599</a></span> L <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a854649dcc9dde71a0d6dca03f00686d5">m_lambda</a>;</div>
|
|
<div class="line"><a id="l04600" name="l04600"></a><span class="lineno"> 4600</span> </div>
|
|
<div class="line"><a id="l04601" name="l04601"></a><span class="lineno"> 4601</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l04602" name="l04602"></a><span class="lineno"> 4602</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits<L>::isValid</a>,</div>
|
|
<div class="line"><a id="l04603" name="l04603"></a><span class="lineno"> 4603</span> <span class="stringliteral">"Supplied lambda must take exactly one argument"</span> );</div>
|
|
<div class="line"><a id="l04604" name="l04604"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792"> 4604</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792">BoundLambda</a>( L <span class="keyword">const</span>& lambda ): <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a854649dcc9dde71a0d6dca03f00686d5">m_lambda</a>( lambda ) {}</div>
|
|
<div class="line"><a id="l04605" name="l04605"></a><span class="lineno"> 4605</span> </div>
|
|
<div class="foldopen" id="foldopen04606" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04606" name="l04606"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a7176971a3f0f3914882a72da653a44dc"> 4606</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a7176971a3f0f3914882a72da653a44dc">setValue</a>( std::string <span class="keyword">const</span>& arg )</div>
|
|
<div class="line"><a id="l04607" name="l04607"></a><span class="lineno"> 4607</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> <span class="keyword">override</span> {</div>
|
|
<div class="line"><a id="l04608" name="l04608"></a><span class="lineno"> 4608</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Clara_1_1Detail.html#aa756e2e2404a66852ab7fbd14a2a4647">invokeLambda<typename UnaryLambdaTraits<L>::ArgType</a>>(</div>
|
|
<div class="line"><a id="l04609" name="l04609"></a><span class="lineno"> 4609</span> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a854649dcc9dde71a0d6dca03f00686d5">m_lambda</a>, arg );</div>
|
|
<div class="line"><a id="l04610" name="l04610"></a><span class="lineno"> 4610</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04611" name="l04611"></a><span class="lineno"> 4611</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04612" name="l04612"></a><span class="lineno"> 4612</span> </div>
|
|
<div class="foldopen" id="foldopen04613" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04613" name="l04613"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html"> 4613</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> L> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a088d0c0d444a1001a239ff60afc9595c">BoundManyLambda</a> : <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792">BoundLambda</a><L> {</div>
|
|
<div class="line"><a id="l04614" name="l04614"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a088d0c0d444a1001a239ff60afc9595c"> 4614</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a088d0c0d444a1001a239ff60afc9595c">BoundManyLambda</a>( L <span class="keyword">const</span>& lambda ): <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792">BoundLambda</a><L>( lambda ) {}</div>
|
|
<div class="line"><a id="l04615" name="l04615"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a287998ae9a7bee65598feaf62647a4d8"> 4615</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a287998ae9a7bee65598feaf62647a4d8">isContainer</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
|
|
<div class="line"><a id="l04616" name="l04616"></a><span class="lineno"> 4616</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04617" name="l04617"></a><span class="lineno"> 4617</span> </div>
|
|
<div class="foldopen" id="foldopen04618" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04618" name="l04618"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html"> 4618</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> L> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a1a6ff757cca809397826b0f1d616f5b1">BoundFlagLambda</a> : <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html">BoundFlagRefBase</a> {</div>
|
|
<div class="line"><a id="l04619" name="l04619"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a21acbc8d514b48c2f1fb2c9073666ae1"> 4619</a></span> L <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a21acbc8d514b48c2f1fb2c9073666ae1">m_lambda</a>;</div>
|
|
<div class="line"><a id="l04620" name="l04620"></a><span class="lineno"> 4620</span> </div>
|
|
<div class="line"><a id="l04621" name="l04621"></a><span class="lineno"> 4621</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l04622" name="l04622"></a><span class="lineno"> 4622</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits<L>::isValid</a>,</div>
|
|
<div class="line"><a id="l04623" name="l04623"></a><span class="lineno"> 4623</span> <span class="stringliteral">"Supplied lambda must take exactly one argument"</span> );</div>
|
|
<div class="line"><a id="l04624" name="l04624"></a><span class="lineno"> 4624</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l04625" name="l04625"></a><span class="lineno"> 4625</span> std::is_same<typename UnaryLambdaTraits<L>::ArgType,</div>
|
|
<div class="line"><a id="l04626" name="l04626"></a><span class="lineno"> 4626</span> <span class="keywordtype">bool</span>>::value,</div>
|
|
<div class="line"><a id="l04627" name="l04627"></a><span class="lineno"> 4627</span> <span class="stringliteral">"flags must be boolean"</span> );</div>
|
|
<div class="line"><a id="l04628" name="l04628"></a><span class="lineno"> 4628</span> </div>
|
|
<div class="foldopen" id="foldopen04629" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04629" name="l04629"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a1a6ff757cca809397826b0f1d616f5b1"> 4629</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a1a6ff757cca809397826b0f1d616f5b1">BoundFlagLambda</a>( L <span class="keyword">const</span>& lambda ):</div>
|
|
<div class="line"><a id="l04630" name="l04630"></a><span class="lineno"> 4630</span> <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a21acbc8d514b48c2f1fb2c9073666ae1">m_lambda</a>( lambda ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04631" name="l04631"></a><span class="lineno"> 4631</span> </div>
|
|
<div class="foldopen" id="foldopen04632" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04632" name="l04632"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a4953fd3abe9fe9a14d43cb0bac56dd3d"> 4632</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a4953fd3abe9fe9a14d43cb0bac56dd3d">setFlag</a>( <span class="keywordtype">bool</span> flag ) -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">ParserResult</a> <span class="keyword">override</span> {</div>
|
|
<div class="line"><a id="l04633" name="l04633"></a><span class="lineno"> 4633</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html">LambdaInvoker</a><<span class="keyword">typename</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">UnaryLambdaTraits</a><</div>
|
|
<div class="line"><a id="l04634" name="l04634"></a><span class="lineno"> 4634</span> L>::ReturnType>::invoke( <a class="code hl_variable" href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a21acbc8d514b48c2f1fb2c9073666ae1">m_lambda</a>, flag );</div>
|
|
<div class="line"><a id="l04635" name="l04635"></a><span class="lineno"> 4635</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04636" name="l04636"></a><span class="lineno"> 4636</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04637" name="l04637"></a><span class="lineno"> 4637</span> </div>
|
|
<div class="line"><a id="l04638" name="l04638"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd"> 4638</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6c">Optionality</a> { <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd">Optional</a>, <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6cab651efdb98a5d6bd2b3935d0c3f4a5e2">Required</a> };</div>
|
|
<div class="line"><a id="l04639" name="l04639"></a><span class="lineno"> 4639</span> </div>
|
|
<div class="foldopen" id="foldopen04640" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04640" name="l04640"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html"> 4640</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html">ParserBase</a> {</div>
|
|
<div class="line"><a id="l04641" name="l04641"></a><span class="lineno"> 4641</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04642" name="l04642"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a4ef196a88d331fe35b8c10a79b9b9163"> 4642</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a4ef196a88d331fe35b8c10a79b9b9163">~ParserBase</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l04643" name="l04643"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a87381c4aefdeeed6609be0eb26b47133"> 4643</a></span> <span class="keyword">virtual</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a87381c4aefdeeed6609be0eb26b47133">validate</a>() const -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a">Result</a> { <span class="keywordflow">return</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446">Result::ok</a>(); }</div>
|
|
<div class="line"><a id="l04644" name="l04644"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a86e732b9e2f6428fe74bc2ac75eb97c3"> 4644</a></span> <span class="keyword">virtual</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a86e732b9e2f6428fe74bc2ac75eb97c3">parse</a>( std::string <span class="keyword">const</span>& exeName,</div>
|
|
<div class="line"><a id="l04645" name="l04645"></a><span class="lineno"> 4645</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">TokenStream</a> tokens ) <span class="keyword">const</span></div>
|
|
<div class="line"><a id="l04646" name="l04646"></a><span class="lineno"> 4646</span> -> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">InternalParseResult</a> = 0;</div>
|
|
<div class="line"><a id="l04647" name="l04647"></a><span class="lineno"> 4647</span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#aa143f6473623919d054d6ec4ffa63d63">cardinality</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04648" name="l04648"></a><span class="lineno"> 4648</span> </div>
|
|
<div class="line"><a id="l04649" name="l04649"></a><span class="lineno"> 4649</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">InternalParseResult</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a86e732b9e2f6428fe74bc2ac75eb97c3">parse</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Args.html">Args</a> <span class="keyword">const</span>& args ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04650" name="l04650"></a><span class="lineno"> 4650</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04651" name="l04651"></a><span class="lineno"> 4651</span> </div>
|
|
<div class="line"><a id="l04652" name="l04652"></a><span class="lineno"> 4652</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedT></div>
|
|
<div class="foldopen" id="foldopen04653" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04653" name="l04653"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html"> 4653</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html">ComposableParserImpl</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html">ParserBase</a> {</div>
|
|
<div class="line"><a id="l04654" name="l04654"></a><span class="lineno"> 4654</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04655" name="l04655"></a><span class="lineno"> 4655</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l04656" name="l04656"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html#a33578a14a9859be5728415bcb6aaa5bb"> 4656</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html#a33578a14a9859be5728415bcb6aaa5bb">operator|</a>( T <span class="keyword">const</span>& other ) <span class="keyword">const</span> -> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>;</div>
|
|
<div class="line"><a id="l04657" name="l04657"></a><span class="lineno"> 4657</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04658" name="l04658"></a><span class="lineno"> 4658</span> </div>
|
|
<div class="line"><a id="l04659" name="l04659"></a><span class="lineno"> 4659</span> <span class="comment">// Common code and state for Args and Opts</span></div>
|
|
<div class="line"><a id="l04660" name="l04660"></a><span class="lineno"> 4660</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedT></div>
|
|
<div class="foldopen" id="foldopen04661" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04661" name="l04661"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html"> 4661</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html">ComposableParserImpl</a><DerivedT> {</div>
|
|
<div class="line"><a id="l04662" name="l04662"></a><span class="lineno"> 4662</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l04663" name="l04663"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed"> 4663</a></span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6c">Optionality</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed">m_optionality</a> = <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd">Optionality::Optional</a>;</div>
|
|
<div class="line"><a id="l04664" name="l04664"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b"> 4664</a></span> std::shared_ptr<BoundRef> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>;</div>
|
|
<div class="line"><a id="l04665" name="l04665"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a"> 4665</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">m_hint</a>;</div>
|
|
<div class="line"><a id="l04666" name="l04666"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a51bed809ac3d01f86c33dbfbd1526a9e"> 4666</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a51bed809ac3d01f86c33dbfbd1526a9e">m_description</a>;</div>
|
|
<div class="line"><a id="l04667" name="l04667"></a><span class="lineno"> 4667</span> </div>
|
|
<div class="foldopen" id="foldopen04668" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04668" name="l04668"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e"> 4668</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a>( std::shared_ptr<BoundRef> <span class="keyword">const</span>& ref ):</div>
|
|
<div class="line"><a id="l04669" name="l04669"></a><span class="lineno"> 4669</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>( ref ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04670" name="l04670"></a><span class="lineno"> 4670</span> </div>
|
|
<div class="line"><a id="l04671" name="l04671"></a><span class="lineno"> 4671</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04672" name="l04672"></a><span class="lineno"> 4672</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT></div>
|
|
<div class="foldopen" id="foldopen04673" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04673" name="l04673"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa1f2cedbb0ff1cb196f2249f3ce96c59"> 4673</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa1f2cedbb0ff1cb196f2249f3ce96c59">ParserRefImpl</a>( <a class="code hl_struct" href="structCatch_1_1Clara_1_1accept__many__t.html">accept_many_t</a>,</div>
|
|
<div class="line"><a id="l04674" name="l04674"></a><span class="lineno"> 4674</span> LambdaT <span class="keyword">const</span>& ref,</div>
|
|
<div class="line"><a id="l04675" name="l04675"></a><span class="lineno"> 4675</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04676" name="l04676"></a><span class="lineno"> 4676</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>( std::make_shared<<a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html">BoundManyLambda</a><LambdaT>>( ref ) ),</div>
|
|
<div class="line"><a id="l04677" name="l04677"></a><span class="lineno"> 4677</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">m_hint</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04678" name="l04678"></a><span class="lineno"> 4678</span> </div>
|
|
<div class="line"><a id="l04679" name="l04679"></a><span class="lineno"> 4679</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l04680" name="l04680"></a><span class="lineno"> 4680</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l04681" name="l04681"></a><span class="lineno"> 4681</span> !<a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">Detail::is_unary_function<T>::value</a>>></div>
|
|
<div class="foldopen" id="foldopen04682" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04682" name="l04682"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2f887bd22b4297826a57806e56cfd3f3"> 4682</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2f887bd22b4297826a57806e56cfd3f3">ParserRefImpl</a>( T& ref, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04683" name="l04683"></a><span class="lineno"> 4683</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>( std::make_shared<<a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html">BoundValueRef</a><T>>( ref ) ),</div>
|
|
<div class="line"><a id="l04684" name="l04684"></a><span class="lineno"> 4684</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">m_hint</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04685" name="l04685"></a><span class="lineno"> 4685</span> </div>
|
|
<div class="line"><a id="l04686" name="l04686"></a><span class="lineno"> 4686</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT,</div>
|
|
<div class="line"><a id="l04687" name="l04687"></a><span class="lineno"> 4687</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l04688" name="l04688"></a><span class="lineno"> 4688</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">Detail::is_unary_function<LambdaT>::value</a>>></div>
|
|
<div class="foldopen" id="foldopen04689" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04689" name="l04689"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a4c2c1717858e95d3c280dacaf8daadb4"> 4689</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a4c2c1717858e95d3c280dacaf8daadb4">ParserRefImpl</a>( LambdaT <span class="keyword">const</span>& ref, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04690" name="l04690"></a><span class="lineno"> 4690</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>( std::make_shared<<a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html">BoundLambda</a><LambdaT>>( ref ) ),</div>
|
|
<div class="line"><a id="l04691" name="l04691"></a><span class="lineno"> 4691</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">m_hint</a>( <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04692" name="l04692"></a><span class="lineno"> 4692</span> </div>
|
|
<div class="foldopen" id="foldopen04693" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04693" name="l04693"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a768770e1bb1236b734e1d1a2f8a84ec9"> 4693</a></span> DerivedT& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a768770e1bb1236b734e1d1a2f8a84ec9">operator()</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> description ) & {</div>
|
|
<div class="line"><a id="l04694" name="l04694"></a><span class="lineno"> 4694</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a51bed809ac3d01f86c33dbfbd1526a9e">m_description</a> = description;</div>
|
|
<div class="line"><a id="l04695" name="l04695"></a><span class="lineno"> 4695</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>DerivedT&<span class="keyword">></span>( *this );</div>
|
|
<div class="line"><a id="l04696" name="l04696"></a><span class="lineno"> 4696</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04697" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04697" name="l04697"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2533409ff2ce763b442c085a95c8dce9"> 4697</a></span> DerivedT&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2533409ff2ce763b442c085a95c8dce9">operator()</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> description ) && {</div>
|
|
<div class="line"><a id="l04698" name="l04698"></a><span class="lineno"> 4698</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a51bed809ac3d01f86c33dbfbd1526a9e">m_description</a> = description;</div>
|
|
<div class="line"><a id="l04699" name="l04699"></a><span class="lineno"> 4699</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>DerivedT&&<span class="keyword">></span>( *this );</div>
|
|
<div class="line"><a id="l04700" name="l04700"></a><span class="lineno"> 4700</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04701" name="l04701"></a><span class="lineno"> 4701</span> </div>
|
|
<div class="foldopen" id="foldopen04702" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04702" name="l04702"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a9b4227e549fdf7ac060f32b04691f852"> 4702</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a9b4227e549fdf7ac060f32b04691f852">optional</a>() -> DerivedT& {</div>
|
|
<div class="line"><a id="l04703" name="l04703"></a><span class="lineno"> 4703</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed">m_optionality</a> = <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd">Optionality::Optional</a>;</div>
|
|
<div class="line"><a id="l04704" name="l04704"></a><span class="lineno"> 4704</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>DerivedT&<span class="keyword">></span>( *this );</div>
|
|
<div class="line"><a id="l04705" name="l04705"></a><span class="lineno"> 4705</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04706" name="l04706"></a><span class="lineno"> 4706</span> </div>
|
|
<div class="foldopen" id="foldopen04707" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04707" name="l04707"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af9928e53fd50e79bb2696775fb8f211e"> 4707</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af9928e53fd50e79bb2696775fb8f211e">required</a>() -> DerivedT& {</div>
|
|
<div class="line"><a id="l04708" name="l04708"></a><span class="lineno"> 4708</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed">m_optionality</a> = <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6cab651efdb98a5d6bd2b3935d0c3f4a5e2">Optionality::Required</a>;</div>
|
|
<div class="line"><a id="l04709" name="l04709"></a><span class="lineno"> 4709</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>DerivedT&<span class="keyword">></span>( *this );</div>
|
|
<div class="line"><a id="l04710" name="l04710"></a><span class="lineno"> 4710</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04711" name="l04711"></a><span class="lineno"> 4711</span> </div>
|
|
<div class="foldopen" id="foldopen04712" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04712" name="l04712"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7f53be97ad14acf78874b60c506e3264"> 4712</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7f53be97ad14acf78874b60c506e3264">isOptional</a>() const -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l04713" name="l04713"></a><span class="lineno"> 4713</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed">m_optionality</a> == <a class="code hl_enumvalue" href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd">Optionality::Optional</a>;</div>
|
|
<div class="line"><a id="l04714" name="l04714"></a><span class="lineno"> 4714</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04715" name="l04715"></a><span class="lineno"> 4715</span> </div>
|
|
<div class="foldopen" id="foldopen04716" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04716" name="l04716"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#adc3237f1191340d9567857efc5ffb82c"> 4716</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#adc3237f1191340d9567857efc5ffb82c">cardinality</a>() const -> <span class="keywordtype">size_t</span><span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l04717" name="l04717"></a><span class="lineno"> 4717</span> <span class="keywordflow">if</span> ( <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">m_ref</a>->isContainer() )</div>
|
|
<div class="line"><a id="l04718" name="l04718"></a><span class="lineno"> 4718</span> <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line"><a id="l04719" name="l04719"></a><span class="lineno"> 4719</span> <span class="keywordflow">else</span></div>
|
|
<div class="line"><a id="l04720" name="l04720"></a><span class="lineno"> 4720</span> <span class="keywordflow">return</span> 1;</div>
|
|
<div class="line"><a id="l04721" name="l04721"></a><span class="lineno"> 4721</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04722" name="l04722"></a><span class="lineno"> 4722</span> </div>
|
|
<div class="line"><a id="l04723" name="l04723"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00"> 4723</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">m_hint</a>; }</div>
|
|
<div class="line"><a id="l04724" name="l04724"></a><span class="lineno"> 4724</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04725" name="l04725"></a><span class="lineno"> 4725</span> </div>
|
|
<div class="line"><a id="l04726" name="l04726"></a><span class="lineno"> 4726</span> } <span class="comment">// namespace detail</span></div>
|
|
<div class="line"><a id="l04727" name="l04727"></a><span class="lineno"> 4727</span> </div>
|
|
<div class="line"><a id="l04728" name="l04728"></a><span class="lineno"> 4728</span> </div>
|
|
<div class="line"><a id="l04729" name="l04729"></a><span class="lineno"> 4729</span> <span class="comment">// A parser for arguments</span></div>
|
|
<div class="foldopen" id="foldopen04730" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04730" name="l04730"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Arg.html"> 4730</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Arg.html">Arg</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html">Detail::ParserRefImpl</a><Arg> {</div>
|
|
<div class="line"><a id="l04731" name="l04731"></a><span class="lineno"> 4731</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04732" name="l04732"></a><span class="lineno"> 4732</span> <span class="keyword">using </span>ParserRefImpl::ParserRefImpl;</div>
|
|
<div class="line"><a id="l04733" name="l04733"></a><span class="lineno"> 4733</span> <span class="keyword">using </span>ParserBase::parse;</div>
|
|
<div class="line"><a id="l04734" name="l04734"></a><span class="lineno"> 4734</span> </div>
|
|
<div class="line"><a id="l04735" name="l04735"></a><span class="lineno"> 4735</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">Detail::InternalParseResult</a></div>
|
|
<div class="line"><a id="l04736" name="l04736"></a><span class="lineno"> 4736</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Arg.html#af51ed6fd1a7f911a814e9ea9992cbace">parse</a>(std::string <span class="keyword">const</span>&,</div>
|
|
<div class="line"><a id="l04737" name="l04737"></a><span class="lineno"> 4737</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Detail::TokenStream</a> tokens) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04738" name="l04738"></a><span class="lineno"> 4738</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04739" name="l04739"></a><span class="lineno"> 4739</span> </div>
|
|
<div class="line"><a id="l04740" name="l04740"></a><span class="lineno"> 4740</span> <span class="comment">// A parser for options</span></div>
|
|
<div class="foldopen" id="foldopen04741" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04741" name="l04741"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html"> 4741</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Opt</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html">Detail::ParserRefImpl</a><Opt> {</div>
|
|
<div class="line"><a id="l04742" name="l04742"></a><span class="lineno"> 4742</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l04743" name="l04743"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#a4c9dd8a69ca69395394185cfe225613d"> 4743</a></span> std::vector<StringRef> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Opt.html#a4c9dd8a69ca69395394185cfe225613d">m_optNames</a>;</div>
|
|
<div class="line"><a id="l04744" name="l04744"></a><span class="lineno"> 4744</span> </div>
|
|
<div class="line"><a id="l04745" name="l04745"></a><span class="lineno"> 4745</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04746" name="l04746"></a><span class="lineno"> 4746</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT></div>
|
|
<div class="foldopen" id="foldopen04747" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04747" name="l04747"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14"> 4747</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Opt</a>(LambdaT <span class="keyword">const</span>& ref) :</div>
|
|
<div class="line"><a id="l04748" name="l04748"></a><span class="lineno"> 4748</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a>(</div>
|
|
<div class="line"><a id="l04749" name="l04749"></a><span class="lineno"> 4749</span> std::make_shared<<a class="code hl_namespace" href="namespaceCatch_1_1Clara_1_1Detail.html">Detail</a>::BoundFlagLambda<LambdaT>>(ref)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04750" name="l04750"></a><span class="lineno"> 4750</span> </div>
|
|
<div class="line"><a id="l04751" name="l04751"></a><span class="lineno"> 4751</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Opt.html">Opt</a>(<span class="keywordtype">bool</span>& ref);</div>
|
|
<div class="line"><a id="l04752" name="l04752"></a><span class="lineno"> 4752</span> </div>
|
|
<div class="line"><a id="l04753" name="l04753"></a><span class="lineno"> 4753</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT,</div>
|
|
<div class="line"><a id="l04754" name="l04754"></a><span class="lineno"> 4754</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l04755" name="l04755"></a><span class="lineno"> 4755</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">Detail::is_unary_function<LambdaT>::value</a>>></div>
|
|
<div class="foldopen" id="foldopen04756" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04756" name="l04756"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#a23eb9437b3954927f347af65b315d65e"> 4756</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a23eb9437b3954927f347af65b315d65e">Opt</a>( LambdaT <span class="keyword">const</span>& ref, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04757" name="l04757"></a><span class="lineno"> 4757</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a>( ref, <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04758" name="l04758"></a><span class="lineno"> 4758</span> </div>
|
|
<div class="line"><a id="l04759" name="l04759"></a><span class="lineno"> 4759</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT></div>
|
|
<div class="foldopen" id="foldopen04760" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04760" name="l04760"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#adc83c149e1c0bbfc753eee8d6a741f75"> 4760</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#adc83c149e1c0bbfc753eee8d6a741f75">Opt</a>( <a class="code hl_struct" href="structCatch_1_1Clara_1_1accept__many__t.html">accept_many_t</a>, LambdaT <span class="keyword">const</span>& ref, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04761" name="l04761"></a><span class="lineno"> 4761</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a>( <a class="code hl_variable" href="namespaceCatch_1_1Clara.html#ae84a92d31f809405143b6a0963649ea4">accept_many</a>, ref, <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04762" name="l04762"></a><span class="lineno"> 4762</span> </div>
|
|
<div class="line"><a id="l04763" name="l04763"></a><span class="lineno"> 4763</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l04764" name="l04764"></a><span class="lineno"> 4764</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l04765" name="l04765"></a><span class="lineno"> 4765</span> !<a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">Detail::is_unary_function<T>::value</a>>></div>
|
|
<div class="foldopen" id="foldopen04766" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04766" name="l04766"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#ab513f5b20ccc9d29a307b45ade26b072"> 4766</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#ab513f5b20ccc9d29a307b45ade26b072">Opt</a>( T& ref, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ):</div>
|
|
<div class="line"><a id="l04767" name="l04767"></a><span class="lineno"> 4767</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">ParserRefImpl</a>( ref, <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">hint</a> ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04768" name="l04768"></a><span class="lineno"> 4768</span> </div>
|
|
<div class="foldopen" id="foldopen04769" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04769" name="l04769"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#a09a55226a2b1b24b31ce698ad8eac452"> 4769</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Opt</a>& <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a09a55226a2b1b24b31ce698ad8eac452">operator[]</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> optName ) & {</div>
|
|
<div class="line"><a id="l04770" name="l04770"></a><span class="lineno"> 4770</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Opt.html#a4c9dd8a69ca69395394185cfe225613d">m_optNames</a>.push_back(optName);</div>
|
|
<div class="line"><a id="l04771" name="l04771"></a><span class="lineno"> 4771</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l04772" name="l04772"></a><span class="lineno"> 4772</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04773" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04773" name="l04773"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Opt.html#a7ad60746f51bb6af4d221fe9c9467b60"> 4773</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Opt</a>&& <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a7ad60746f51bb6af4d221fe9c9467b60">operator[]</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> optName ) && {</div>
|
|
<div class="line"><a id="l04774" name="l04774"></a><span class="lineno"> 4774</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Opt.html#a4c9dd8a69ca69395394185cfe225613d">m_optNames</a>.push_back( optName );</div>
|
|
<div class="line"><a id="l04775" name="l04775"></a><span class="lineno"> 4775</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(*<span class="keyword">this</span>);</div>
|
|
<div class="line"><a id="l04776" name="l04776"></a><span class="lineno"> 4776</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04777" name="l04777"></a><span class="lineno"> 4777</span> </div>
|
|
<div class="line"><a id="l04778" name="l04778"></a><span class="lineno"> 4778</span> <a class="code hl_struct" href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html">Detail::HelpColumns</a> getHelpColumns() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04779" name="l04779"></a><span class="lineno"> 4779</span> </div>
|
|
<div class="line"><a id="l04780" name="l04780"></a><span class="lineno"> 4780</span> <span class="keywordtype">bool</span> isMatch(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> optToken) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04781" name="l04781"></a><span class="lineno"> 4781</span> </div>
|
|
<div class="line"><a id="l04782" name="l04782"></a><span class="lineno"> 4782</span> <span class="keyword">using </span>ParserBase::parse;</div>
|
|
<div class="line"><a id="l04783" name="l04783"></a><span class="lineno"> 4783</span> </div>
|
|
<div class="line"><a id="l04784" name="l04784"></a><span class="lineno"> 4784</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">Detail::InternalParseResult</a></div>
|
|
<div class="line"><a id="l04785" name="l04785"></a><span class="lineno"> 4785</span> parse(std::string <span class="keyword">const</span>&,</div>
|
|
<div class="line"><a id="l04786" name="l04786"></a><span class="lineno"> 4786</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Detail::TokenStream</a> tokens) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04787" name="l04787"></a><span class="lineno"> 4787</span> </div>
|
|
<div class="line"><a id="l04788" name="l04788"></a><span class="lineno"> 4788</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a">Detail::Result</a> validate() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04789" name="l04789"></a><span class="lineno"> 4789</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04790" name="l04790"></a><span class="lineno"> 4790</span> </div>
|
|
<div class="line"><a id="l04791" name="l04791"></a><span class="lineno"> 4791</span> <span class="comment">// Specifies the name of the executable</span></div>
|
|
<div class="foldopen" id="foldopen04792" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04792" name="l04792"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1ExeName.html"> 4792</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#a1ac750117e67530dfcfe30463fc293c7">ExeName</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html">Detail::ComposableParserImpl</a><ExeName> {</div>
|
|
<div class="line"><a id="l04793" name="l04793"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1ExeName.html#adc916f44682f223a015689bbe956d9bd"> 4793</a></span> std::shared_ptr<std::string> <a class="code hl_variable" href="classCatch_1_1Clara_1_1ExeName.html#adc916f44682f223a015689bbe956d9bd">m_name</a>;</div>
|
|
<div class="line"><a id="l04794" name="l04794"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1ExeName.html#ae4374c29e1f04caa8057f0a666d6e453"> 4794</a></span> std::shared_ptr<Detail::BoundValueRefBase> <a class="code hl_variable" href="classCatch_1_1Clara_1_1ExeName.html#ae4374c29e1f04caa8057f0a666d6e453">m_ref</a>;</div>
|
|
<div class="line"><a id="l04795" name="l04795"></a><span class="lineno"> 4795</span> </div>
|
|
<div class="line"><a id="l04796" name="l04796"></a><span class="lineno"> 4796</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04797" name="l04797"></a><span class="lineno"> 4797</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#a1ac750117e67530dfcfe30463fc293c7">ExeName</a>();</div>
|
|
<div class="line"><a id="l04798" name="l04798"></a><span class="lineno"> 4798</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#a1ac750117e67530dfcfe30463fc293c7">ExeName</a>(std::string& ref);</div>
|
|
<div class="line"><a id="l04799" name="l04799"></a><span class="lineno"> 4799</span> </div>
|
|
<div class="line"><a id="l04800" name="l04800"></a><span class="lineno"> 4800</span> <span class="keyword">template</span> <<span class="keyword">typename</span> LambdaT></div>
|
|
<div class="foldopen" id="foldopen04801" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04801" name="l04801"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1ExeName.html#abd67f80f71ef0e4148856ba62fa8832b"> 4801</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#abd67f80f71ef0e4148856ba62fa8832b">ExeName</a>(LambdaT <span class="keyword">const</span>& lambda) : <a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#a1ac750117e67530dfcfe30463fc293c7">ExeName</a>() {</div>
|
|
<div class="line"><a id="l04802" name="l04802"></a><span class="lineno"> 4802</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1ExeName.html#ae4374c29e1f04caa8057f0a666d6e453">m_ref</a> = std::make_shared<Detail::BoundLambda<LambdaT>>(lambda);</div>
|
|
<div class="line"><a id="l04803" name="l04803"></a><span class="lineno"> 4803</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04804" name="l04804"></a><span class="lineno"> 4804</span> </div>
|
|
<div class="line"><a id="l04805" name="l04805"></a><span class="lineno"> 4805</span> <span class="comment">// The exe name is not parsed out of the normal tokens, but is</span></div>
|
|
<div class="line"><a id="l04806" name="l04806"></a><span class="lineno"> 4806</span> <span class="comment">// handled specially</span></div>
|
|
<div class="line"><a id="l04807" name="l04807"></a><span class="lineno"> 4807</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">Detail::InternalParseResult</a></div>
|
|
<div class="line"><a id="l04808" name="l04808"></a><span class="lineno"> 4808</span> parse(std::string <span class="keyword">const</span>&,</div>
|
|
<div class="line"><a id="l04809" name="l04809"></a><span class="lineno"> 4809</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Detail::TokenStream</a> tokens) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04810" name="l04810"></a><span class="lineno"> 4810</span> </div>
|
|
<div class="line"><a id="l04811" name="l04811"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1ExeName.html#a8b0b26297f48352129a9c149ff242975"> 4811</a></span> std::string <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Clara_1_1ExeName.html#a8b0b26297f48352129a9c149ff242975">name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1Clara_1_1ExeName.html#adc916f44682f223a015689bbe956d9bd">m_name</a>; }</div>
|
|
<div class="line"><a id="l04812" name="l04812"></a><span class="lineno"> 4812</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">Detail::ParserResult</a> set(std::string <span class="keyword">const</span>& newName);</div>
|
|
<div class="line"><a id="l04813" name="l04813"></a><span class="lineno"> 4813</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04814" name="l04814"></a><span class="lineno"> 4814</span> </div>
|
|
<div class="line"><a id="l04815" name="l04815"></a><span class="lineno"> 4815</span> </div>
|
|
<div class="line"><a id="l04816" name="l04816"></a><span class="lineno"> 4816</span> <span class="comment">// A Combined parser</span></div>
|
|
<div class="foldopen" id="foldopen04817" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04817" name="l04817"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html"> 4817</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> : <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html">Detail::ParserBase</a> {</div>
|
|
<div class="line"><a id="l04818" name="l04818"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a2e9b4fbe264b83fb1064ae1d739e29cf"> 4818</a></span> <span class="keyword">mutable</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1ExeName.html">ExeName</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#a2e9b4fbe264b83fb1064ae1d739e29cf">m_exeName</a>;</div>
|
|
<div class="line"><a id="l04819" name="l04819"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#adcfaaec8f50aac71d1076e7e658f603b"> 4819</a></span> std::vector<Opt> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#adcfaaec8f50aac71d1076e7e658f603b">m_options</a>;</div>
|
|
<div class="line"><a id="l04820" name="l04820"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a47453a99cfae1e8e420470c3a4a44d30"> 4820</a></span> std::vector<Arg> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#a47453a99cfae1e8e420470c3a4a44d30">m_args</a>;</div>
|
|
<div class="line"><a id="l04821" name="l04821"></a><span class="lineno"> 4821</span> </div>
|
|
<div class="line"><a id="l04822" name="l04822"></a><span class="lineno"> 4822</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04823" name="l04823"></a><span class="lineno"> 4823</span> </div>
|
|
<div class="foldopen" id="foldopen04824" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04824" name="l04824"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a966a3e5782e434272e3e43cce6c26dba"> 4824</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Parser.html#a966a3e5782e434272e3e43cce6c26dba">operator|=</a>(<a class="code hl_class" href="classCatch_1_1Clara_1_1ExeName.html">ExeName</a> <span class="keyword">const</span>& exeName) -> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& {</div>
|
|
<div class="line"><a id="l04825" name="l04825"></a><span class="lineno"> 4825</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#a2e9b4fbe264b83fb1064ae1d739e29cf">m_exeName</a> = exeName;</div>
|
|
<div class="line"><a id="l04826" name="l04826"></a><span class="lineno"> 4826</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l04827" name="l04827"></a><span class="lineno"> 4827</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04828" name="l04828"></a><span class="lineno"> 4828</span> </div>
|
|
<div class="foldopen" id="foldopen04829" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04829" name="l04829"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a3bbea5c25e53979695f1079b0b029aed"> 4829</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Parser.html#a3bbea5c25e53979695f1079b0b029aed">operator|=</a>(<a class="code hl_class" href="classCatch_1_1Clara_1_1Arg.html">Arg</a> <span class="keyword">const</span>& arg) -> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& {</div>
|
|
<div class="line"><a id="l04830" name="l04830"></a><span class="lineno"> 4830</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#a47453a99cfae1e8e420470c3a4a44d30">m_args</a>.push_back(arg);</div>
|
|
<div class="line"><a id="l04831" name="l04831"></a><span class="lineno"> 4831</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l04832" name="l04832"></a><span class="lineno"> 4832</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04833" name="l04833"></a><span class="lineno"> 4833</span> </div>
|
|
<div class="foldopen" id="foldopen04834" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04834" name="l04834"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a154b215fce510ebb38694d5f9412e668"> 4834</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& <a class="code hl_friend" href="classCatch_1_1Clara_1_1Parser.html#a154b215fce510ebb38694d5f9412e668">operator|=</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& p, <a class="code hl_class" href="classCatch_1_1Clara_1_1Opt.html">Opt</a> <span class="keyword">const</span>& opt ) {</div>
|
|
<div class="line"><a id="l04835" name="l04835"></a><span class="lineno"> 4835</span> p.<a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#adcfaaec8f50aac71d1076e7e658f603b">m_options</a>.push_back( opt );</div>
|
|
<div class="line"><a id="l04836" name="l04836"></a><span class="lineno"> 4836</span> <span class="keywordflow">return</span> p;</div>
|
|
<div class="line"><a id="l04837" name="l04837"></a><span class="lineno"> 4837</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen04838" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04838" name="l04838"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#abb1d031effc7ff98f0d12d9d1b7d7bff"> 4838</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& <a class="code hl_friend" href="classCatch_1_1Clara_1_1Parser.html#abb1d031effc7ff98f0d12d9d1b7d7bff">operator|=</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& p, <a class="code hl_class" href="classCatch_1_1Clara_1_1Opt.html">Opt</a>&& opt ) {</div>
|
|
<div class="line"><a id="l04839" name="l04839"></a><span class="lineno"> 4839</span> p.<a class="code hl_variable" href="classCatch_1_1Clara_1_1Parser.html#adcfaaec8f50aac71d1076e7e658f603b">m_options</a>.push_back( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(opt) );</div>
|
|
<div class="line"><a id="l04840" name="l04840"></a><span class="lineno"> 4840</span> <span class="keywordflow">return</span> p;</div>
|
|
<div class="line"><a id="l04841" name="l04841"></a><span class="lineno"> 4841</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04842" name="l04842"></a><span class="lineno"> 4842</span> </div>
|
|
<div class="line"><a id="l04843" name="l04843"></a><span class="lineno"> 4843</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>& operator|=(<a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> <span class="keyword">const</span>& other);</div>
|
|
<div class="line"><a id="l04844" name="l04844"></a><span class="lineno"> 4844</span> </div>
|
|
<div class="line"><a id="l04845" name="l04845"></a><span class="lineno"> 4845</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04846" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04846" name="l04846"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a7d635378f3877ebd9330b294c572cb7c"> 4846</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> <a class="code hl_friend" href="classCatch_1_1Clara_1_1Parser.html#a7d635378f3877ebd9330b294c572cb7c">operator|</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> <span class="keyword">const</span>& p, T&& rhs ) {</div>
|
|
<div class="line"><a id="l04847" name="l04847"></a><span class="lineno"> 4847</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> temp( p );</div>
|
|
<div class="line"><a id="l04848" name="l04848"></a><span class="lineno"> 4848</span> temp |= rhs;</div>
|
|
<div class="line"><a id="l04849" name="l04849"></a><span class="lineno"> 4849</span> <span class="keywordflow">return</span> temp;</div>
|
|
<div class="line"><a id="l04850" name="l04850"></a><span class="lineno"> 4850</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04851" name="l04851"></a><span class="lineno"> 4851</span> </div>
|
|
<div class="line"><a id="l04852" name="l04852"></a><span class="lineno"> 4852</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen04853" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04853" name="l04853"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a6cfe2812a49b59864257b823991fcf1f"> 4853</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> <a class="code hl_friend" href="classCatch_1_1Clara_1_1Parser.html#a6cfe2812a49b59864257b823991fcf1f">operator|</a>( <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>&& p, T&& rhs ) {</div>
|
|
<div class="line"><a id="l04854" name="l04854"></a><span class="lineno"> 4854</span> p |= <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(rhs);</div>
|
|
<div class="line"><a id="l04855" name="l04855"></a><span class="lineno"> 4855</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(p);</div>
|
|
<div class="line"><a id="l04856" name="l04856"></a><span class="lineno"> 4856</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04857" name="l04857"></a><span class="lineno"> 4857</span> </div>
|
|
<div class="line"><a id="l04858" name="l04858"></a><span class="lineno"> 4858</span> std::vector<Detail::HelpColumns> getHelpColumns() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04859" name="l04859"></a><span class="lineno"> 4859</span> </div>
|
|
<div class="line"><a id="l04860" name="l04860"></a><span class="lineno"> 4860</span> <span class="keywordtype">void</span> writeToStream(std::ostream& os) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04861" name="l04861"></a><span class="lineno"> 4861</span> </div>
|
|
<div class="foldopen" id="foldopen04862" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04862" name="l04862"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Parser.html#a4356adbe31ad7e63bde83df60d685fab"> 4862</a></span> <span class="keyword">friend</span> <span class="keyword">auto</span> <a class="code hl_friend" href="classCatch_1_1Clara_1_1Parser.html#a4356adbe31ad7e63bde83df60d685fab">operator<<</a>(std::ostream& os, <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a> <span class="keyword">const</span>& parser)</div>
|
|
<div class="line"><a id="l04863" name="l04863"></a><span class="lineno"> 4863</span> -> std::ostream& {</div>
|
|
<div class="line"><a id="l04864" name="l04864"></a><span class="lineno"> 4864</span> parser.writeToStream(os);</div>
|
|
<div class="line"><a id="l04865" name="l04865"></a><span class="lineno"> 4865</span> <span class="keywordflow">return</span> os;</div>
|
|
<div class="line"><a id="l04866" name="l04866"></a><span class="lineno"> 4866</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04867" name="l04867"></a><span class="lineno"> 4867</span> </div>
|
|
<div class="line"><a id="l04868" name="l04868"></a><span class="lineno"> 4868</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a">Detail::Result</a> validate() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04869" name="l04869"></a><span class="lineno"> 4869</span> </div>
|
|
<div class="line"><a id="l04870" name="l04870"></a><span class="lineno"> 4870</span> <span class="keyword">using </span>ParserBase::parse;</div>
|
|
<div class="line"><a id="l04871" name="l04871"></a><span class="lineno"> 4871</span> <a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">Detail::InternalParseResult</a></div>
|
|
<div class="line"><a id="l04872" name="l04872"></a><span class="lineno"> 4872</span> parse(std::string <span class="keyword">const</span>& exeName,</div>
|
|
<div class="line"><a id="l04873" name="l04873"></a><span class="lineno"> 4873</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Detail::TokenStream</a> tokens) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l04874" name="l04874"></a><span class="lineno"> 4874</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04875" name="l04875"></a><span class="lineno"> 4875</span></div>
|
|
<div class="foldopen" id="foldopen04879" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04879" name="l04879"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Args.html"> 4879</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Clara_1_1Args.html#a88ddab37dc708bbef2974dc7e0f90449">Args</a> {</div>
|
|
<div class="line"><a id="l04880" name="l04880"></a><span class="lineno"> 4880</span> <span class="keyword">friend</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Detail::TokenStream</a>;</div>
|
|
<div class="line"><a id="l04881" name="l04881"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Args.html#a012a63b737ba7441a58274a339586117"> 4881</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Args.html#a012a63b737ba7441a58274a339586117">m_exeName</a>;</div>
|
|
<div class="line"><a id="l04882" name="l04882"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Args.html#a09e56cf99555389453e3fafa932b137d"> 4882</a></span> std::vector<StringRef> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Args.html#a09e56cf99555389453e3fafa932b137d">m_args</a>;</div>
|
|
<div class="line"><a id="l04883" name="l04883"></a><span class="lineno"> 4883</span> </div>
|
|
<div class="line"><a id="l04884" name="l04884"></a><span class="lineno"> 4884</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04885" name="l04885"></a><span class="lineno"> 4885</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Args.html#a88ddab37dc708bbef2974dc7e0f90449">Args</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> <span class="keyword">const</span>* <span class="keyword">const</span>* argv);</div>
|
|
<div class="line"><a id="l04886" name="l04886"></a><span class="lineno"> 4886</span> <span class="comment">// Helper constructor for testing</span></div>
|
|
<div class="line"><a id="l04887" name="l04887"></a><span class="lineno"> 4887</span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Args.html#a88ddab37dc708bbef2974dc7e0f90449">Args</a>(std::initializer_list<StringRef> args);</div>
|
|
<div class="line"><a id="l04888" name="l04888"></a><span class="lineno"> 4888</span> </div>
|
|
<div class="line"><a id="l04889" name="l04889"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Args.html#a6f03913f5e23a45f5a6a1ac5fb119ed1"> 4889</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_function" href="classCatch_1_1Clara_1_1Args.html#a6f03913f5e23a45f5a6a1ac5fb119ed1">exeName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Clara_1_1Args.html#a012a63b737ba7441a58274a339586117">m_exeName</a>; }</div>
|
|
<div class="line"><a id="l04890" name="l04890"></a><span class="lineno"> 4890</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04891" name="l04891"></a><span class="lineno"> 4891</span> </div>
|
|
<div class="line"><a id="l04892" name="l04892"></a><span class="lineno"> 4892</span> </div>
|
|
<div class="line"><a id="l04893" name="l04893"></a><span class="lineno"> 4893</span> <span class="comment">// Convenience wrapper for option parser that specifies the help option</span></div>
|
|
<div class="foldopen" id="foldopen04894" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04894" name="l04894"></a><span class="lineno"><a class="line" href="structCatch_1_1Clara_1_1Help.html"> 4894</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Clara_1_1Help.html#a3dac87afaa552a09ce07e81e46283dbe">Help</a> : <a class="code hl_function" href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Opt</a> {</div>
|
|
<div class="line"><a id="l04895" name="l04895"></a><span class="lineno"> 4895</span> <a class="code hl_function" href="structCatch_1_1Clara_1_1Help.html#a3dac87afaa552a09ce07e81e46283dbe">Help</a>(<span class="keywordtype">bool</span>& showHelpFlag);</div>
|
|
<div class="line"><a id="l04896" name="l04896"></a><span class="lineno"> 4896</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04897" name="l04897"></a><span class="lineno"> 4897</span> </div>
|
|
<div class="line"><a id="l04898" name="l04898"></a><span class="lineno"> 4898</span> <span class="comment">// Result type for parser operation</span></div>
|
|
<div class="line"><a id="l04899" name="l04899"></a><span class="lineno"> 4899</span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">Detail::ParserResult</a>;</div>
|
|
<div class="line"><a id="l04900" name="l04900"></a><span class="lineno"> 4900</span> </div>
|
|
<div class="line"><a id="l04901" name="l04901"></a><span class="lineno"> 4901</span> <span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1Clara_1_1Detail.html">Detail</a> {</div>
|
|
<div class="line"><a id="l04902" name="l04902"></a><span class="lineno"> 4902</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedT></div>
|
|
<div class="line"><a id="l04903" name="l04903"></a><span class="lineno"> 4903</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l04904" name="l04904"></a><span class="lineno"> 4904</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a></div>
|
|
<div class="foldopen" id="foldopen04905" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04905" name="l04905"></a><span class="lineno"><a class="line" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html#a5ea8a53f826f89d57cafa8273b029205"> 4905</a></span> <a class="code hl_function" href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html#a33578a14a9859be5728415bcb6aaa5bb">ComposableParserImpl<DerivedT>::operator|</a>(T <span class="keyword">const</span>& other)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l04906" name="l04906"></a><span class="lineno"> 4906</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Parser</a>() | <span class="keyword">static_cast<</span>DerivedT const&<span class="keyword">></span>(*this) | other;</div>
|
|
<div class="line"><a id="l04907" name="l04907"></a><span class="lineno"> 4907</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04908" name="l04908"></a><span class="lineno"> 4908</span> }</div>
|
|
<div class="line"><a id="l04909" name="l04909"></a><span class="lineno"> 4909</span> </div>
|
|
<div class="line"><a id="l04910" name="l04910"></a><span class="lineno"> 4910</span> } <span class="comment">// namespace Clara</span></div>
|
|
<div class="line"><a id="l04911" name="l04911"></a><span class="lineno"> 4911</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l04912" name="l04912"></a><span class="lineno"> 4912</span> </div>
|
|
<div class="line"><a id="l04913" name="l04913"></a><span class="lineno"> 4913</span><span class="preprocessor">#if defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l04914" name="l04914"></a><span class="lineno"> 4914</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l04915" name="l04915"></a><span class="lineno"> 4915</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l04916" name="l04916"></a><span class="lineno"> 4916</span> </div>
|
|
<div class="line"><a id="l04917" name="l04917"></a><span class="lineno"> 4917</span><span class="preprocessor">#if defined( __GNUC__ )</span></div>
|
|
<div class="line"><a id="l04918" name="l04918"></a><span class="lineno"> 4918</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l04919" name="l04919"></a><span class="lineno"> 4919</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l04920" name="l04920"></a><span class="lineno"> 4920</span> </div>
|
|
<div class="line"><a id="l04921" name="l04921"></a><span class="lineno"> 4921</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CLARA_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04922" name="l04922"></a><span class="lineno"> 4922</span> </div>
|
|
<div class="line"><a id="l04923" name="l04923"></a><span class="lineno"> 4923</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l04924" name="l04924"></a><span class="lineno"> 4924</span> </div>
|
|
<div class="line"><a id="l04925" name="l04925"></a><span class="lineno"> 4925</span> <span class="keyword">struct </span>ConfigData;</div>
|
|
<div class="line"><a id="l04926" name="l04926"></a><span class="lineno"> 4926</span> </div>
|
|
<div class="line"><a id="l04927" name="l04927"></a><span class="lineno"> 4927</span> Clara::Parser makeCommandLineParser( ConfigData& config );</div>
|
|
<div class="line"><a id="l04928" name="l04928"></a><span class="lineno"> 4928</span> </div>
|
|
<div class="line"><a id="l04929" name="l04929"></a><span class="lineno"> 4929</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l04930" name="l04930"></a><span class="lineno"> 4930</span> </div>
|
|
<div class="line"><a id="l04931" name="l04931"></a><span class="lineno"> 4931</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_COMMANDLINE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04932" name="l04932"></a><span class="lineno"> 4932</span> </div>
|
|
<div class="line"><a id="l04933" name="l04933"></a><span class="lineno"> 4933</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l04934" name="l04934"></a><span class="lineno"> 4934</span> </div>
|
|
<div class="foldopen" id="foldopen04935" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04935" name="l04935"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html"> 4935</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Session.html#a4564992e2b028770e38a1dcc6fff8b34">Session</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l04936" name="l04936"></a><span class="lineno"> 4936</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l04937" name="l04937"></a><span class="lineno"> 4937</span> </div>
|
|
<div class="line"><a id="l04938" name="l04938"></a><span class="lineno"> 4938</span> <a class="code hl_function" href="classCatch_1_1Session.html#a4564992e2b028770e38a1dcc6fff8b34">Session</a>();</div>
|
|
<div class="line"><a id="l04939" name="l04939"></a><span class="lineno"> 4939</span> <a class="code hl_function" href="classCatch_1_1Session.html#a4564992e2b028770e38a1dcc6fff8b34">~Session</a>();</div>
|
|
<div class="line"><a id="l04940" name="l04940"></a><span class="lineno"> 4940</span> </div>
|
|
<div class="line"><a id="l04941" name="l04941"></a><span class="lineno"> 4941</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Session.html#a4286263c17b16c3ea9d0632bd4f8eaee">showHelp</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04942" name="l04942"></a><span class="lineno"> 4942</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Session.html#ac28e293014007bbd9f6383c2d5daa1e4">libIdentify</a>();</div>
|
|
<div class="line"><a id="l04943" name="l04943"></a><span class="lineno"> 4943</span> </div>
|
|
<div class="line"><a id="l04944" name="l04944"></a><span class="lineno"> 4944</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Session.html#af890db02c69e36356ac9f8be4084c464">applyCommandLine</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> * argv );</div>
|
|
<div class="line"><a id="l04945" name="l04945"></a><span class="lineno"> 4945</span><span class="preprocessor"> #if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE)</span></div>
|
|
<div class="line"><a id="l04946" name="l04946"></a><span class="lineno"> 4946</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Session.html#af890db02c69e36356ac9f8be4084c464">applyCommandLine</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">wchar_t</span> <span class="keyword">const</span> * <span class="keyword">const</span> * argv );</div>
|
|
<div class="line"><a id="l04947" name="l04947"></a><span class="lineno"> 4947</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l04948" name="l04948"></a><span class="lineno"> 4948</span> </div>
|
|
<div class="line"><a id="l04949" name="l04949"></a><span class="lineno"> 4949</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Session.html#a122417ed44bfa29a229941b1e12b91a3">useConfigData</a>( <a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Session.html#aadb20e3b2955209aaab3126c0c3da7a6">configData</a> );</div>
|
|
<div class="line"><a id="l04950" name="l04950"></a><span class="lineno"> 4950</span> </div>
|
|
<div class="line"><a id="l04951" name="l04951"></a><span class="lineno"> 4951</span> <span class="keyword">template</span><<span class="keyword">typename</span> CharT></div>
|
|
<div class="foldopen" id="foldopen04952" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04952" name="l04952"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html#a8c82b89613ebd99f1ba1a3f7b634e571"> 4952</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classCatch_1_1Session.html#a8c82b89613ebd99f1ba1a3f7b634e571">run</a>(<span class="keywordtype">int</span> argc, CharT <span class="keyword">const</span> * <span class="keyword">const</span> argv[]) {</div>
|
|
<div class="line"><a id="l04953" name="l04953"></a><span class="lineno"> 4953</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Session.html#a5393c1a489adedc24a22c57cb7d0b1fb">m_startupExceptions</a>)</div>
|
|
<div class="line"><a id="l04954" name="l04954"></a><span class="lineno"> 4954</span> <span class="keywordflow">return</span> 1;</div>
|
|
<div class="line"><a id="l04955" name="l04955"></a><span class="lineno"> 4955</span> <span class="keywordtype">int</span> returnCode = <a class="code hl_function" href="classCatch_1_1Session.html#af890db02c69e36356ac9f8be4084c464">applyCommandLine</a>(argc, argv);</div>
|
|
<div class="line"><a id="l04956" name="l04956"></a><span class="lineno"> 4956</span> <span class="keywordflow">if</span> (returnCode == 0)</div>
|
|
<div class="line"><a id="l04957" name="l04957"></a><span class="lineno"> 4957</span> returnCode = <a class="code hl_function" href="classCatch_1_1Session.html#a8c82b89613ebd99f1ba1a3f7b634e571">run</a>();</div>
|
|
<div class="line"><a id="l04958" name="l04958"></a><span class="lineno"> 4958</span> <span class="keywordflow">return</span> returnCode;</div>
|
|
<div class="line"><a id="l04959" name="l04959"></a><span class="lineno"> 4959</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l04960" name="l04960"></a><span class="lineno"> 4960</span> </div>
|
|
<div class="line"><a id="l04961" name="l04961"></a><span class="lineno"> 4961</span> <span class="keywordtype">int</span> run();</div>
|
|
<div class="line"><a id="l04962" name="l04962"></a><span class="lineno"> 4962</span> </div>
|
|
<div class="line"><a id="l04963" name="l04963"></a><span class="lineno"> 4963</span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Clara::Parser</a> <span class="keyword">const</span>& cli() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l04964" name="l04964"></a><span class="lineno"> 4964</span> <span class="keywordtype">void</span> cli( <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Clara::Parser</a> <span class="keyword">const</span>& newParser );</div>
|
|
<div class="line"><a id="l04965" name="l04965"></a><span class="lineno"> 4965</span> <a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a>& configData();</div>
|
|
<div class="line"><a id="l04966" name="l04966"></a><span class="lineno"> 4966</span> <a class="code hl_class" href="classCatch_1_1Config.html">Config</a>& config();</div>
|
|
<div class="line"><a id="l04967" name="l04967"></a><span class="lineno"> 4967</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l04968" name="l04968"></a><span class="lineno"> 4968</span> <span class="keywordtype">int</span> runInternal();</div>
|
|
<div class="line"><a id="l04969" name="l04969"></a><span class="lineno"> 4969</span> </div>
|
|
<div class="line"><a id="l04970" name="l04970"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html#ac1d53d25ac1252c58df1c4c41fa461bb"> 4970</a></span> <a class="code hl_class" href="classCatch_1_1Clara_1_1Parser.html">Clara::Parser</a> <a class="code hl_variable" href="classCatch_1_1Session.html#ac1d53d25ac1252c58df1c4c41fa461bb">m_cli</a>;</div>
|
|
<div class="line"><a id="l04971" name="l04971"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html#a69fa5a937e338428851b8193a1a57c6e"> 4971</a></span> <a class="code hl_struct" href="structCatch_1_1ConfigData.html">ConfigData</a> <a class="code hl_variable" href="classCatch_1_1Session.html#a69fa5a937e338428851b8193a1a57c6e">m_configData</a>;</div>
|
|
<div class="line"><a id="l04972" name="l04972"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html#a76cd4bf9eb85e35f4df746278d758c79"> 4972</a></span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<Config></a> <a class="code hl_variable" href="classCatch_1_1Session.html#a76cd4bf9eb85e35f4df746278d758c79">m_config</a>;</div>
|
|
<div class="line"><a id="l04973" name="l04973"></a><span class="lineno"><a class="line" href="classCatch_1_1Session.html#a5393c1a489adedc24a22c57cb7d0b1fb"> 4973</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1Session.html#a5393c1a489adedc24a22c57cb7d0b1fb">m_startupExceptions</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l04974" name="l04974"></a><span class="lineno"> 4974</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04975" name="l04975"></a><span class="lineno"> 4975</span> </div>
|
|
<div class="line"><a id="l04976" name="l04976"></a><span class="lineno"> 4976</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l04977" name="l04977"></a><span class="lineno"> 4977</span> </div>
|
|
<div class="line"><a id="l04978" name="l04978"></a><span class="lineno"> 4978</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SESSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04979" name="l04979"></a><span class="lineno"> 4979</span> </div>
|
|
<div class="line"><a id="l04980" name="l04980"></a><span class="lineno"> 4980</span> </div>
|
|
<div class="line"><a id="l04981" name="l04981"></a><span class="lineno"> 4981</span><span class="preprocessor">#ifndef CATCH_TAG_ALIAS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04982" name="l04982"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a42d2664362b48b7e41c51a2a45d6f7c2"> 4982</a></span><span class="preprocessor">#define CATCH_TAG_ALIAS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l04983" name="l04983"></a><span class="lineno"> 4983</span> </div>
|
|
<div class="line"><a id="l04984" name="l04984"></a><span class="lineno"> 4984</span> </div>
|
|
<div class="line"><a id="l04985" name="l04985"></a><span class="lineno"> 4985</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l04986" name="l04986"></a><span class="lineno"> 4986</span> </div>
|
|
<div class="line"><a id="l04987" name="l04987"></a><span class="lineno"> 4987</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l04988" name="l04988"></a><span class="lineno"> 4988</span> </div>
|
|
<div class="foldopen" id="foldopen04989" data-start="{" data-end="};">
|
|
<div class="line"><a id="l04989" name="l04989"></a><span class="lineno"><a class="line" href="structCatch_1_1TagAlias.html"> 4989</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1TagAlias.html#ae5a030edfbc8e37f28310d4ca599396c">TagAlias</a> {</div>
|
|
<div class="foldopen" id="foldopen04990" data-start="{" data-end="}">
|
|
<div class="line"><a id="l04990" name="l04990"></a><span class="lineno"><a class="line" href="structCatch_1_1TagAlias.html#ae5a030edfbc8e37f28310d4ca599396c"> 4990</a></span> <a class="code hl_function" href="structCatch_1_1TagAlias.html#ae5a030edfbc8e37f28310d4ca599396c">TagAlias</a>(std::string <span class="keyword">const</span>& _tag, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> _lineInfo):</div>
|
|
<div class="line"><a id="l04991" name="l04991"></a><span class="lineno"> 4991</span> <a class="code hl_variable" href="structCatch_1_1TagAlias.html#a950183883ab17c90d0fab16b966b6e2d">tag</a>(_tag),</div>
|
|
<div class="line"><a id="l04992" name="l04992"></a><span class="lineno"> 4992</span> <a class="code hl_variable" href="structCatch_1_1TagAlias.html#a2f51fe0b3c052561275d26b6eb88f702">lineInfo</a>(_lineInfo)</div>
|
|
<div class="line"><a id="l04993" name="l04993"></a><span class="lineno"> 4993</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l04994" name="l04994"></a><span class="lineno"> 4994</span> </div>
|
|
<div class="line"><a id="l04995" name="l04995"></a><span class="lineno"><a class="line" href="structCatch_1_1TagAlias.html#a950183883ab17c90d0fab16b966b6e2d"> 4995</a></span> std::string <a class="code hl_variable" href="structCatch_1_1TagAlias.html#a950183883ab17c90d0fab16b966b6e2d">tag</a>;</div>
|
|
<div class="line"><a id="l04996" name="l04996"></a><span class="lineno"><a class="line" href="structCatch_1_1TagAlias.html#a2f51fe0b3c052561275d26b6eb88f702"> 4996</a></span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_variable" href="structCatch_1_1TagAlias.html#a2f51fe0b3c052561275d26b6eb88f702">lineInfo</a>;</div>
|
|
<div class="line"><a id="l04997" name="l04997"></a><span class="lineno"> 4997</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l04998" name="l04998"></a><span class="lineno"> 4998</span> </div>
|
|
<div class="line"><a id="l04999" name="l04999"></a><span class="lineno"> 4999</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l05000" name="l05000"></a><span class="lineno"> 5000</span> </div>
|
|
<div class="line"><a id="l05001" name="l05001"></a><span class="lineno"> 5001</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TAG_ALIAS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05002" name="l05002"></a><span class="lineno"> 5002</span> </div>
|
|
<div class="line"><a id="l05003" name="l05003"></a><span class="lineno"> 5003</span> </div>
|
|
<div class="line"><a id="l05004" name="l05004"></a><span class="lineno"> 5004</span><span class="preprocessor">#ifndef CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05005" name="l05005"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5c54e6db0ee48269cb687c2ea482499c"> 5005</a></span><span class="preprocessor">#define CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05006" name="l05006"></a><span class="lineno"> 5006</span> </div>
|
|
<div class="line"><a id="l05007" name="l05007"></a><span class="lineno"> 5007</span> </div>
|
|
<div class="line"><a id="l05008" name="l05008"></a><span class="lineno"> 5008</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05009" name="l05009"></a><span class="lineno"> 5009</span> </div>
|
|
<div class="foldopen" id="foldopen05010" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05010" name="l05010"></a><span class="lineno"><a class="line" href="structCatch_1_1RegistrarForTagAliases.html"> 5010</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1RegistrarForTagAliases.html#ae4e45830e4763bcd65d55d8db9167b69">RegistrarForTagAliases</a> {</div>
|
|
<div class="line"><a id="l05011" name="l05011"></a><span class="lineno"> 5011</span> <a class="code hl_function" href="structCatch_1_1RegistrarForTagAliases.html#ae4e45830e4763bcd65d55d8db9167b69">RegistrarForTagAliases</a>( <span class="keywordtype">char</span> <span class="keyword">const</span>* alias, <span class="keywordtype">char</span> <span class="keyword">const</span>* tag, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo );</div>
|
|
<div class="line"><a id="l05012" name="l05012"></a><span class="lineno"> 5012</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05013" name="l05013"></a><span class="lineno"> 5013</span> </div>
|
|
<div class="line"><a id="l05014" name="l05014"></a><span class="lineno"> 5014</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l05015" name="l05015"></a><span class="lineno"> 5015</span> </div>
|
|
<div class="foldopen" id="foldopen05016" data-start="" data-end="">
|
|
<div class="line"><a id="l05016" name="l05016"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af7f9d4a12274e1ccf4b1021e5d35e0c5"> 5016</a></span><span class="preprocessor">#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \</span></div>
|
|
<div class="line"><a id="l05017" name="l05017"></a><span class="lineno"> 5017</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05018" name="l05018"></a><span class="lineno"> 5018</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05019" name="l05019"></a><span class="lineno"> 5019</span><span class="preprocessor"> namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \</span></div>
|
|
<div class="line"><a id="l05020" name="l05020"></a><span class="lineno"> 5020</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05021" name="l05021"></a><span class="lineno"> 5021</span> </div>
|
|
<div class="line"><a id="l05022" name="l05022"></a><span class="lineno"> 5022</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05023" name="l05023"></a><span class="lineno"> 5023</span> </div>
|
|
<div class="line"><a id="l05024" name="l05024"></a><span class="lineno"> 5024</span> </div>
|
|
<div class="line"><a id="l05025" name="l05025"></a><span class="lineno"> 5025</span><span class="preprocessor">#ifndef CATCH_TEMPLATE_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05026" name="l05026"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8c21dea46aa07e227584fe45fab28f4e"> 5026</a></span><span class="preprocessor">#define CATCH_TEMPLATE_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05027" name="l05027"></a><span class="lineno"> 5027</span> </div>
|
|
<div class="line"><a id="l05028" name="l05028"></a><span class="lineno"> 5028</span><span class="comment">// We need this suppression to leak, because it took until GCC 10</span></div>
|
|
<div class="line"><a id="l05029" name="l05029"></a><span class="lineno"> 5029</span><span class="comment">// for the front end to handle local suppression via _Pragma properly</span></div>
|
|
<div class="line"><a id="l05030" name="l05030"></a><span class="lineno"> 5030</span><span class="comment">// inside templates (so `TEMPLATE_TEST_CASE` and co).</span></div>
|
|
<div class="line"><a id="l05031" name="l05031"></a><span class="lineno"> 5031</span><span class="comment">// **THIS IS DIFFERENT FOR STANDARD TESTS, WHERE GCC 9 IS SUFFICIENT**</span></div>
|
|
<div class="line"><a id="l05032" name="l05032"></a><span class="lineno"> 5032</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && __GNUC__ < 10</span></div>
|
|
<div class="line"><a id="l05033" name="l05033"></a><span class="lineno"> 5033</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Wparentheses"</span></div>
|
|
<div class="line"><a id="l05034" name="l05034"></a><span class="lineno"> 5034</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05035" name="l05035"></a><span class="lineno"> 5035</span> </div>
|
|
<div class="line"><a id="l05036" name="l05036"></a><span class="lineno"> 5036</span> </div>
|
|
<div class="line"><a id="l05037" name="l05037"></a><span class="lineno"> 5037</span> </div>
|
|
<div class="line"><a id="l05038" name="l05038"></a><span class="lineno"> 5038</span> </div>
|
|
<div class="line"><a id="l05039" name="l05039"></a><span class="lineno"> 5039</span><span class="preprocessor">#ifndef CATCH_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05040" name="l05040"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4997f62a4d872911a9a8abf3d441b4cc"> 5040</a></span><span class="preprocessor">#define CATCH_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05041" name="l05041"></a><span class="lineno"> 5041</span> </div>
|
|
<div class="line"><a id="l05042" name="l05042"></a><span class="lineno"> 5042</span> </div>
|
|
<div class="line"><a id="l05043" name="l05043"></a><span class="lineno"> 5043</span> </div>
|
|
<div class="line"><a id="l05044" name="l05044"></a><span class="lineno"> 5044</span><span class="preprocessor">#ifndef CATCH_TEST_MACRO_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05045" name="l05045"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a416148c7bb39cb47d883db087c98225d"> 5045</a></span><span class="preprocessor">#define CATCH_TEST_MACRO_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05046" name="l05046"></a><span class="lineno"> 5046</span> </div>
|
|
<div class="line"><a id="l05047" name="l05047"></a><span class="lineno"> 5047</span> </div>
|
|
<div class="line"><a id="l05048" name="l05048"></a><span class="lineno"> 5048</span> </div>
|
|
<div class="line"><a id="l05049" name="l05049"></a><span class="lineno"> 5049</span><span class="preprocessor">#ifndef CATCH_ASSERTION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05050" name="l05050"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa7f60b8d5eb867a602d5dfbb215cc954"> 5050</a></span><span class="preprocessor">#define CATCH_ASSERTION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05051" name="l05051"></a><span class="lineno"> 5051</span> </div>
|
|
<div class="line"><a id="l05052" name="l05052"></a><span class="lineno"> 5052</span> </div>
|
|
<div class="line"><a id="l05053" name="l05053"></a><span class="lineno"> 5053</span> </div>
|
|
<div class="line"><a id="l05054" name="l05054"></a><span class="lineno"> 5054</span><span class="preprocessor">#ifndef CATCH_DECOMPOSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05055" name="l05055"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a63ffd26f1f26a7ff1aa5cc14173f58d9"> 5055</a></span><span class="preprocessor">#define CATCH_DECOMPOSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05056" name="l05056"></a><span class="lineno"> 5056</span> </div>
|
|
<div class="line"><a id="l05057" name="l05057"></a><span class="lineno"> 5057</span> </div>
|
|
<div class="line"><a id="l05058" name="l05058"></a><span class="lineno"> 5058</span> </div>
|
|
<div class="line"><a id="l05059" name="l05059"></a><span class="lineno"> 5059</span><span class="preprocessor">#ifndef CATCH_COMPARE_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05060" name="l05060"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7525c3cfa92a13f58c318eaf5b2b96ec"> 5060</a></span><span class="preprocessor">#define CATCH_COMPARE_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05061" name="l05061"></a><span class="lineno"> 5061</span> </div>
|
|
<div class="line"><a id="l05062" name="l05062"></a><span class="lineno"> 5062</span> </div>
|
|
<div class="line"><a id="l05063" name="l05063"></a><span class="lineno"> 5063</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l05064" name="l05064"></a><span class="lineno"> 5064</span> </div>
|
|
<div class="line"><a id="l05065" name="l05065"></a><span class="lineno"> 5065</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05066" name="l05066"></a><span class="lineno"> 5066</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l05067" name="l05067"></a><span class="lineno"> 5067</span> </div>
|
|
<div class="line"><a id="l05068" name="l05068"></a><span class="lineno"> 5068</span><span class="preprocessor">#if defined( __GNUC__ ) && !defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l05069" name="l05069"></a><span class="lineno"> 5069</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l05070" name="l05070"></a><span class="lineno"> 5070</span> <span class="comment">// GCC likes to complain about comparing bool with 0, in the decltype()</span></div>
|
|
<div class="line"><a id="l05071" name="l05071"></a><span class="lineno"> 5071</span> <span class="comment">// that defines the comparable traits below.</span></div>
|
|
<div class="line"><a id="l05072" name="l05072"></a><span class="lineno"> 5072</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wbool-compare"</span></div>
|
|
<div class="line"><a id="l05073" name="l05073"></a><span class="lineno"> 5073</span> <span class="comment">// "ordered comparison of pointer with integer zero" same as above,</span></div>
|
|
<div class="line"><a id="l05074" name="l05074"></a><span class="lineno"> 5074</span> <span class="comment">// but it does not have a separate warning flag to suppress</span></div>
|
|
<div class="line"><a id="l05075" name="l05075"></a><span class="lineno"> 5075</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wextra"</span></div>
|
|
<div class="line"><a id="l05076" name="l05076"></a><span class="lineno"> 5076</span> <span class="comment">// Did you know that comparing floats with `0` directly</span></div>
|
|
<div class="line"><a id="l05077" name="l05077"></a><span class="lineno"> 5077</span> <span class="comment">// is super-duper dangerous in unevaluated context?</span></div>
|
|
<div class="line"><a id="l05078" name="l05078"></a><span class="lineno"> 5078</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wfloat-equal"</span></div>
|
|
<div class="line"><a id="l05079" name="l05079"></a><span class="lineno"> 5079</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05080" name="l05080"></a><span class="lineno"> 5080</span> </div>
|
|
<div class="line"><a id="l05081" name="l05081"></a><span class="lineno"> 5081</span><span class="preprocessor">#if defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l05082" name="l05082"></a><span class="lineno"> 5082</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l05083" name="l05083"></a><span class="lineno"> 5083</span> <span class="comment">// Did you know that comparing floats with `0` directly</span></div>
|
|
<div class="line"><a id="l05084" name="l05084"></a><span class="lineno"> 5084</span> <span class="comment">// is super-duper dangerous in unevaluated context?</span></div>
|
|
<div class="line"><a id="l05085" name="l05085"></a><span class="lineno"> 5085</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wfloat-equal"</span></div>
|
|
<div class="line"><a id="l05086" name="l05086"></a><span class="lineno"> 5086</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05087" name="l05087"></a><span class="lineno"> 5087</span> </div>
|
|
<div class="foldopen" id="foldopen05088" data-start="" data-end="">
|
|
<div class="line"><a id="l05088" name="l05088"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5"> 5088</a></span><span class="preprocessor">#define CATCH_DEFINE_COMPARABLE_TRAIT( id, op ) \</span></div>
|
|
<div class="line"><a id="l05089" name="l05089"></a><span class="lineno"> 5089</span><span class="preprocessor"> template <typename, typename, typename = void> \</span></div>
|
|
<div class="line"><a id="l05090" name="l05090"></a><span class="lineno"> 5090</span><span class="preprocessor"> struct is_##id##_comparable : std::false_type {}; \</span></div>
|
|
<div class="line"><a id="l05091" name="l05091"></a><span class="lineno"> 5091</span><span class="preprocessor"> template <typename T, typename U> \</span></div>
|
|
<div class="line"><a id="l05092" name="l05092"></a><span class="lineno"> 5092</span><span class="preprocessor"> struct is_##id##_comparable< \</span></div>
|
|
<div class="line"><a id="l05093" name="l05093"></a><span class="lineno"> 5093</span><span class="preprocessor"> T, \</span></div>
|
|
<div class="line"><a id="l05094" name="l05094"></a><span class="lineno"> 5094</span><span class="preprocessor"> U, \</span></div>
|
|
<div class="line"><a id="l05095" name="l05095"></a><span class="lineno"> 5095</span><span class="preprocessor"> void_t<decltype( std::declval<T>() op std::declval<U>() )>> \</span></div>
|
|
<div class="line"><a id="l05096" name="l05096"></a><span class="lineno"> 5096</span><span class="preprocessor"> : std::true_type {}; \</span></div>
|
|
<div class="line"><a id="l05097" name="l05097"></a><span class="lineno"> 5097</span><span class="preprocessor"> template <typename, typename = void> \</span></div>
|
|
<div class="line"><a id="l05098" name="l05098"></a><span class="lineno"> 5098</span><span class="preprocessor"> struct is_##id##_0_comparable : std::false_type {}; \</span></div>
|
|
<div class="line"><a id="l05099" name="l05099"></a><span class="lineno"> 5099</span><span class="preprocessor"> template <typename T> \</span></div>
|
|
<div class="line"><a id="l05100" name="l05100"></a><span class="lineno"> 5100</span><span class="preprocessor"> struct is_##id##_0_comparable<T, \</span></div>
|
|
<div class="line"><a id="l05101" name="l05101"></a><span class="lineno"> 5101</span><span class="preprocessor"> void_t<decltype( std::declval<T>() op 0 )>> \</span></div>
|
|
<div class="line"><a id="l05102" name="l05102"></a><span class="lineno"> 5102</span><span class="preprocessor"> : std::true_type {};</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05103" name="l05103"></a><span class="lineno"> 5103</span> </div>
|
|
<div class="line"><a id="l05104" name="l05104"></a><span class="lineno"> 5104</span> <span class="comment">// We need all 6 pre-spaceship comparison ops: <, <=, >, >=, ==, !=</span></div>
|
|
<div class="line"><a id="l05105" name="l05105"></a><span class="lineno"> 5105</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( lt, < )</div>
|
|
<div class="line"><a id="l05106" name="l05106"></a><span class="lineno"> 5106</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( le, <= )</div>
|
|
<div class="line"><a id="l05107" name="l05107"></a><span class="lineno"> 5107</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( gt, > )</div>
|
|
<div class="line"><a id="l05108" name="l05108"></a><span class="lineno"> 5108</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( ge, >= )</div>
|
|
<div class="line"><a id="l05109" name="l05109"></a><span class="lineno"> 5109</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( eq, == )</div>
|
|
<div class="line"><a id="l05110" name="l05110"></a><span class="lineno"> 5110</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a>( ne, != )</div>
|
|
<div class="line"><a id="l05111" name="l05111"></a><span class="lineno"> 5111</span> </div>
|
|
<div class="line"><a id="l05112" name="l05112"></a><span class="lineno"> 5112</span><span class="preprocessor">#undef CATCH_DEFINE_COMPARABLE_TRAIT</span></div>
|
|
<div class="line"><a id="l05113" name="l05113"></a><span class="lineno"> 5113</span> </div>
|
|
<div class="line"><a id="l05114" name="l05114"></a><span class="lineno"> 5114</span><span class="preprocessor">#if defined( __GNUC__ ) && !defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l05115" name="l05115"></a><span class="lineno"> 5115</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l05116" name="l05116"></a><span class="lineno"> 5116</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05117" name="l05117"></a><span class="lineno"> 5117</span><span class="preprocessor">#if defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l05118" name="l05118"></a><span class="lineno"> 5118</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l05119" name="l05119"></a><span class="lineno"> 5119</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05120" name="l05120"></a><span class="lineno"> 5120</span> </div>
|
|
<div class="line"><a id="l05121" name="l05121"></a><span class="lineno"> 5121</span> </div>
|
|
<div class="line"><a id="l05122" name="l05122"></a><span class="lineno"> 5122</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l05123" name="l05123"></a><span class="lineno"> 5123</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05124" name="l05124"></a><span class="lineno"> 5124</span> </div>
|
|
<div class="line"><a id="l05125" name="l05125"></a><span class="lineno"> 5125</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_COMPARE_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05126" name="l05126"></a><span class="lineno"> 5126</span> </div>
|
|
<div class="line"><a id="l05127" name="l05127"></a><span class="lineno"> 5127</span> </div>
|
|
<div class="line"><a id="l05128" name="l05128"></a><span class="lineno"> 5128</span><span class="preprocessor">#ifndef CATCH_LOGICAL_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05129" name="l05129"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0ab1d89eb5cb838d912083693ad83cfe"> 5129</a></span><span class="preprocessor">#define CATCH_LOGICAL_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05130" name="l05130"></a><span class="lineno"> 5130</span> </div>
|
|
<div class="line"><a id="l05131" name="l05131"></a><span class="lineno"> 5131</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l05132" name="l05132"></a><span class="lineno"> 5132</span> </div>
|
|
<div class="line"><a id="l05133" name="l05133"></a><span class="lineno"> 5133</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05134" name="l05134"></a><span class="lineno"> 5134</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l05135" name="l05135"></a><span class="lineno"> 5135</span> </div>
|
|
<div class="line"><a id="l05136" name="l05136"></a><span class="lineno"> 5136</span><span class="preprocessor">#if defined( __cpp_lib_logical_traits ) && __cpp_lib_logical_traits >= 201510</span></div>
|
|
<div class="line"><a id="l05137" name="l05137"></a><span class="lineno"> 5137</span> </div>
|
|
<div class="line"><a id="l05138" name="l05138"></a><span class="lineno"> 5138</span> <span class="keyword">using </span>std::conjunction;</div>
|
|
<div class="line"><a id="l05139" name="l05139"></a><span class="lineno"> 5139</span> <span class="keyword">using </span>std::disjunction;</div>
|
|
<div class="line"><a id="l05140" name="l05140"></a><span class="lineno"> 5140</span> <span class="keyword">using </span>std::negation;</div>
|
|
<div class="line"><a id="l05141" name="l05141"></a><span class="lineno"> 5141</span> </div>
|
|
<div class="line"><a id="l05142" name="l05142"></a><span class="lineno"> 5142</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l05143" name="l05143"></a><span class="lineno"> 5143</span> </div>
|
|
<div class="line"><a id="l05144" name="l05144"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1conjunction.html"> 5144</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>...> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1conjunction.html">conjunction</a> : std::true_type {};</div>
|
|
<div class="line"><a id="l05145" name="l05145"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1conjunction_3_01B1_01_4.html"> 5145</a></span> <span class="keyword">template</span> <<span class="keyword">class</span> B1> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1conjunction.html">conjunction<B1></a> : B1 {};</div>
|
|
<div class="line"><a id="l05146" name="l05146"></a><span class="lineno"> 5146</span> <span class="keyword">template</span> <<span class="keyword">class </span>B1, <span class="keyword">class</span>... Bn></div>
|
|
<div class="foldopen" id="foldopen05147" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05147" name="l05147"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1conjunction_3_01B1_00_01Bn_8_8_8_01_4.html"> 5147</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1conjunction.html">conjunction</a><B1, Bn...></div>
|
|
<div class="line"><a id="l05148" name="l05148"></a><span class="lineno"> 5148</span> : std::conditional_t<bool( B1::value ), conjunction<Bn...>, B1> {};</div>
|
|
</div>
|
|
<div class="line"><a id="l05149" name="l05149"></a><span class="lineno"> 5149</span> </div>
|
|
<div class="line"><a id="l05150" name="l05150"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1disjunction.html"> 5150</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>...> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1disjunction.html">disjunction</a> : std::false_type {};</div>
|
|
<div class="line"><a id="l05151" name="l05151"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1disjunction_3_01B1_01_4.html"> 5151</a></span> <span class="keyword">template</span> <<span class="keyword">class</span> B1> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1disjunction.html">disjunction<B1></a> : B1 {};</div>
|
|
<div class="line"><a id="l05152" name="l05152"></a><span class="lineno"> 5152</span> <span class="keyword">template</span> <<span class="keyword">class </span>B1, <span class="keyword">class</span>... Bn></div>
|
|
<div class="foldopen" id="foldopen05153" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05153" name="l05153"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1disjunction_3_01B1_00_01Bn_8_8_8_01_4.html"> 5153</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1disjunction.html">disjunction</a><B1, Bn...></div>
|
|
<div class="line"><a id="l05154" name="l05154"></a><span class="lineno"> 5154</span> : std::conditional_t<bool( B1::value ), B1, disjunction<Bn...>> {};</div>
|
|
</div>
|
|
<div class="line"><a id="l05155" name="l05155"></a><span class="lineno"> 5155</span> </div>
|
|
<div class="line"><a id="l05156" name="l05156"></a><span class="lineno"> 5156</span> <span class="keyword">template</span> <<span class="keyword">class</span> B></div>
|
|
<div class="line"><a id="l05157" name="l05157"></a><span class="lineno"><a class="line" href="structCatch_1_1Detail_1_1negation.html"> 5157</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Detail_1_1negation.html">negation</a> : std::integral_constant<bool, !bool(B::value)> {};</div>
|
|
<div class="line"><a id="l05158" name="l05158"></a><span class="lineno"> 5158</span> </div>
|
|
<div class="line"><a id="l05159" name="l05159"></a><span class="lineno"> 5159</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05160" name="l05160"></a><span class="lineno"> 5160</span> </div>
|
|
<div class="line"><a id="l05161" name="l05161"></a><span class="lineno"> 5161</span>} <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l05162" name="l05162"></a><span class="lineno"> 5162</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05163" name="l05163"></a><span class="lineno"> 5163</span> </div>
|
|
<div class="line"><a id="l05164" name="l05164"></a><span class="lineno"> 5164</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_LOGICAL_TRAITS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05165" name="l05165"></a><span class="lineno"> 5165</span> </div>
|
|
<div class="line"><a id="l05166" name="l05166"></a><span class="lineno"> 5166</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l05167" name="l05167"></a><span class="lineno"> 5167</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l05168" name="l05168"></a><span class="lineno"> 5168</span></div>
|
|
<div class="line"><a id="l05248" name="l05248"></a><span class="lineno"> 5248</span> </div>
|
|
<div class="line"><a id="l05249" name="l05249"></a><span class="lineno"> 5249</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l05250" name="l05250"></a><span class="lineno"> 5250</span><span class="preprocessor">#pragma warning(push)</span></div>
|
|
<div class="line"><a id="l05251" name="l05251"></a><span class="lineno"> 5251</span><span class="preprocessor">#pragma warning(disable:4389) </span><span class="comment">// '==' : signed/unsigned mismatch</span></div>
|
|
<div class="line"><a id="l05252" name="l05252"></a><span class="lineno"> 5252</span><span class="preprocessor">#pragma warning(disable:4018) </span><span class="comment">// more "signed/unsigned mismatch"</span></div>
|
|
<div class="line"><a id="l05253" name="l05253"></a><span class="lineno"> 5253</span><span class="preprocessor">#pragma warning(disable:4312) </span><span class="comment">// Converting int to T* using reinterpret_cast (issue on x64 platform)</span></div>
|
|
<div class="line"><a id="l05254" name="l05254"></a><span class="lineno"> 5254</span><span class="preprocessor">#pragma warning(disable:4180) </span><span class="comment">// qualifier applied to function type has no meaning</span></div>
|
|
<div class="line"><a id="l05255" name="l05255"></a><span class="lineno"> 5255</span><span class="preprocessor">#pragma warning(disable:4800) </span><span class="comment">// Forcing result to true or false</span></div>
|
|
<div class="line"><a id="l05256" name="l05256"></a><span class="lineno"> 5256</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05257" name="l05257"></a><span class="lineno"> 5257</span> </div>
|
|
<div class="line"><a id="l05258" name="l05258"></a><span class="lineno"> 5258</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l05259" name="l05259"></a><span class="lineno"> 5259</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l05260" name="l05260"></a><span class="lineno"> 5260</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wsign-compare"</span></div>
|
|
<div class="line"><a id="l05261" name="l05261"></a><span class="lineno"> 5261</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wnon-virtual-dtor"</span></div>
|
|
<div class="line"><a id="l05262" name="l05262"></a><span class="lineno"> 5262</span><span class="preprocessor">#elif defined __GNUC__</span></div>
|
|
<div class="line"><a id="l05263" name="l05263"></a><span class="lineno"> 5263</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l05264" name="l05264"></a><span class="lineno"> 5264</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wsign-compare"</span></div>
|
|
<div class="line"><a id="l05265" name="l05265"></a><span class="lineno"> 5265</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wnon-virtual-dtor"</span></div>
|
|
<div class="line"><a id="l05266" name="l05266"></a><span class="lineno"> 5266</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05267" name="l05267"></a><span class="lineno"> 5267</span> </div>
|
|
<div class="line"><a id="l05268" name="l05268"></a><span class="lineno"> 5268</span><span class="preprocessor">#if defined(CATCH_CPP20_OR_GREATER) && __has_include(<compare>)</span></div>
|
|
<div class="line"><a id="l05269" name="l05269"></a><span class="lineno"> 5269</span><span class="preprocessor"># include <compare></span></div>
|
|
<div class="line"><a id="l05270" name="l05270"></a><span class="lineno"> 5270</span><span class="preprocessor"># if defined( __cpp_lib_three_way_comparison ) && \</span></div>
|
|
<div class="line"><a id="l05271" name="l05271"></a><span class="lineno"> 5271</span><span class="preprocessor"> __cpp_lib_three_way_comparison >= 201907L</span></div>
|
|
<div class="line"><a id="l05272" name="l05272"></a><span class="lineno"> 5272</span><span class="preprocessor"># define CATCH_CONFIG_CPP20_COMPARE_OVERLOADS</span></div>
|
|
<div class="line"><a id="l05273" name="l05273"></a><span class="lineno"> 5273</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l05274" name="l05274"></a><span class="lineno"> 5274</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05275" name="l05275"></a><span class="lineno"> 5275</span> </div>
|
|
<div class="line"><a id="l05276" name="l05276"></a><span class="lineno"> 5276</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05277" name="l05277"></a><span class="lineno"> 5277</span> </div>
|
|
<div class="line"><a id="l05278" name="l05278"></a><span class="lineno"> 5278</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l05279" name="l05279"></a><span class="lineno"> 5279</span> <span class="comment">// This was added in C++20, but we require only C++14 for now.</span></div>
|
|
<div class="line"><a id="l05280" name="l05280"></a><span class="lineno"> 5280</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l05281" name="l05281"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Detail.html#aab88097b4a1bd08c1973823106ffb5f6"> 5281</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Detail.html#aab88097b4a1bd08c1973823106ffb5f6">RemoveCVRef_t</a> = std::remove_cv_t<std::remove_reference_t<T>>;</div>
|
|
<div class="line"><a id="l05282" name="l05282"></a><span class="lineno"> 5282</span> }</div>
|
|
<div class="line"><a id="l05283" name="l05283"></a><span class="lineno"> 5283</span> </div>
|
|
<div class="line"><a id="l05284" name="l05284"></a><span class="lineno"> 5284</span> <span class="comment">// Note: There is nothing that stops us from extending this,</span></div>
|
|
<div class="line"><a id="l05285" name="l05285"></a><span class="lineno"> 5285</span> <span class="comment">// e.g. to `std::is_scalar`, but the more encompassing</span></div>
|
|
<div class="line"><a id="l05286" name="l05286"></a><span class="lineno"> 5286</span> <span class="comment">// traits are usually also more expensive. For now we</span></div>
|
|
<div class="line"><a id="l05287" name="l05287"></a><span class="lineno"> 5287</span> <span class="comment">// keep this as it used to be and it can be changed later.</span></div>
|
|
<div class="line"><a id="l05288" name="l05288"></a><span class="lineno"> 5288</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05289" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05289" name="l05289"></a><span class="lineno"><a class="line" href="structCatch_1_1capture__by__value.html"> 5289</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1capture__by__value.html">capture_by_value</a></div>
|
|
<div class="line"><a id="l05290" name="l05290"></a><span class="lineno"> 5290</span> : std::integral_constant<bool, std::is_arithmetic<T>{}> {};</div>
|
|
</div>
|
|
<div class="line"><a id="l05291" name="l05291"></a><span class="lineno"> 5291</span> </div>
|
|
<div class="line"><a id="l05292" name="l05292"></a><span class="lineno"> 5292</span><span class="preprocessor">#if defined( CATCH_CONFIG_CPP20_COMPARE_OVERLOADS )</span></div>
|
|
<div class="line"><a id="l05293" name="l05293"></a><span class="lineno"> 5293</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l05294" name="l05294"></a><span class="lineno"> 5294</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1capture__by__value.html">capture_by_value</a><std::strong_ordering> : std::true_type {};</div>
|
|
<div class="line"><a id="l05295" name="l05295"></a><span class="lineno"> 5295</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l05296" name="l05296"></a><span class="lineno"> 5296</span> <span class="keyword">struct </span>capture_by_value<std::weak_ordering> : std::true_type {};</div>
|
|
<div class="line"><a id="l05297" name="l05297"></a><span class="lineno"> 5297</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l05298" name="l05298"></a><span class="lineno"> 5298</span> <span class="keyword">struct </span>capture_by_value<std::partial_ordering> : std::true_type {};</div>
|
|
<div class="line"><a id="l05299" name="l05299"></a><span class="lineno"> 5299</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05300" name="l05300"></a><span class="lineno"> 5300</span> </div>
|
|
<div class="line"><a id="l05301" name="l05301"></a><span class="lineno"> 5301</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l05302" name="l05302"></a><span class="lineno"><a class="line" href="structCatch_1_1always__false.html"> 5302</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1always__false.html">always_false</a> : std::false_type {};</div>
|
|
<div class="line"><a id="l05303" name="l05303"></a><span class="lineno"> 5303</span> </div>
|
|
<div class="foldopen" id="foldopen05304" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05304" name="l05304"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html"> 5304</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> {</div>
|
|
<div class="line"><a id="l05305" name="l05305"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#a75ce48da824d514d08152d396abb28d8"> 5305</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a75ce48da824d514d08152d396abb28d8">m_isBinaryExpression</a>;</div>
|
|
<div class="line"><a id="l05306" name="l05306"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#a4646e2b5e0156e913653ec3b9b60c942"> 5306</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a4646e2b5e0156e913653ec3b9b60c942">m_result</a>;</div>
|
|
<div class="line"><a id="l05307" name="l05307"></a><span class="lineno"> 5307</span> </div>
|
|
<div class="line"><a id="l05308" name="l05308"></a><span class="lineno"> 5308</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l05309" name="l05309"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#ab4f9ce61ed614e17b2c63e2b7c88c5fb"> 5309</a></span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#ab4f9ce61ed614e17b2c63e2b7c88c5fb">~ITransientExpression</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l05310" name="l05310"></a><span class="lineno"> 5310</span> </div>
|
|
<div class="line"><a id="l05311" name="l05311"></a><span class="lineno"> 5311</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05312" name="l05312"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#aad59bc043e01f4e7d727d9158a846038"> 5312</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#aad59bc043e01f4e7d727d9158a846038">isBinaryExpression</a>() const -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a75ce48da824d514d08152d396abb28d8">m_isBinaryExpression</a>; }</div>
|
|
<div class="line"><a id="l05313" name="l05313"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#a5cd3e95366a4efb2e351aa62def0fe8e"> 5313</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a5cd3e95366a4efb2e351aa62def0fe8e">getResult</a>() const -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a4646e2b5e0156e913653ec3b9b60c942">m_result</a>; }</div>
|
|
<div class="line"><a id="l05315" name="l05315"></a><span class="lineno"> 5315</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> streamReconstructedExpression( std::ostream& os ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l05316" name="l05316"></a><span class="lineno"> 5316</span> </div>
|
|
<div class="foldopen" id="foldopen05317" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05317" name="l05317"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873"> 5317</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a>( <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#aad59bc043e01f4e7d727d9158a846038">isBinaryExpression</a>, <span class="keywordtype">bool</span> result )</div>
|
|
<div class="line"><a id="l05318" name="l05318"></a><span class="lineno"> 5318</span> : <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a75ce48da824d514d08152d396abb28d8">m_isBinaryExpression</a>( <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#aad59bc043e01f4e7d727d9158a846038">isBinaryExpression</a> ),</div>
|
|
<div class="line"><a id="l05319" name="l05319"></a><span class="lineno"> 5319</span> <a class="code hl_variable" href="classCatch_1_1ITransientExpression.html#a4646e2b5e0156e913653ec3b9b60c942">m_result</a>( result )</div>
|
|
<div class="line"><a id="l05320" name="l05320"></a><span class="lineno"> 5320</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l05321" name="l05321"></a><span class="lineno"> 5321</span> </div>
|
|
<div class="line"><a id="l05322" name="l05322"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#afa2112610febd70d5f6563fb82b83b73"> 5322</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#afa2112610febd70d5f6563fb82b83b73">ITransientExpression</a>( <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> <span class="keyword">const</span>& ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l05323" name="l05323"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#afb1ea60be183ff81fcea46f0fe0672e0"> 5323</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a>& <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#afb1ea60be183ff81fcea46f0fe0672e0">operator=</a>( <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> <span class="keyword">const</span>& ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l05324" name="l05324"></a><span class="lineno"> 5324</span> </div>
|
|
<div class="foldopen" id="foldopen05325" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05325" name="l05325"></a><span class="lineno"><a class="line" href="classCatch_1_1ITransientExpression.html#a4a5f9ba111d8832ebca336d68486f6ce"> 5325</a></span> <span class="keyword">friend</span> std::ostream& <a class="code hl_friend" href="classCatch_1_1ITransientExpression.html#a4a5f9ba111d8832ebca336d68486f6ce">operator<<</a>(std::ostream& out, <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> <span class="keyword">const</span>& expr) {</div>
|
|
<div class="line"><a id="l05326" name="l05326"></a><span class="lineno"> 5326</span> expr.<a class="code hl_function" href="classCatch_1_1ITransientExpression.html#aaf4838293904ee28ef9c147f9069d56d">streamReconstructedExpression</a>(out);</div>
|
|
<div class="line"><a id="l05327" name="l05327"></a><span class="lineno"> 5327</span> <span class="keywordflow">return</span> out;</div>
|
|
<div class="line"><a id="l05328" name="l05328"></a><span class="lineno"> 5328</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05329" name="l05329"></a><span class="lineno"> 5329</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05330" name="l05330"></a><span class="lineno"> 5330</span> </div>
|
|
<div class="line"><a id="l05331" name="l05331"></a><span class="lineno"> 5331</span> <span class="keywordtype">void</span> formatReconstructedExpression( std::ostream &os, std::string <span class="keyword">const</span>& lhs, StringRef op, std::string <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l05332" name="l05332"></a><span class="lineno"> 5332</span> </div>
|
|
<div class="line"><a id="l05333" name="l05333"></a><span class="lineno"> 5333</span> <span class="keyword">template</span><<span class="keyword">typename</span> LhsT, <span class="keyword">typename</span> RhsT></div>
|
|
<div class="foldopen" id="foldopen05334" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05334" name="l05334"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html"> 5334</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> {</div>
|
|
<div class="line"><a id="l05335" name="l05335"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a306b29e77b48f9c538c5031a59adc4ce"> 5335</a></span> LhsT <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a306b29e77b48f9c538c5031a59adc4ce">m_lhs</a>;</div>
|
|
<div class="line"><a id="l05336" name="l05336"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#ab21dea40c53fd64d4f7a073dbe93ec95"> 5336</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#ab21dea40c53fd64d4f7a073dbe93ec95">m_op</a>;</div>
|
|
<div class="line"><a id="l05337" name="l05337"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a54cb1629bf304ebe0c1560f4cc2bc186"> 5337</a></span> RhsT <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a54cb1629bf304ebe0c1560f4cc2bc186">m_rhs</a>;</div>
|
|
<div class="line"><a id="l05338" name="l05338"></a><span class="lineno"> 5338</span> </div>
|
|
<div class="foldopen" id="foldopen05339" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05339" name="l05339"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#af998022712d4bd3e4fc7ab9b8a38b445"> 5339</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#af998022712d4bd3e4fc7ab9b8a38b445">streamReconstructedExpression</a>( std::ostream &os )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l05340" name="l05340"></a><span class="lineno"> 5340</span> <a class="code hl_function" href="namespaceCatch.html#a520110c31f26cf9892595772ab814fc0">formatReconstructedExpression</a></div>
|
|
<div class="line"><a id="l05341" name="l05341"></a><span class="lineno"> 5341</span> ( os, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a306b29e77b48f9c538c5031a59adc4ce">m_lhs</a> ), <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#ab21dea40c53fd64d4f7a073dbe93ec95">m_op</a>, <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a54cb1629bf304ebe0c1560f4cc2bc186">m_rhs</a> ) );</div>
|
|
<div class="line"><a id="l05342" name="l05342"></a><span class="lineno"> 5342</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05343" name="l05343"></a><span class="lineno"> 5343</span> </div>
|
|
<div class="line"><a id="l05344" name="l05344"></a><span class="lineno"> 5344</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen05345" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05345" name="l05345"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4"> 5345</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr</a>( <span class="keywordtype">bool</span> comparisonResult, LhsT lhs, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> op, RhsT rhs )</div>
|
|
<div class="line"><a id="l05346" name="l05346"></a><span class="lineno"> 5346</span> : <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a>{ true, comparisonResult },</div>
|
|
<div class="line"><a id="l05347" name="l05347"></a><span class="lineno"> 5347</span> <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a306b29e77b48f9c538c5031a59adc4ce">m_lhs</a>( lhs ),</div>
|
|
<div class="line"><a id="l05348" name="l05348"></a><span class="lineno"> 5348</span> <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#ab21dea40c53fd64d4f7a073dbe93ec95">m_op</a>( op ),</div>
|
|
<div class="line"><a id="l05349" name="l05349"></a><span class="lineno"> 5349</span> <a class="code hl_variable" href="classCatch_1_1BinaryExpr.html#a54cb1629bf304ebe0c1560f4cc2bc186">m_rhs</a>( rhs )</div>
|
|
<div class="line"><a id="l05350" name="l05350"></a><span class="lineno"> 5350</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l05351" name="l05351"></a><span class="lineno"> 5351</span> </div>
|
|
<div class="line"><a id="l05352" name="l05352"></a><span class="lineno"> 5352</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05353" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05353" name="l05353"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#ae4fba62be6063010bc33d0988ff7d8d5"> 5353</a></span> <span class="keyword">auto</span> operator && ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05354" name="l05354"></a><span class="lineno"> 5354</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05355" name="l05355"></a><span class="lineno"> 5355</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05356" name="l05356"></a><span class="lineno"> 5356</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05357" name="l05357"></a><span class="lineno"> 5357</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05358" name="l05358"></a><span class="lineno"> 5358</span> </div>
|
|
<div class="line"><a id="l05359" name="l05359"></a><span class="lineno"> 5359</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05360" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05360" name="l05360"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a331e53968b1a2f92827c35721cc7eded"> 5360</a></span> <span class="keyword">auto</span> operator || ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05361" name="l05361"></a><span class="lineno"> 5361</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05362" name="l05362"></a><span class="lineno"> 5362</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05363" name="l05363"></a><span class="lineno"> 5363</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05364" name="l05364"></a><span class="lineno"> 5364</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05365" name="l05365"></a><span class="lineno"> 5365</span> </div>
|
|
<div class="line"><a id="l05366" name="l05366"></a><span class="lineno"> 5366</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05367" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05367" name="l05367"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a245bffd2aab2f560814739986710aaf1"> 5367</a></span> <span class="keyword">auto</span> operator == ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05368" name="l05368"></a><span class="lineno"> 5368</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05369" name="l05369"></a><span class="lineno"> 5369</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05370" name="l05370"></a><span class="lineno"> 5370</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05371" name="l05371"></a><span class="lineno"> 5371</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05372" name="l05372"></a><span class="lineno"> 5372</span> </div>
|
|
<div class="line"><a id="l05373" name="l05373"></a><span class="lineno"> 5373</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05374" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05374" name="l05374"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#ad06dd2c9fc1dd77fe8d8e51440c14ff6"> 5374</a></span> <span class="keyword">auto</span> operator != ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05375" name="l05375"></a><span class="lineno"> 5375</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05376" name="l05376"></a><span class="lineno"> 5376</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05377" name="l05377"></a><span class="lineno"> 5377</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05378" name="l05378"></a><span class="lineno"> 5378</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05379" name="l05379"></a><span class="lineno"> 5379</span> </div>
|
|
<div class="line"><a id="l05380" name="l05380"></a><span class="lineno"> 5380</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05381" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05381" name="l05381"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#acff324c7d285cbee7efa9fbe83955638"> 5381</a></span> <span class="keyword">auto</span> operator > ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05382" name="l05382"></a><span class="lineno"> 5382</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05383" name="l05383"></a><span class="lineno"> 5383</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05384" name="l05384"></a><span class="lineno"> 5384</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05385" name="l05385"></a><span class="lineno"> 5385</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05386" name="l05386"></a><span class="lineno"> 5386</span> </div>
|
|
<div class="line"><a id="l05387" name="l05387"></a><span class="lineno"> 5387</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05388" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05388" name="l05388"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a7e6c3dcf59b3cd51e7c82355da3ef451"> 5388</a></span> <span class="keyword">auto</span> operator < ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05389" name="l05389"></a><span class="lineno"> 5389</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05390" name="l05390"></a><span class="lineno"> 5390</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05391" name="l05391"></a><span class="lineno"> 5391</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05392" name="l05392"></a><span class="lineno"> 5392</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05393" name="l05393"></a><span class="lineno"> 5393</span> </div>
|
|
<div class="line"><a id="l05394" name="l05394"></a><span class="lineno"> 5394</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05395" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05395" name="l05395"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a67901ddb9afd83961fb4e65ea3d75050"> 5395</a></span> <span class="keyword">auto</span> operator >= ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05396" name="l05396"></a><span class="lineno"> 5396</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05397" name="l05397"></a><span class="lineno"> 5397</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05398" name="l05398"></a><span class="lineno"> 5398</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05399" name="l05399"></a><span class="lineno"> 5399</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05400" name="l05400"></a><span class="lineno"> 5400</span> </div>
|
|
<div class="line"><a id="l05401" name="l05401"></a><span class="lineno"> 5401</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05402" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05402" name="l05402"></a><span class="lineno"><a class="line" href="classCatch_1_1BinaryExpr.html#a5590a2c5f5074ca2509c09b92bfcdf57"> 5402</a></span> <span class="keyword">auto</span> operator <= ( T ) <span class="keyword">const</span> -> <a class="code hl_function" href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">BinaryExpr<LhsT, RhsT const&></a> <span class="keyword">const</span> {</div>
|
|
<div class="line"><a id="l05403" name="l05403"></a><span class="lineno"> 5403</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<T>::value</a>,</div>
|
|
<div class="line"><a id="l05404" name="l05404"></a><span class="lineno"> 5404</span> <span class="stringliteral">"chained comparisons are not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05405" name="l05405"></a><span class="lineno"> 5405</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05406" name="l05406"></a><span class="lineno"> 5406</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05407" name="l05407"></a><span class="lineno"> 5407</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05408" name="l05408"></a><span class="lineno"> 5408</span> </div>
|
|
<div class="line"><a id="l05409" name="l05409"></a><span class="lineno"> 5409</span> <span class="keyword">template</span><<span class="keyword">typename</span> LhsT></div>
|
|
<div class="foldopen" id="foldopen05410" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05410" name="l05410"></a><span class="lineno"><a class="line" href="classCatch_1_1UnaryExpr.html"> 5410</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1UnaryExpr.html#a91767607719503ad40a8c5db7fbc08f2">UnaryExpr</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a> {</div>
|
|
<div class="line"><a id="l05411" name="l05411"></a><span class="lineno"><a class="line" href="classCatch_1_1UnaryExpr.html#a7b6e97e576377dd60c77ab551a180325"> 5411</a></span> LhsT <a class="code hl_variable" href="classCatch_1_1UnaryExpr.html#a7b6e97e576377dd60c77ab551a180325">m_lhs</a>;</div>
|
|
<div class="line"><a id="l05412" name="l05412"></a><span class="lineno"> 5412</span> </div>
|
|
<div class="foldopen" id="foldopen05413" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05413" name="l05413"></a><span class="lineno"><a class="line" href="classCatch_1_1UnaryExpr.html#aaabf30455a996c80675c0f388a6e4110"> 5413</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1UnaryExpr.html#aaabf30455a996c80675c0f388a6e4110">streamReconstructedExpression</a>( std::ostream &os )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l05414" name="l05414"></a><span class="lineno"> 5414</span> os << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( <a class="code hl_variable" href="classCatch_1_1UnaryExpr.html#a7b6e97e576377dd60c77ab551a180325">m_lhs</a> );</div>
|
|
<div class="line"><a id="l05415" name="l05415"></a><span class="lineno"> 5415</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05416" name="l05416"></a><span class="lineno"> 5416</span> </div>
|
|
<div class="line"><a id="l05417" name="l05417"></a><span class="lineno"> 5417</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen05418" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05418" name="l05418"></a><span class="lineno"><a class="line" href="classCatch_1_1UnaryExpr.html#a91767607719503ad40a8c5db7fbc08f2"> 5418</a></span> <span class="keyword">explicit</span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1UnaryExpr.html#a91767607719503ad40a8c5db7fbc08f2">UnaryExpr</a>( LhsT lhs )</div>
|
|
<div class="line"><a id="l05419" name="l05419"></a><span class="lineno"> 5419</span> : <a class="code hl_function" href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">ITransientExpression</a>{ false, static_cast<bool>(lhs) },</div>
|
|
<div class="line"><a id="l05420" name="l05420"></a><span class="lineno"> 5420</span> <a class="code hl_variable" href="classCatch_1_1UnaryExpr.html#a7b6e97e576377dd60c77ab551a180325">m_lhs</a>( lhs )</div>
|
|
<div class="line"><a id="l05421" name="l05421"></a><span class="lineno"> 5421</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l05422" name="l05422"></a><span class="lineno"> 5422</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05423" name="l05423"></a><span class="lineno"> 5423</span> </div>
|
|
<div class="line"><a id="l05424" name="l05424"></a><span class="lineno"> 5424</span> </div>
|
|
<div class="line"><a id="l05425" name="l05425"></a><span class="lineno"> 5425</span> <span class="keyword">template</span><<span class="keyword">typename</span> LhsT></div>
|
|
<div class="foldopen" id="foldopen05426" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05426" name="l05426"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html"> 5426</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46">ExprLhs</a> {</div>
|
|
<div class="line"><a id="l05427" name="l05427"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html#af290873a8427ccbdae6acb915fb7366a"> 5427</a></span> LhsT <a class="code hl_variable" href="classCatch_1_1ExprLhs.html#af290873a8427ccbdae6acb915fb7366a">m_lhs</a>;</div>
|
|
<div class="line"><a id="l05428" name="l05428"></a><span class="lineno"> 5428</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05429" name="l05429"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46"> 5429</a></span> <span class="keyword">explicit</span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46">ExprLhs</a>( LhsT lhs ) : <a class="code hl_variable" href="classCatch_1_1ExprLhs.html#af290873a8427ccbdae6acb915fb7366a">m_lhs</a>( lhs ) {}</div>
|
|
<div class="line"><a id="l05430" name="l05430"></a><span class="lineno"> 5430</span> </div>
|
|
<div class="foldopen" id="foldopen05431" data-start="" data-end="">
|
|
<div class="line"><a id="l05431" name="l05431"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aea22592bf22edde6e70861c9b3b2bf51"> 5431</a></span><span class="preprocessor">#define CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR( id, op ) \</span></div>
|
|
<div class="line"><a id="l05432" name="l05432"></a><span class="lineno"> 5432</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05433" name="l05433"></a><span class="lineno"> 5433</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT&& rhs ) \</span></div>
|
|
<div class="line"><a id="l05434" name="l05434"></a><span class="lineno"> 5434</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05435" name="l05435"></a><span class="lineno"> 5435</span><span class="preprocessor"> Detail::conjunction<Detail::is_##id##_comparable<LhsT, RhsT>, \</span></div>
|
|
<div class="line"><a id="l05436" name="l05436"></a><span class="lineno"> 5436</span><span class="preprocessor"> Detail::negation<capture_by_value< \</span></div>
|
|
<div class="line"><a id="l05437" name="l05437"></a><span class="lineno"> 5437</span><span class="preprocessor"> Detail::RemoveCVRef_t<RhsT>>>>::value, \</span></div>
|
|
<div class="line"><a id="l05438" name="l05438"></a><span class="lineno"> 5438</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT const&>> { \</span></div>
|
|
<div class="line"><a id="l05439" name="l05439"></a><span class="lineno"> 5439</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05440" name="l05440"></a><span class="lineno"> 5440</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05441" name="l05441"></a><span class="lineno"> 5441</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05442" name="l05442"></a><span class="lineno"> 5442</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05443" name="l05443"></a><span class="lineno"> 5443</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05444" name="l05444"></a><span class="lineno"> 5444</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05445" name="l05445"></a><span class="lineno"> 5445</span><span class="preprocessor"> Detail::conjunction<Detail::is_##id##_comparable<LhsT, RhsT>, \</span></div>
|
|
<div class="line"><a id="l05446" name="l05446"></a><span class="lineno"> 5446</span><span class="preprocessor"> capture_by_value<RhsT>>::value, \</span></div>
|
|
<div class="line"><a id="l05447" name="l05447"></a><span class="lineno"> 5447</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05448" name="l05448"></a><span class="lineno"> 5448</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05449" name="l05449"></a><span class="lineno"> 5449</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05450" name="l05450"></a><span class="lineno"> 5450</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05451" name="l05451"></a><span class="lineno"> 5451</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05452" name="l05452"></a><span class="lineno"> 5452</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05453" name="l05453"></a><span class="lineno"> 5453</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05454" name="l05454"></a><span class="lineno"> 5454</span><span class="preprocessor"> Detail::conjunction< \</span></div>
|
|
<div class="line"><a id="l05455" name="l05455"></a><span class="lineno"> 5455</span><span class="preprocessor"> Detail::negation<Detail::is_##id##_comparable<LhsT, RhsT>>, \</span></div>
|
|
<div class="line"><a id="l05456" name="l05456"></a><span class="lineno"> 5456</span><span class="preprocessor"> Detail::is_eq_0_comparable<LhsT>, \</span></div>
|
|
<div class="line"><a id="l05457" name="l05457"></a><span class="lineno"> 5457</span><span class="preprocessor"> </span><span class="comment">/* We allow long because we want `ptr op NULL` to be accepted */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l05458" name="l05458"></a><span class="lineno"> 5458</span><span class="preprocessor"> Detail::disjunction<std::is_same<RhsT, int>, \</span></div>
|
|
<div class="line"><a id="l05459" name="l05459"></a><span class="lineno"> 5459</span><span class="preprocessor"> std::is_same<RhsT, long>>>::value, \</span></div>
|
|
<div class="line"><a id="l05460" name="l05460"></a><span class="lineno"> 5460</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05461" name="l05461"></a><span class="lineno"> 5461</span><span class="preprocessor"> if ( rhs != 0 ) { throw_test_failure_exception(); } \</span></div>
|
|
<div class="line"><a id="l05462" name="l05462"></a><span class="lineno"> 5462</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05463" name="l05463"></a><span class="lineno"> 5463</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op 0 ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05464" name="l05464"></a><span class="lineno"> 5464</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05465" name="l05465"></a><span class="lineno"> 5465</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05466" name="l05466"></a><span class="lineno"> 5466</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05467" name="l05467"></a><span class="lineno"> 5467</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05468" name="l05468"></a><span class="lineno"> 5468</span><span class="preprocessor"> Detail::conjunction< \</span></div>
|
|
<div class="line"><a id="l05469" name="l05469"></a><span class="lineno"> 5469</span><span class="preprocessor"> Detail::negation<Detail::is_##id##_comparable<LhsT, RhsT>>, \</span></div>
|
|
<div class="line"><a id="l05470" name="l05470"></a><span class="lineno"> 5470</span><span class="preprocessor"> Detail::is_eq_0_comparable<RhsT>, \</span></div>
|
|
<div class="line"><a id="l05471" name="l05471"></a><span class="lineno"> 5471</span><span class="preprocessor"> </span><span class="comment">/* We allow long because we want `ptr op NULL` to be accepted */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l05472" name="l05472"></a><span class="lineno"> 5472</span><span class="preprocessor"> Detail::disjunction<std::is_same<LhsT, int>, \</span></div>
|
|
<div class="line"><a id="l05473" name="l05473"></a><span class="lineno"> 5473</span><span class="preprocessor"> std::is_same<LhsT, long>>>::value, \</span></div>
|
|
<div class="line"><a id="l05474" name="l05474"></a><span class="lineno"> 5474</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05475" name="l05475"></a><span class="lineno"> 5475</span><span class="preprocessor"> if ( lhs.m_lhs != 0 ) { throw_test_failure_exception(); } \</span></div>
|
|
<div class="line"><a id="l05476" name="l05476"></a><span class="lineno"> 5476</span><span class="preprocessor"> return { static_cast<bool>( 0 op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05477" name="l05477"></a><span class="lineno"> 5477</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05478" name="l05478"></a><span class="lineno"> 5478</span> </div>
|
|
<div class="line"><a id="l05479" name="l05479"></a><span class="lineno"> 5479</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#aea22592bf22edde6e70861c9b3b2bf51">CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR</a>( eq, == )</div>
|
|
<div class="line"><a id="l05480" name="l05480"></a><span class="lineno"> 5480</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#aea22592bf22edde6e70861c9b3b2bf51">CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR</a>( ne, != )</div>
|
|
<div class="line"><a id="l05481" name="l05481"></a><span class="lineno"> 5481</span> </div>
|
|
<div class="line"><a id="l05482" name="l05482"></a><span class="lineno"> 5482</span> <span class="preprocessor">#undef CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR</span></div>
|
|
<div class="line"><a id="l05483" name="l05483"></a><span class="lineno"> 5483</span> </div>
|
|
<div class="line"><a id="l05484" name="l05484"></a><span class="lineno"> 5484</span> </div>
|
|
<div class="foldopen" id="foldopen05485" data-start="" data-end="">
|
|
<div class="line"><a id="l05485" name="l05485"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362"> 5485</a></span><span class="preprocessor">#define CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR( id, op ) \</span></div>
|
|
<div class="line"><a id="l05486" name="l05486"></a><span class="lineno"> 5486</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05487" name="l05487"></a><span class="lineno"> 5487</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT&& rhs ) \</span></div>
|
|
<div class="line"><a id="l05488" name="l05488"></a><span class="lineno"> 5488</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05489" name="l05489"></a><span class="lineno"> 5489</span><span class="preprocessor"> Detail::conjunction<Detail::is_##id##_comparable<LhsT, RhsT>, \</span></div>
|
|
<div class="line"><a id="l05490" name="l05490"></a><span class="lineno"> 5490</span><span class="preprocessor"> Detail::negation<capture_by_value< \</span></div>
|
|
<div class="line"><a id="l05491" name="l05491"></a><span class="lineno"> 5491</span><span class="preprocessor"> Detail::RemoveCVRef_t<RhsT>>>>::value, \</span></div>
|
|
<div class="line"><a id="l05492" name="l05492"></a><span class="lineno"> 5492</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT const&>> { \</span></div>
|
|
<div class="line"><a id="l05493" name="l05493"></a><span class="lineno"> 5493</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05494" name="l05494"></a><span class="lineno"> 5494</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05495" name="l05495"></a><span class="lineno"> 5495</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05496" name="l05496"></a><span class="lineno"> 5496</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05497" name="l05497"></a><span class="lineno"> 5497</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05498" name="l05498"></a><span class="lineno"> 5498</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05499" name="l05499"></a><span class="lineno"> 5499</span><span class="preprocessor"> Detail::conjunction<Detail::is_##id##_comparable<LhsT, RhsT>, \</span></div>
|
|
<div class="line"><a id="l05500" name="l05500"></a><span class="lineno"> 5500</span><span class="preprocessor"> capture_by_value<RhsT>>::value, \</span></div>
|
|
<div class="line"><a id="l05501" name="l05501"></a><span class="lineno"> 5501</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05502" name="l05502"></a><span class="lineno"> 5502</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05503" name="l05503"></a><span class="lineno"> 5503</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05504" name="l05504"></a><span class="lineno"> 5504</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05505" name="l05505"></a><span class="lineno"> 5505</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05506" name="l05506"></a><span class="lineno"> 5506</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05507" name="l05507"></a><span class="lineno"> 5507</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05508" name="l05508"></a><span class="lineno"> 5508</span><span class="preprocessor"> Detail::conjunction< \</span></div>
|
|
<div class="line"><a id="l05509" name="l05509"></a><span class="lineno"> 5509</span><span class="preprocessor"> Detail::negation<Detail::is_##id##_comparable<LhsT, RhsT>>, \</span></div>
|
|
<div class="line"><a id="l05510" name="l05510"></a><span class="lineno"> 5510</span><span class="preprocessor"> Detail::is_##id##_0_comparable<LhsT>, \</span></div>
|
|
<div class="line"><a id="l05511" name="l05511"></a><span class="lineno"> 5511</span><span class="preprocessor"> std::is_same<RhsT, int>>::value, \</span></div>
|
|
<div class="line"><a id="l05512" name="l05512"></a><span class="lineno"> 5512</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05513" name="l05513"></a><span class="lineno"> 5513</span><span class="preprocessor"> if ( rhs != 0 ) { throw_test_failure_exception(); } \</span></div>
|
|
<div class="line"><a id="l05514" name="l05514"></a><span class="lineno"> 5514</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05515" name="l05515"></a><span class="lineno"> 5515</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op 0 ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05516" name="l05516"></a><span class="lineno"> 5516</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05517" name="l05517"></a><span class="lineno"> 5517</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05518" name="l05518"></a><span class="lineno"> 5518</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05519" name="l05519"></a><span class="lineno"> 5519</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05520" name="l05520"></a><span class="lineno"> 5520</span><span class="preprocessor"> Detail::conjunction< \</span></div>
|
|
<div class="line"><a id="l05521" name="l05521"></a><span class="lineno"> 5521</span><span class="preprocessor"> Detail::negation<Detail::is_##id##_comparable<LhsT, RhsT>>, \</span></div>
|
|
<div class="line"><a id="l05522" name="l05522"></a><span class="lineno"> 5522</span><span class="preprocessor"> Detail::is_##id##_0_comparable<RhsT>, \</span></div>
|
|
<div class="line"><a id="l05523" name="l05523"></a><span class="lineno"> 5523</span><span class="preprocessor"> std::is_same<LhsT, int>>::value, \</span></div>
|
|
<div class="line"><a id="l05524" name="l05524"></a><span class="lineno"> 5524</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05525" name="l05525"></a><span class="lineno"> 5525</span><span class="preprocessor"> if ( lhs.m_lhs != 0 ) { throw_test_failure_exception(); } \</span></div>
|
|
<div class="line"><a id="l05526" name="l05526"></a><span class="lineno"> 5526</span><span class="preprocessor"> return { static_cast<bool>( 0 op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05527" name="l05527"></a><span class="lineno"> 5527</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05528" name="l05528"></a><span class="lineno"> 5528</span> </div>
|
|
<div class="line"><a id="l05529" name="l05529"></a><span class="lineno"> 5529</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362">CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</a>( lt, < )</div>
|
|
<div class="line"><a id="l05530" name="l05530"></a><span class="lineno"> 5530</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362">CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</a>( le, <= )</div>
|
|
<div class="line"><a id="l05531" name="l05531"></a><span class="lineno"> 5531</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362">CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</a>( gt, > )</div>
|
|
<div class="line"><a id="l05532" name="l05532"></a><span class="lineno"> 5532</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362">CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</a>( ge, >= )</div>
|
|
<div class="line"><a id="l05533" name="l05533"></a><span class="lineno"> 5533</span> </div>
|
|
<div class="line"><a id="l05534" name="l05534"></a><span class="lineno"> 5534</span> <span class="preprocessor">#undef CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</span></div>
|
|
<div class="line"><a id="l05535" name="l05535"></a><span class="lineno"> 5535</span> </div>
|
|
<div class="line"><a id="l05536" name="l05536"></a><span class="lineno"> 5536</span> </div>
|
|
<div class="foldopen" id="foldopen05537" data-start="" data-end="">
|
|
<div class="line"><a id="l05537" name="l05537"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aabca54677fdc77aa49edd62439e706b3"> 5537</a></span><span class="preprocessor">#define CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR( op ) \</span></div>
|
|
<div class="line"><a id="l05538" name="l05538"></a><span class="lineno"> 5538</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05539" name="l05539"></a><span class="lineno"> 5539</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT&& rhs ) \</span></div>
|
|
<div class="line"><a id="l05540" name="l05540"></a><span class="lineno"> 5540</span><span class="preprocessor"> -> std::enable_if_t< \</span></div>
|
|
<div class="line"><a id="l05541" name="l05541"></a><span class="lineno"> 5541</span><span class="preprocessor"> !capture_by_value<Detail::RemoveCVRef_t<RhsT>>::value, \</span></div>
|
|
<div class="line"><a id="l05542" name="l05542"></a><span class="lineno"> 5542</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT const&>> { \</span></div>
|
|
<div class="line"><a id="l05543" name="l05543"></a><span class="lineno"> 5543</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05544" name="l05544"></a><span class="lineno"> 5544</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05545" name="l05545"></a><span class="lineno"> 5545</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05546" name="l05546"></a><span class="lineno"> 5546</span><span class="preprocessor"> template <typename RhsT> \</span></div>
|
|
<div class="line"><a id="l05547" name="l05547"></a><span class="lineno"> 5547</span><span class="preprocessor"> constexpr friend auto operator op( ExprLhs&& lhs, RhsT rhs ) \</span></div>
|
|
<div class="line"><a id="l05548" name="l05548"></a><span class="lineno"> 5548</span><span class="preprocessor"> -> std::enable_if_t<capture_by_value<RhsT>::value, \</span></div>
|
|
<div class="line"><a id="l05549" name="l05549"></a><span class="lineno"> 5549</span><span class="preprocessor"> BinaryExpr<LhsT, RhsT>> { \</span></div>
|
|
<div class="line"><a id="l05550" name="l05550"></a><span class="lineno"> 5550</span><span class="preprocessor"> return { \</span></div>
|
|
<div class="line"><a id="l05551" name="l05551"></a><span class="lineno"> 5551</span><span class="preprocessor"> static_cast<bool>( lhs.m_lhs op rhs ), lhs.m_lhs, #op##_sr, rhs }; \</span></div>
|
|
<div class="line"><a id="l05552" name="l05552"></a><span class="lineno"> 5552</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05553" name="l05553"></a><span class="lineno"> 5553</span> </div>
|
|
<div class="line"><a id="l05554" name="l05554"></a><span class="lineno"> 5554</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#aabca54677fdc77aa49edd62439e706b3">CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR</a>(|)</div>
|
|
<div class="line"><a id="l05555" name="l05555"></a><span class="lineno"> 5555</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#aabca54677fdc77aa49edd62439e706b3">CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR</a>(&)</div>
|
|
<div class="line"><a id="l05556" name="l05556"></a><span class="lineno"> 5556</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#aabca54677fdc77aa49edd62439e706b3">CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR</a>(^)</div>
|
|
<div class="line"><a id="l05557" name="l05557"></a><span class="lineno"> 5557</span> </div>
|
|
<div class="line"><a id="l05558" name="l05558"></a><span class="lineno"> 5558</span> <span class="preprocessor">#undef CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR</span></div>
|
|
<div class="line"><a id="l05559" name="l05559"></a><span class="lineno"> 5559</span> </div>
|
|
<div class="line"><a id="l05560" name="l05560"></a><span class="lineno"> 5560</span> <span class="keyword">template</span><<span class="keyword">typename</span> RhsT></div>
|
|
<div class="foldopen" id="foldopen05561" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05561" name="l05561"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html#a2487e4194bedf06148be122d439b9679"> 5561</a></span> <span class="keyword">friend</span> <span class="keyword">auto</span> operator && ( <a class="code hl_function" href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46">ExprLhs</a> &&, RhsT && ) -> <a class="code hl_class" href="classCatch_1_1BinaryExpr.html">BinaryExpr<LhsT, RhsT const&></a> {</div>
|
|
<div class="line"><a id="l05562" name="l05562"></a><span class="lineno"> 5562</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<RhsT>::value</a>,</div>
|
|
<div class="line"><a id="l05563" name="l05563"></a><span class="lineno"> 5563</span> <span class="stringliteral">"operator&& is not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05564" name="l05564"></a><span class="lineno"> 5564</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05565" name="l05565"></a><span class="lineno"> 5565</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05566" name="l05566"></a><span class="lineno"> 5566</span> </div>
|
|
<div class="line"><a id="l05567" name="l05567"></a><span class="lineno"> 5567</span> <span class="keyword">template</span><<span class="keyword">typename</span> RhsT></div>
|
|
<div class="foldopen" id="foldopen05568" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05568" name="l05568"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html#ac1bf585060441dde2511a1caf26b4af1"> 5568</a></span> <span class="keyword">friend</span> <span class="keyword">auto</span> operator || ( <a class="code hl_function" href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46">ExprLhs</a> &&, RhsT && ) -> <a class="code hl_class" href="classCatch_1_1BinaryExpr.html">BinaryExpr<LhsT, RhsT const&></a> {</div>
|
|
<div class="line"><a id="l05569" name="l05569"></a><span class="lineno"> 5569</span> <span class="keyword">static_assert</span>(<a class="code hl_struct" href="structCatch_1_1always__false.html">always_false<RhsT>::value</a>,</div>
|
|
<div class="line"><a id="l05570" name="l05570"></a><span class="lineno"> 5570</span> <span class="stringliteral">"operator|| is not supported inside assertions, "</span></div>
|
|
<div class="line"><a id="l05571" name="l05571"></a><span class="lineno"> 5571</span> <span class="stringliteral">"wrap the expression inside parentheses, or decompose it"</span>);</div>
|
|
<div class="line"><a id="l05572" name="l05572"></a><span class="lineno"> 5572</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05573" name="l05573"></a><span class="lineno"> 5573</span> </div>
|
|
<div class="foldopen" id="foldopen05574" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05574" name="l05574"></a><span class="lineno"><a class="line" href="classCatch_1_1ExprLhs.html#a0bcbddc42c67a4dea5fc68c4e8bcde84"> 5574</a></span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1ExprLhs.html#a0bcbddc42c67a4dea5fc68c4e8bcde84">makeUnaryExpr</a>() const -> <a class="code hl_class" href="classCatch_1_1UnaryExpr.html">UnaryExpr</a><LhsT> {</div>
|
|
<div class="line"><a id="l05575" name="l05575"></a><span class="lineno"> 5575</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1UnaryExpr.html">UnaryExpr<LhsT></a>{ <a class="code hl_variable" href="classCatch_1_1ExprLhs.html#af290873a8427ccbdae6acb915fb7366a">m_lhs</a> };</div>
|
|
<div class="line"><a id="l05576" name="l05576"></a><span class="lineno"> 5576</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05577" name="l05577"></a><span class="lineno"> 5577</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05578" name="l05578"></a><span class="lineno"> 5578</span> </div>
|
|
<div class="foldopen" id="foldopen05579" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05579" name="l05579"></a><span class="lineno"><a class="line" href="structCatch_1_1Decomposer.html"> 5579</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Decomposer.html">Decomposer</a> {</div>
|
|
<div class="line"><a id="l05580" name="l05580"></a><span class="lineno"> 5580</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l05581" name="l05581"></a><span class="lineno"> 5581</span> std::enable_if_t<!capture_by_value<Detail::RemoveCVRef_t<T>>::value,</div>
|
|
<div class="line"><a id="l05582" name="l05582"></a><span class="lineno"> 5582</span> <span class="keywordtype">int</span>> = 0></div>
|
|
<div class="foldopen" id="foldopen05583" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05583" name="l05583"></a><span class="lineno"><a class="line" href="structCatch_1_1Decomposer.html#ad52d36c8720e417540984af81bde48b4"> 5583</a></span> <span class="keyword">constexpr</span> <span class="keyword">friend</span> <span class="keyword">auto</span> operator <= ( <a class="code hl_struct" href="structCatch_1_1Decomposer.html">Decomposer</a> &&, T && lhs ) -> <a class="code hl_class" href="classCatch_1_1ExprLhs.html">ExprLhs<T const&></a> {</div>
|
|
<div class="line"><a id="l05584" name="l05584"></a><span class="lineno"> 5584</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1ExprLhs.html">ExprLhs<const T&></a>{ lhs };</div>
|
|
<div class="line"><a id="l05585" name="l05585"></a><span class="lineno"> 5585</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05586" name="l05586"></a><span class="lineno"> 5586</span> </div>
|
|
<div class="line"><a id="l05587" name="l05587"></a><span class="lineno"> 5587</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l05588" name="l05588"></a><span class="lineno"> 5588</span> std::enable_if_t<capture_by_value<T>::value, <span class="keywordtype">int</span>> = 0></div>
|
|
<div class="foldopen" id="foldopen05589" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05589" name="l05589"></a><span class="lineno"><a class="line" href="structCatch_1_1Decomposer.html#ad12b36def6f68e1f02a349f5db768eac"> 5589</a></span> <span class="keyword">constexpr</span> <span class="keyword">friend</span> <span class="keyword">auto</span> operator <= ( <a class="code hl_struct" href="structCatch_1_1Decomposer.html">Decomposer</a> &&, T value ) -> <a class="code hl_class" href="classCatch_1_1ExprLhs.html">ExprLhs<T></a> {</div>
|
|
<div class="line"><a id="l05590" name="l05590"></a><span class="lineno"> 5590</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1ExprLhs.html">ExprLhs<T></a>{ value };</div>
|
|
<div class="line"><a id="l05591" name="l05591"></a><span class="lineno"> 5591</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05592" name="l05592"></a><span class="lineno"> 5592</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05593" name="l05593"></a><span class="lineno"> 5593</span> </div>
|
|
<div class="line"><a id="l05594" name="l05594"></a><span class="lineno"> 5594</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l05595" name="l05595"></a><span class="lineno"> 5595</span> </div>
|
|
<div class="line"><a id="l05596" name="l05596"></a><span class="lineno"> 5596</span><span class="preprocessor">#ifdef _MSC_VER</span></div>
|
|
<div class="line"><a id="l05597" name="l05597"></a><span class="lineno"> 5597</span><span class="preprocessor">#pragma warning(pop)</span></div>
|
|
<div class="line"><a id="l05598" name="l05598"></a><span class="lineno"> 5598</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05599" name="l05599"></a><span class="lineno"> 5599</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l05600" name="l05600"></a><span class="lineno"> 5600</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l05601" name="l05601"></a><span class="lineno"> 5601</span><span class="preprocessor">#elif defined __GNUC__</span></div>
|
|
<div class="line"><a id="l05602" name="l05602"></a><span class="lineno"> 5602</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l05603" name="l05603"></a><span class="lineno"> 5603</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05604" name="l05604"></a><span class="lineno"> 5604</span> </div>
|
|
<div class="line"><a id="l05605" name="l05605"></a><span class="lineno"> 5605</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_DECOMPOSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05606" name="l05606"></a><span class="lineno"> 5606</span> </div>
|
|
<div class="line"><a id="l05607" name="l05607"></a><span class="lineno"> 5607</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l05608" name="l05608"></a><span class="lineno"> 5608</span> </div>
|
|
<div class="line"><a id="l05609" name="l05609"></a><span class="lineno"> 5609</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l05610" name="l05610"></a><span class="lineno"> 5610</span> </div>
|
|
<div class="foldopen" id="foldopen05611" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05611" name="l05611"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionReaction.html"> 5611</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a> {</div>
|
|
<div class="line"><a id="l05612" name="l05612"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionReaction.html#adcf30fb90ff20d9789df78d424652497"> 5612</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1AssertionReaction.html#adcf30fb90ff20d9789df78d424652497">shouldDebugBreak</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l05613" name="l05613"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionReaction.html#a82c8d95a2c1b6a331bde66982a8e090f"> 5613</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1AssertionReaction.html#a82c8d95a2c1b6a331bde66982a8e090f">shouldThrow</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l05614" name="l05614"></a><span class="lineno"><a class="line" href="structCatch_1_1AssertionReaction.html#aad2c1008a81484ecb1619a3da29929f6"> 5614</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structCatch_1_1AssertionReaction.html#aad2c1008a81484ecb1619a3da29929f6">shouldSkip</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l05615" name="l05615"></a><span class="lineno"> 5615</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05616" name="l05616"></a><span class="lineno"> 5616</span> </div>
|
|
<div class="foldopen" id="foldopen05617" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05617" name="l05617"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html"> 5617</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1AssertionHandler.html#a74627e1e399b026e9acbaf95ea673643">AssertionHandler</a> {</div>
|
|
<div class="line"><a id="l05618" name="l05618"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#ad171e8724bb771d97949b7270f400303"> 5618</a></span> <a class="code hl_struct" href="structCatch_1_1AssertionInfo.html">AssertionInfo</a> <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#ad171e8724bb771d97949b7270f400303">m_assertionInfo</a>;</div>
|
|
<div class="line"><a id="l05619" name="l05619"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#a8203c08a43a3761b5f400ee6587fad55"> 5619</a></span> <a class="code hl_struct" href="structCatch_1_1AssertionReaction.html">AssertionReaction</a> <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#a8203c08a43a3761b5f400ee6587fad55">m_reaction</a>;</div>
|
|
<div class="line"><a id="l05620" name="l05620"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#a5a756818dff781c155e8eb970d1d4c68"> 5620</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#a5a756818dff781c155e8eb970d1d4c68">m_completed</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l05621" name="l05621"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#aea5283ee36124ce5c51dc2a697b22a39"> 5621</a></span> <a class="code hl_class" href="classCatch_1_1IResultCapture.html">IResultCapture</a>& <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#aea5283ee36124ce5c51dc2a697b22a39">m_resultCapture</a>;</div>
|
|
<div class="line"><a id="l05622" name="l05622"></a><span class="lineno"> 5622</span> </div>
|
|
<div class="line"><a id="l05623" name="l05623"></a><span class="lineno"> 5623</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05624" name="l05624"></a><span class="lineno"> 5624</span> <a class="code hl_function" href="classCatch_1_1AssertionHandler.html#a74627e1e399b026e9acbaf95ea673643">AssertionHandler</a></div>
|
|
<div class="line"><a id="l05625" name="l05625"></a><span class="lineno"> 5625</span> ( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> macroName,</div>
|
|
<div class="line"><a id="l05626" name="l05626"></a><span class="lineno"> 5626</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo,</div>
|
|
<div class="line"><a id="l05627" name="l05627"></a><span class="lineno"> 5627</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> capturedExpression,</div>
|
|
<div class="line"><a id="l05628" name="l05628"></a><span class="lineno"> 5628</span> <a class="code hl_enumeration" href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">ResultDisposition::Flags</a> resultDisposition );</div>
|
|
<div class="foldopen" id="foldopen05629" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05629" name="l05629"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#a1e839d810f6ac0fa6d127fe8350175ed"> 5629</a></span> <a class="code hl_function" href="classCatch_1_1AssertionHandler.html#a1e839d810f6ac0fa6d127fe8350175ed">~AssertionHandler</a>() {</div>
|
|
<div class="line"><a id="l05630" name="l05630"></a><span class="lineno"> 5630</span> <span class="keywordflow">if</span> ( !<a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#a5a756818dff781c155e8eb970d1d4c68">m_completed</a> ) {</div>
|
|
<div class="line"><a id="l05631" name="l05631"></a><span class="lineno"> 5631</span> <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#aea5283ee36124ce5c51dc2a697b22a39">m_resultCapture</a>.handleIncomplete( <a class="code hl_variable" href="classCatch_1_1AssertionHandler.html#ad171e8724bb771d97949b7270f400303">m_assertionInfo</a> );</div>
|
|
<div class="line"><a id="l05632" name="l05632"></a><span class="lineno"> 5632</span> }</div>
|
|
<div class="line"><a id="l05633" name="l05633"></a><span class="lineno"> 5633</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05634" name="l05634"></a><span class="lineno"> 5634</span> </div>
|
|
<div class="line"><a id="l05635" name="l05635"></a><span class="lineno"> 5635</span> </div>
|
|
<div class="line"><a id="l05636" name="l05636"></a><span class="lineno"> 5636</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen05637" data-start="{" data-end="}">
|
|
<div class="line"><a id="l05637" name="l05637"></a><span class="lineno"><a class="line" href="classCatch_1_1AssertionHandler.html#ac061e1d051135385f450973b676b2579"> 5637</a></span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1AssertionHandler.html#ac061e1d051135385f450973b676b2579">handleExpr</a>( <a class="code hl_class" href="classCatch_1_1ExprLhs.html">ExprLhs<T></a> <span class="keyword">const</span>& expr ) {</div>
|
|
<div class="line"><a id="l05638" name="l05638"></a><span class="lineno"> 5638</span> <a class="code hl_function" href="classCatch_1_1AssertionHandler.html#ac061e1d051135385f450973b676b2579">handleExpr</a>( expr.<a class="code hl_function" href="classCatch_1_1ExprLhs.html#a0bcbddc42c67a4dea5fc68c4e8bcde84">makeUnaryExpr</a>() );</div>
|
|
<div class="line"><a id="l05639" name="l05639"></a><span class="lineno"> 5639</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l05640" name="l05640"></a><span class="lineno"> 5640</span> <span class="keywordtype">void</span> handleExpr( <a class="code hl_class" href="classCatch_1_1ITransientExpression.html">ITransientExpression</a> <span class="keyword">const</span>& expr );</div>
|
|
<div class="line"><a id="l05641" name="l05641"></a><span class="lineno"> 5641</span> </div>
|
|
<div class="line"><a id="l05642" name="l05642"></a><span class="lineno"> 5642</span> <span class="keywordtype">void</span> handleMessage(<a class="code hl_enumeration" href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">ResultWas::OfType</a> resultType, std::string&& message);</div>
|
|
<div class="line"><a id="l05643" name="l05643"></a><span class="lineno"> 5643</span> </div>
|
|
<div class="line"><a id="l05644" name="l05644"></a><span class="lineno"> 5644</span> <span class="keywordtype">void</span> handleExceptionThrownAsExpected();</div>
|
|
<div class="line"><a id="l05645" name="l05645"></a><span class="lineno"> 5645</span> <span class="keywordtype">void</span> handleUnexpectedExceptionNotThrown();</div>
|
|
<div class="line"><a id="l05646" name="l05646"></a><span class="lineno"> 5646</span> <span class="keywordtype">void</span> handleExceptionNotThrownAsExpected();</div>
|
|
<div class="line"><a id="l05647" name="l05647"></a><span class="lineno"> 5647</span> <span class="keywordtype">void</span> handleThrowingCallSkipped();</div>
|
|
<div class="line"><a id="l05648" name="l05648"></a><span class="lineno"> 5648</span> <span class="keywordtype">void</span> handleUnexpectedInflightException();</div>
|
|
<div class="line"><a id="l05649" name="l05649"></a><span class="lineno"> 5649</span> </div>
|
|
<div class="line"><a id="l05650" name="l05650"></a><span class="lineno"> 5650</span> <span class="keywordtype">void</span> complete();</div>
|
|
<div class="line"><a id="l05651" name="l05651"></a><span class="lineno"> 5651</span> </div>
|
|
<div class="line"><a id="l05652" name="l05652"></a><span class="lineno"> 5652</span> <span class="comment">// query</span></div>
|
|
<div class="line"><a id="l05653" name="l05653"></a><span class="lineno"> 5653</span> <span class="keyword">auto</span> allowThrows() const -> <span class="keywordtype">bool</span>;</div>
|
|
<div class="line"><a id="l05654" name="l05654"></a><span class="lineno"> 5654</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05655" name="l05655"></a><span class="lineno"> 5655</span> </div>
|
|
<div class="line"><a id="l05656" name="l05656"></a><span class="lineno"> 5656</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a26cdeefafe46a4d606b51248eb7bbe7e">handleExceptionMatchExpr</a>( <a class="code hl_class" href="classCatch_1_1AssertionHandler.html">AssertionHandler</a>& handler, std::<span class="keywordtype">string</span> const& str );</div>
|
|
<div class="line"><a id="l05657" name="l05657"></a><span class="lineno"> 5657</span> </div>
|
|
<div class="line"><a id="l05658" name="l05658"></a><span class="lineno"> 5658</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05659" name="l05659"></a><span class="lineno"> 5659</span> </div>
|
|
<div class="line"><a id="l05660" name="l05660"></a><span class="lineno"> 5660</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ASSERTION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05661" name="l05661"></a><span class="lineno"> 5661</span> </div>
|
|
<div class="line"><a id="l05662" name="l05662"></a><span class="lineno"> 5662</span> </div>
|
|
<div class="line"><a id="l05663" name="l05663"></a><span class="lineno"> 5663</span><span class="preprocessor">#ifndef CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05664" name="l05664"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a75509b6f33b2a1ddb0cd70bff2048957"> 5664</a></span><span class="preprocessor">#define CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05665" name="l05665"></a><span class="lineno"> 5665</span> </div>
|
|
<div class="line"><a id="l05666" name="l05666"></a><span class="lineno"> 5666</span> </div>
|
|
<div class="line"><a id="l05667" name="l05667"></a><span class="lineno"> 5667</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE_STRINGIFICATION)</span></div>
|
|
<div class="line"><a id="l05668" name="l05668"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab6dc42a98c8854e2e1d91874b1fe406c"> 5668</a></span><span class="preprocessor"> #define CATCH_INTERNAL_STRINGIFY(...) #__VA_ARGS__##_catch_sr</span></div>
|
|
<div class="line"><a id="l05669" name="l05669"></a><span class="lineno"> 5669</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l05670" name="l05670"></a><span class="lineno"> 5670</span><span class="preprocessor"> #define CATCH_INTERNAL_STRINGIFY(...) "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"_catch_sr</span></div>
|
|
<div class="line"><a id="l05671" name="l05671"></a><span class="lineno"> 5671</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05672" name="l05672"></a><span class="lineno"> 5672</span> </div>
|
|
<div class="line"><a id="l05673" name="l05673"></a><span class="lineno"> 5673</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05674" name="l05674"></a><span class="lineno"> 5674</span> </div>
|
|
<div class="line"><a id="l05675" name="l05675"></a><span class="lineno"> 5675</span><span class="comment">// We need this suppression to leak, because it took until GCC 10</span></div>
|
|
<div class="line"><a id="l05676" name="l05676"></a><span class="lineno"> 5676</span><span class="comment">// for the front end to handle local suppression via _Pragma properly</span></div>
|
|
<div class="line"><a id="l05677" name="l05677"></a><span class="lineno"> 5677</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && __GNUC__ <= 9</span></div>
|
|
<div class="line"><a id="l05678" name="l05678"></a><span class="lineno"> 5678</span><span class="preprocessor"> #pragma GCC diagnostic ignored "-Wparentheses"</span></div>
|
|
<div class="line"><a id="l05679" name="l05679"></a><span class="lineno"> 5679</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05680" name="l05680"></a><span class="lineno"> 5680</span> </div>
|
|
<div class="line"><a id="l05681" name="l05681"></a><span class="lineno"> 5681</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l05682" name="l05682"></a><span class="lineno"> 5682</span> </div>
|
|
<div class="line"><a id="l05683" name="l05683"></a><span class="lineno"> 5683</span><span class="preprocessor">#if defined(CATCH_CONFIG_FAST_COMPILE) || defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l05684" name="l05684"></a><span class="lineno"> 5684</span></div>
|
|
<div class="line"><a id="l05686" name="l05686"></a><span class="lineno"> 5686</span><span class="comment">// Another way to speed-up compilation is to omit local try-catch for REQUIRE*</span></div>
|
|
<div class="line"><a id="l05687" name="l05687"></a><span class="lineno"> 5687</span><span class="comment">// macros.</span></div>
|
|
<div class="line"><a id="l05688" name="l05688"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af21395add3cdee3109e0a2e7c15a54bc"> 5688</a></span><span class="preprocessor">#define INTERNAL_CATCH_TRY</span></div>
|
|
<div class="line"><a id="l05689" name="l05689"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3ef8d1213eac4fd0e2fdb4e13bdb8070"> 5689</a></span><span class="preprocessor">#define INTERNAL_CATCH_CATCH( capturer )</span></div>
|
|
<div class="line"><a id="l05690" name="l05690"></a><span class="lineno"> 5690</span> </div>
|
|
<div class="line"><a id="l05691" name="l05691"></a><span class="lineno"> 5691</span><span class="preprocessor">#else </span><span class="comment">// CATCH_CONFIG_FAST_COMPILE</span></div>
|
|
<div class="line"><a id="l05692" name="l05692"></a><span class="lineno"> 5692</span> </div>
|
|
<div class="line"><a id="l05693" name="l05693"></a><span class="lineno"> 5693</span><span class="preprocessor">#define INTERNAL_CATCH_TRY try</span></div>
|
|
<div class="line"><a id="l05694" name="l05694"></a><span class="lineno"> 5694</span><span class="preprocessor">#define INTERNAL_CATCH_CATCH( handler ) catch(...) { (handler).handleUnexpectedInflightException(); }</span></div>
|
|
<div class="line"><a id="l05695" name="l05695"></a><span class="lineno"> 5695</span> </div>
|
|
<div class="line"><a id="l05696" name="l05696"></a><span class="lineno"> 5696</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05697" name="l05697"></a><span class="lineno"> 5697</span></div>
|
|
<div class="foldopen" id="foldopen05699" data-start="" data-end="">
|
|
<div class="line"><a id="l05699" name="l05699"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac3284f56c2f755d2b79fdb663cf9fb72"> 5699</a></span><span class="preprocessor">#define INTERNAL_CATCH_TEST( macroName, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l05700" name="l05700"></a><span class="lineno"> 5700</span><span class="preprocessor"> do { </span><span class="comment">/* NOLINT(bugprone-infinite-loop) */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l05701" name="l05701"></a><span class="lineno"> 5701</span><span class="preprocessor"> </span><span class="comment">/* The expression should not be evaluated, but warnings should hopefully be checked */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l05702" name="l05702"></a><span class="lineno"> 5702</span><span class="preprocessor"> CATCH_INTERNAL_IGNORE_BUT_WARN(__VA_ARGS__); \</span></div>
|
|
<div class="line"><a id="l05703" name="l05703"></a><span class="lineno"> 5703</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l05704" name="l05704"></a><span class="lineno"> 5704</span><span class="preprocessor"> INTERNAL_CATCH_TRY { \</span></div>
|
|
<div class="line"><a id="l05705" name="l05705"></a><span class="lineno"> 5705</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05706" name="l05706"></a><span class="lineno"> 5706</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05707" name="l05707"></a><span class="lineno"> 5707</span><span class="preprocessor"> catchAssertionHandler.handleExpr( Catch::Decomposer() <= __VA_ARGS__ ); </span><span class="comment">/* NOLINT(bugprone-chained-comparison) */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l05708" name="l05708"></a><span class="lineno"> 5708</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05709" name="l05709"></a><span class="lineno"> 5709</span><span class="preprocessor"> } INTERNAL_CATCH_CATCH( catchAssertionHandler ) \</span></div>
|
|
<div class="line"><a id="l05710" name="l05710"></a><span class="lineno"> 5710</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l05711" name="l05711"></a><span class="lineno"> 5711</span><span class="preprocessor"> } while( (void)0, (false) && static_cast<const bool&>( !!(__VA_ARGS__) ) ) </span><span class="comment">// the expression here is never evaluated at runtime but it forces the compiler to give it a look</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05712" name="l05712"></a><span class="lineno"> 5712</span> <span class="comment">// The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.</span></div>
|
|
<div class="line"><a id="l05713" name="l05713"></a><span class="lineno"> 5713</span></div>
|
|
<div class="foldopen" id="foldopen05715" data-start="" data-end="">
|
|
<div class="line"><a id="l05715" name="l05715"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abfd240b1bdcc699638464fb3c7131c1d"> 5715</a></span><span class="preprocessor">#define INTERNAL_CATCH_IF( macroName, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l05716" name="l05716"></a><span class="lineno"> 5716</span><span class="preprocessor"> INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \</span></div>
|
|
<div class="line"><a id="l05717" name="l05717"></a><span class="lineno"> 5717</span><span class="preprocessor"> if( Catch::getResultCapture().lastAssertionPassed() )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05718" name="l05718"></a><span class="lineno"> 5718</span></div>
|
|
<div class="foldopen" id="foldopen05720" data-start="" data-end="">
|
|
<div class="line"><a id="l05720" name="l05720"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aaf2139c8903264bfe442e4b23b6673a9"> 5720</a></span><span class="preprocessor">#define INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l05721" name="l05721"></a><span class="lineno"> 5721</span><span class="preprocessor"> INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \</span></div>
|
|
<div class="line"><a id="l05722" name="l05722"></a><span class="lineno"> 5722</span><span class="preprocessor"> if( !Catch::getResultCapture().lastAssertionPassed() )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05723" name="l05723"></a><span class="lineno"> 5723</span></div>
|
|
<div class="foldopen" id="foldopen05725" data-start="" data-end="">
|
|
<div class="line"><a id="l05725" name="l05725"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac340cc35716115abaec4dfbcb061da52"> 5725</a></span><span class="preprocessor">#define INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l05726" name="l05726"></a><span class="lineno"> 5726</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l05727" name="l05727"></a><span class="lineno"> 5727</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l05728" name="l05728"></a><span class="lineno"> 5728</span><span class="preprocessor"> try { \</span></div>
|
|
<div class="line"><a id="l05729" name="l05729"></a><span class="lineno"> 5729</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05730" name="l05730"></a><span class="lineno"> 5730</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05731" name="l05731"></a><span class="lineno"> 5731</span><span class="preprocessor"> static_cast<void>(__VA_ARGS__); \</span></div>
|
|
<div class="line"><a id="l05732" name="l05732"></a><span class="lineno"> 5732</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05733" name="l05733"></a><span class="lineno"> 5733</span><span class="preprocessor"> catchAssertionHandler.handleExceptionNotThrownAsExpected(); \</span></div>
|
|
<div class="line"><a id="l05734" name="l05734"></a><span class="lineno"> 5734</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05735" name="l05735"></a><span class="lineno"> 5735</span><span class="preprocessor"> catch( ... ) { \</span></div>
|
|
<div class="line"><a id="l05736" name="l05736"></a><span class="lineno"> 5736</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedInflightException(); \</span></div>
|
|
<div class="line"><a id="l05737" name="l05737"></a><span class="lineno"> 5737</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05738" name="l05738"></a><span class="lineno"> 5738</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l05739" name="l05739"></a><span class="lineno"> 5739</span><span class="preprocessor"> } while( false )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05740" name="l05740"></a><span class="lineno"> 5740</span></div>
|
|
<div class="foldopen" id="foldopen05742" data-start="" data-end="">
|
|
<div class="line"><a id="l05742" name="l05742"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2f3028d4fd4510f2f47ddd20626cccae"> 5742</a></span><span class="preprocessor">#define INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... ) \</span></div>
|
|
<div class="line"><a id="l05743" name="l05743"></a><span class="lineno"> 5743</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l05744" name="l05744"></a><span class="lineno"> 5744</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition); \</span></div>
|
|
<div class="line"><a id="l05745" name="l05745"></a><span class="lineno"> 5745</span><span class="preprocessor"> if( catchAssertionHandler.allowThrows() ) \</span></div>
|
|
<div class="line"><a id="l05746" name="l05746"></a><span class="lineno"> 5746</span><span class="preprocessor"> try { \</span></div>
|
|
<div class="line"><a id="l05747" name="l05747"></a><span class="lineno"> 5747</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05748" name="l05748"></a><span class="lineno"> 5748</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT \</span></div>
|
|
<div class="line"><a id="l05749" name="l05749"></a><span class="lineno"> 5749</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05750" name="l05750"></a><span class="lineno"> 5750</span><span class="preprocessor"> static_cast<void>(__VA_ARGS__); \</span></div>
|
|
<div class="line"><a id="l05751" name="l05751"></a><span class="lineno"> 5751</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05752" name="l05752"></a><span class="lineno"> 5752</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \</span></div>
|
|
<div class="line"><a id="l05753" name="l05753"></a><span class="lineno"> 5753</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05754" name="l05754"></a><span class="lineno"> 5754</span><span class="preprocessor"> catch( ... ) { \</span></div>
|
|
<div class="line"><a id="l05755" name="l05755"></a><span class="lineno"> 5755</span><span class="preprocessor"> catchAssertionHandler.handleExceptionThrownAsExpected(); \</span></div>
|
|
<div class="line"><a id="l05756" name="l05756"></a><span class="lineno"> 5756</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05757" name="l05757"></a><span class="lineno"> 5757</span><span class="preprocessor"> else \</span></div>
|
|
<div class="line"><a id="l05758" name="l05758"></a><span class="lineno"> 5758</span><span class="preprocessor"> catchAssertionHandler.handleThrowingCallSkipped(); \</span></div>
|
|
<div class="line"><a id="l05759" name="l05759"></a><span class="lineno"> 5759</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l05760" name="l05760"></a><span class="lineno"> 5760</span><span class="preprocessor"> } while( false )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05761" name="l05761"></a><span class="lineno"> 5761</span></div>
|
|
<div class="foldopen" id="foldopen05763" data-start="" data-end="">
|
|
<div class="line"><a id="l05763" name="l05763"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5e87b48ab40b7b128ae8428c14c25a91"> 5763</a></span><span class="preprocessor">#define INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition, expr ) \</span></div>
|
|
<div class="line"><a id="l05764" name="l05764"></a><span class="lineno"> 5764</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l05765" name="l05765"></a><span class="lineno"> 5765</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr) ", " CATCH_INTERNAL_STRINGIFY(exceptionType), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l05766" name="l05766"></a><span class="lineno"> 5766</span><span class="preprocessor"> if( catchAssertionHandler.allowThrows() ) \</span></div>
|
|
<div class="line"><a id="l05767" name="l05767"></a><span class="lineno"> 5767</span><span class="preprocessor"> try { \</span></div>
|
|
<div class="line"><a id="l05768" name="l05768"></a><span class="lineno"> 5768</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05769" name="l05769"></a><span class="lineno"> 5769</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT \</span></div>
|
|
<div class="line"><a id="l05770" name="l05770"></a><span class="lineno"> 5770</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05771" name="l05771"></a><span class="lineno"> 5771</span><span class="preprocessor"> static_cast<void>(expr); \</span></div>
|
|
<div class="line"><a id="l05772" name="l05772"></a><span class="lineno"> 5772</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05773" name="l05773"></a><span class="lineno"> 5773</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \</span></div>
|
|
<div class="line"><a id="l05774" name="l05774"></a><span class="lineno"> 5774</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05775" name="l05775"></a><span class="lineno"> 5775</span><span class="preprocessor"> catch( exceptionType const& ) { \</span></div>
|
|
<div class="line"><a id="l05776" name="l05776"></a><span class="lineno"> 5776</span><span class="preprocessor"> catchAssertionHandler.handleExceptionThrownAsExpected(); \</span></div>
|
|
<div class="line"><a id="l05777" name="l05777"></a><span class="lineno"> 5777</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05778" name="l05778"></a><span class="lineno"> 5778</span><span class="preprocessor"> catch( ... ) { \</span></div>
|
|
<div class="line"><a id="l05779" name="l05779"></a><span class="lineno"> 5779</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedInflightException(); \</span></div>
|
|
<div class="line"><a id="l05780" name="l05780"></a><span class="lineno"> 5780</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05781" name="l05781"></a><span class="lineno"> 5781</span><span class="preprocessor"> else \</span></div>
|
|
<div class="line"><a id="l05782" name="l05782"></a><span class="lineno"> 5782</span><span class="preprocessor"> catchAssertionHandler.handleThrowingCallSkipped(); \</span></div>
|
|
<div class="line"><a id="l05783" name="l05783"></a><span class="lineno"> 5783</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l05784" name="l05784"></a><span class="lineno"> 5784</span><span class="preprocessor"> } while( false )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05785" name="l05785"></a><span class="lineno"> 5785</span> </div>
|
|
<div class="line"><a id="l05786" name="l05786"></a><span class="lineno"> 5786</span> </div>
|
|
<div class="line"><a id="l05787" name="l05787"></a><span class="lineno"> 5787</span></div>
|
|
<div class="line"><a id="l05789" name="l05789"></a><span class="lineno"> 5789</span><span class="comment">// Although this is matcher-based, it can be used with just a string</span></div>
|
|
<div class="foldopen" id="foldopen05790" data-start="" data-end="">
|
|
<div class="line"><a id="l05790" name="l05790"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4296ab989dbc1f6c52c24d60012144d6"> 5790</a></span><span class="preprocessor">#define INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher, ... ) \</span></div>
|
|
<div class="line"><a id="l05791" name="l05791"></a><span class="lineno"> 5791</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l05792" name="l05792"></a><span class="lineno"> 5792</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l05793" name="l05793"></a><span class="lineno"> 5793</span><span class="preprocessor"> if( catchAssertionHandler.allowThrows() ) \</span></div>
|
|
<div class="line"><a id="l05794" name="l05794"></a><span class="lineno"> 5794</span><span class="preprocessor"> try { \</span></div>
|
|
<div class="line"><a id="l05795" name="l05795"></a><span class="lineno"> 5795</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05796" name="l05796"></a><span class="lineno"> 5796</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_RESULT \</span></div>
|
|
<div class="line"><a id="l05797" name="l05797"></a><span class="lineno"> 5797</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05798" name="l05798"></a><span class="lineno"> 5798</span><span class="preprocessor"> static_cast<void>(__VA_ARGS__); \</span></div>
|
|
<div class="line"><a id="l05799" name="l05799"></a><span class="lineno"> 5799</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05800" name="l05800"></a><span class="lineno"> 5800</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \</span></div>
|
|
<div class="line"><a id="l05801" name="l05801"></a><span class="lineno"> 5801</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05802" name="l05802"></a><span class="lineno"> 5802</span><span class="preprocessor"> catch( ... ) { \</span></div>
|
|
<div class="line"><a id="l05803" name="l05803"></a><span class="lineno"> 5803</span><span class="preprocessor"> Catch::handleExceptionMatchExpr( catchAssertionHandler, matcher ); \</span></div>
|
|
<div class="line"><a id="l05804" name="l05804"></a><span class="lineno"> 5804</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l05805" name="l05805"></a><span class="lineno"> 5805</span><span class="preprocessor"> else \</span></div>
|
|
<div class="line"><a id="l05806" name="l05806"></a><span class="lineno"> 5806</span><span class="preprocessor"> catchAssertionHandler.handleThrowingCallSkipped(); \</span></div>
|
|
<div class="line"><a id="l05807" name="l05807"></a><span class="lineno"> 5807</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l05808" name="l05808"></a><span class="lineno"> 5808</span><span class="preprocessor"> } while( false )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05809" name="l05809"></a><span class="lineno"> 5809</span> </div>
|
|
<div class="line"><a id="l05810" name="l05810"></a><span class="lineno"> 5810</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_DISABLE</span></div>
|
|
<div class="line"><a id="l05811" name="l05811"></a><span class="lineno"> 5811</span> </div>
|
|
<div class="line"><a id="l05812" name="l05812"></a><span class="lineno"> 5812</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_MACRO_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05813" name="l05813"></a><span class="lineno"> 5813</span> </div>
|
|
<div class="line"><a id="l05814" name="l05814"></a><span class="lineno"> 5814</span> </div>
|
|
<div class="line"><a id="l05815" name="l05815"></a><span class="lineno"> 5815</span><span class="preprocessor">#ifndef CATCH_SECTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05816" name="l05816"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3b8498aac44674e66820ecf997ea460b"> 5816</a></span><span class="preprocessor">#define CATCH_SECTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05817" name="l05817"></a><span class="lineno"> 5817</span> </div>
|
|
<div class="line"><a id="l05818" name="l05818"></a><span class="lineno"> 5818</span> </div>
|
|
<div class="line"><a id="l05819" name="l05819"></a><span class="lineno"> 5819</span> </div>
|
|
<div class="line"><a id="l05820" name="l05820"></a><span class="lineno"> 5820</span></div>
|
|
<div class="line"><a id="l05829" name="l05829"></a><span class="lineno"> 5829</span> </div>
|
|
<div class="line"><a id="l05830" name="l05830"></a><span class="lineno"> 5830</span><span class="preprocessor">#ifndef CATCH_CONFIG_STATIC_ANALYSIS_SUPPORT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05831" name="l05831"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9656b6a249b2e9c6b01caba371ff2b96"> 5831</a></span><span class="preprocessor">#define CATCH_CONFIG_STATIC_ANALYSIS_SUPPORT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05832" name="l05832"></a><span class="lineno"> 5832</span> </div>
|
|
<div class="line"><a id="l05833" name="l05833"></a><span class="lineno"> 5833</span> </div>
|
|
<div class="line"><a id="l05834" name="l05834"></a><span class="lineno"> 5834</span><span class="preprocessor">#if defined(__clang_analyzer__) || defined(__COVERITY__)</span></div>
|
|
<div class="line"><a id="l05835" name="l05835"></a><span class="lineno"> 5835</span><span class="preprocessor"> #define CATCH_INTERNAL_CONFIG_STATIC_ANALYSIS_SUPPORT</span></div>
|
|
<div class="line"><a id="l05836" name="l05836"></a><span class="lineno"> 5836</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05837" name="l05837"></a><span class="lineno"> 5837</span> </div>
|
|
<div class="line"><a id="l05838" name="l05838"></a><span class="lineno"> 5838</span><span class="preprocessor">#if defined( CATCH_INTERNAL_CONFIG_STATIC_ANALYSIS_SUPPORT ) && \</span></div>
|
|
<div class="line"><a id="l05839" name="l05839"></a><span class="lineno"> 5839</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT ) && \</span></div>
|
|
<div class="line"><a id="l05840" name="l05840"></a><span class="lineno"> 5840</span><span class="preprocessor"> !defined( CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT )</span></div>
|
|
<div class="line"><a id="l05841" name="l05841"></a><span class="lineno"> 5841</span><span class="preprocessor"># define CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT</span></div>
|
|
<div class="line"><a id="l05842" name="l05842"></a><span class="lineno"> 5842</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05843" name="l05843"></a><span class="lineno"> 5843</span> </div>
|
|
<div class="line"><a id="l05844" name="l05844"></a><span class="lineno"> 5844</span> </div>
|
|
<div class="line"><a id="l05845" name="l05845"></a><span class="lineno"> 5845</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_STATIC_ANALYSIS_SUPPORT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05846" name="l05846"></a><span class="lineno"> 5846</span> </div>
|
|
<div class="line"><a id="l05847" name="l05847"></a><span class="lineno"> 5847</span> </div>
|
|
<div class="line"><a id="l05848" name="l05848"></a><span class="lineno"> 5848</span><span class="preprocessor">#ifndef CATCH_TIMER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05849" name="l05849"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac85c20b05e4ce09ff55a9f8fef88eb58"> 5849</a></span><span class="preprocessor">#define CATCH_TIMER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05850" name="l05850"></a><span class="lineno"> 5850</span> </div>
|
|
<div class="line"><a id="l05851" name="l05851"></a><span class="lineno"> 5851</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l05852" name="l05852"></a><span class="lineno"> 5852</span> </div>
|
|
<div class="line"><a id="l05853" name="l05853"></a><span class="lineno"> 5853</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05854" name="l05854"></a><span class="lineno"> 5854</span> </div>
|
|
<div class="foldopen" id="foldopen05855" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05855" name="l05855"></a><span class="lineno"><a class="line" href="classCatch_1_1Timer.html"> 5855</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Timer.html">Timer</a> {</div>
|
|
<div class="line"><a id="l05856" name="l05856"></a><span class="lineno"><a class="line" href="classCatch_1_1Timer.html#ac13c1ef867cc3b9f942032d5ed79c2a7"> 5856</a></span> uint64_t <a class="code hl_variable" href="classCatch_1_1Timer.html#ac13c1ef867cc3b9f942032d5ed79c2a7">m_nanoseconds</a> = 0;</div>
|
|
<div class="line"><a id="l05857" name="l05857"></a><span class="lineno"> 5857</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05858" name="l05858"></a><span class="lineno"> 5858</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Timer.html#a0a56e879e43f36c102bf9ea8b5fc8b72">start</a>();</div>
|
|
<div class="line"><a id="l05859" name="l05859"></a><span class="lineno"> 5859</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1Timer.html#a57be5d17ca868a2d6fb1eea84de665cf">getElapsedNanoseconds</a>() const -> uint64_t;</div>
|
|
<div class="line"><a id="l05860" name="l05860"></a><span class="lineno"> 5860</span> auto <a class="code hl_function" href="classCatch_1_1Timer.html#a545de17a61a6fee1dbe3de5b0723e5fa">getElapsedMicroseconds</a>() const -> uint64_t;</div>
|
|
<div class="line"><a id="l05861" name="l05861"></a><span class="lineno"> 5861</span> auto <a class="code hl_function" href="classCatch_1_1Timer.html#a30aaf458dbb59dd8ac8971c9c62e0eac">getElapsedMilliseconds</a>() const -> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>;</div>
|
|
<div class="line"><a id="l05862" name="l05862"></a><span class="lineno"> 5862</span> auto <a class="code hl_function" href="classCatch_1_1Timer.html#a065e37e3c9eb16bd4dcf41971d8deedc">getElapsedSeconds</a>() const -> <span class="keywordtype">double</span>;</div>
|
|
<div class="line"><a id="l05863" name="l05863"></a><span class="lineno"> 5863</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05864" name="l05864"></a><span class="lineno"> 5864</span> </div>
|
|
<div class="line"><a id="l05865" name="l05865"></a><span class="lineno"> 5865</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05866" name="l05866"></a><span class="lineno"> 5866</span> </div>
|
|
<div class="line"><a id="l05867" name="l05867"></a><span class="lineno"> 5867</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TIMER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05868" name="l05868"></a><span class="lineno"> 5868</span> </div>
|
|
<div class="line"><a id="l05869" name="l05869"></a><span class="lineno"> 5869</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05870" name="l05870"></a><span class="lineno"> 5870</span> </div>
|
|
<div class="foldopen" id="foldopen05871" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05871" name="l05871"></a><span class="lineno"><a class="line" href="classCatch_1_1Section.html"> 5871</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Section.html#a8a721885bdf057651c2745e67dad5946">Section</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l05872" name="l05872"></a><span class="lineno"> 5872</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05873" name="l05873"></a><span class="lineno"> 5873</span> <a class="code hl_function" href="classCatch_1_1Section.html#a8a721885bdf057651c2745e67dad5946">Section</a>( <a class="code hl_struct" href="structCatch_1_1SectionInfo.html">SectionInfo</a>&& info );</div>
|
|
<div class="line"><a id="l05874" name="l05874"></a><span class="lineno"> 5874</span> <a class="code hl_function" href="classCatch_1_1Section.html#a8a721885bdf057651c2745e67dad5946">Section</a>( <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& _lineInfo,</div>
|
|
<div class="line"><a id="l05875" name="l05875"></a><span class="lineno"> 5875</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> _name,</div>
|
|
<div class="line"><a id="l05876" name="l05876"></a><span class="lineno"> 5876</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> = <span class="keyword">nullptr</span> );</div>
|
|
<div class="line"><a id="l05877" name="l05877"></a><span class="lineno"> 5877</span> <a class="code hl_function" href="classCatch_1_1Section.html#a8a721885bdf057651c2745e67dad5946">~Section</a>();</div>
|
|
<div class="line"><a id="l05878" name="l05878"></a><span class="lineno"> 5878</span> </div>
|
|
<div class="line"><a id="l05879" name="l05879"></a><span class="lineno"> 5879</span> <span class="comment">// This indicates whether the section should be executed or not</span></div>
|
|
<div class="line"><a id="l05880" name="l05880"></a><span class="lineno"> 5880</span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l05881" name="l05881"></a><span class="lineno"> 5881</span> </div>
|
|
<div class="line"><a id="l05882" name="l05882"></a><span class="lineno"> 5882</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l05883" name="l05883"></a><span class="lineno"><a class="line" href="classCatch_1_1Section.html#a22f54832b33b341ae5a78807a6219af6"> 5883</a></span> <a class="code hl_struct" href="structCatch_1_1SectionInfo.html">SectionInfo</a> <a class="code hl_variable" href="classCatch_1_1Section.html#a22f54832b33b341ae5a78807a6219af6">m_info</a>;</div>
|
|
<div class="line"><a id="l05884" name="l05884"></a><span class="lineno"> 5884</span> </div>
|
|
<div class="line"><a id="l05885" name="l05885"></a><span class="lineno"><a class="line" href="classCatch_1_1Section.html#ae0a2acc394d4bd1bc7a51a1445d25034"> 5885</a></span> <a class="code hl_struct" href="structCatch_1_1Counts.html">Counts</a> <a class="code hl_variable" href="classCatch_1_1Section.html#ae0a2acc394d4bd1bc7a51a1445d25034">m_assertions</a>;</div>
|
|
<div class="line"><a id="l05886" name="l05886"></a><span class="lineno"><a class="line" href="classCatch_1_1Section.html#a038bb0d5d2718df6e3ae1ece4b3d695d"> 5886</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1Section.html#a038bb0d5d2718df6e3ae1ece4b3d695d">m_sectionIncluded</a>;</div>
|
|
<div class="line"><a id="l05887" name="l05887"></a><span class="lineno"><a class="line" href="classCatch_1_1Section.html#a1548993afa64305a1b093391c6884b7e"> 5887</a></span> <a class="code hl_class" href="classCatch_1_1Timer.html">Timer</a> <a class="code hl_variable" href="classCatch_1_1Section.html#a1548993afa64305a1b093391c6884b7e">m_timer</a>;</div>
|
|
<div class="line"><a id="l05888" name="l05888"></a><span class="lineno"> 5888</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05889" name="l05889"></a><span class="lineno"> 5889</span> </div>
|
|
<div class="line"><a id="l05890" name="l05890"></a><span class="lineno"> 5890</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l05891" name="l05891"></a><span class="lineno"> 5891</span> </div>
|
|
<div class="line"><a id="l05892" name="l05892"></a><span class="lineno"> 5892</span><span class="preprocessor">#if !defined(CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT)</span></div>
|
|
<div class="foldopen" id="foldopen05893" data-start="" data-end="">
|
|
<div class="line"><a id="l05893" name="l05893"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2969ec50cc661169e94b1b80ac799c07"> 5893</a></span><span class="preprocessor"># define INTERNAL_CATCH_SECTION( ... ) \</span></div>
|
|
<div class="line"><a id="l05894" name="l05894"></a><span class="lineno"> 5894</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05895" name="l05895"></a><span class="lineno"> 5895</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05896" name="l05896"></a><span class="lineno"> 5896</span><span class="preprocessor"> if ( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( \</span></div>
|
|
<div class="line"><a id="l05897" name="l05897"></a><span class="lineno"> 5897</span><span class="preprocessor"> catch_internal_Section ) = \</span></div>
|
|
<div class="line"><a id="l05898" name="l05898"></a><span class="lineno"> 5898</span><span class="preprocessor"> Catch::Section( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) \</span></div>
|
|
<div class="line"><a id="l05899" name="l05899"></a><span class="lineno"> 5899</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05900" name="l05900"></a><span class="lineno"> 5900</span> </div>
|
|
<div class="foldopen" id="foldopen05901" data-start="" data-end="">
|
|
<div class="line"><a id="l05901" name="l05901"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abe92a5063c83dec8143bf685e4b4a198"> 5901</a></span><span class="preprocessor"># define INTERNAL_CATCH_DYNAMIC_SECTION( ... ) \</span></div>
|
|
<div class="line"><a id="l05902" name="l05902"></a><span class="lineno"> 5902</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05903" name="l05903"></a><span class="lineno"> 5903</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05904" name="l05904"></a><span class="lineno"> 5904</span><span class="preprocessor"> if ( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( \</span></div>
|
|
<div class="line"><a id="l05905" name="l05905"></a><span class="lineno"> 5905</span><span class="preprocessor"> catch_internal_Section ) = \</span></div>
|
|
<div class="line"><a id="l05906" name="l05906"></a><span class="lineno"> 5906</span><span class="preprocessor"> Catch::SectionInfo( \</span></div>
|
|
<div class="line"><a id="l05907" name="l05907"></a><span class="lineno"> 5907</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l05908" name="l05908"></a><span class="lineno"> 5908</span><span class="preprocessor"> ( Catch::ReusableStringStream() << __VA_ARGS__ ) \</span></div>
|
|
<div class="line"><a id="l05909" name="l05909"></a><span class="lineno"> 5909</span><span class="preprocessor"> .str() ) ) \</span></div>
|
|
<div class="line"><a id="l05910" name="l05910"></a><span class="lineno"> 5910</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05911" name="l05911"></a><span class="lineno"> 5911</span> </div>
|
|
<div class="line"><a id="l05912" name="l05912"></a><span class="lineno"> 5912</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l05913" name="l05913"></a><span class="lineno"> 5913</span> </div>
|
|
<div class="line"><a id="l05914" name="l05914"></a><span class="lineno"> 5914</span><span class="comment">// These section definitions imply that at most one section at one level</span></div>
|
|
<div class="line"><a id="l05915" name="l05915"></a><span class="lineno"> 5915</span><span class="comment">// will be intered (because only one section's __LINE__ can be equal to</span></div>
|
|
<div class="line"><a id="l05916" name="l05916"></a><span class="lineno"> 5916</span><span class="comment">// the dummy `catchInternalSectionHint` variable from `TEST_CASE`).</span></div>
|
|
<div class="line"><a id="l05917" name="l05917"></a><span class="lineno"> 5917</span> </div>
|
|
<div class="line"><a id="l05918" name="l05918"></a><span class="lineno"> 5918</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05919" name="l05919"></a><span class="lineno"> 5919</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l05920" name="l05920"></a><span class="lineno"> 5920</span> <span class="comment">// Intentionally without linkage, as it should only be used as a dummy</span></div>
|
|
<div class="line"><a id="l05921" name="l05921"></a><span class="lineno"> 5921</span> <span class="comment">// symbol for static analysis.</span></div>
|
|
<div class="line"><a id="l05922" name="l05922"></a><span class="lineno"> 5922</span> <span class="comment">// The arguments are used as a dummy for checking warnings in the passed</span></div>
|
|
<div class="line"><a id="l05923" name="l05923"></a><span class="lineno"> 5923</span> <span class="comment">// expressions.</span></div>
|
|
<div class="line"><a id="l05924" name="l05924"></a><span class="lineno"> 5924</span> <span class="keywordtype">int</span> GetNewSectionHint( StringRef, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> = <span class="keyword">nullptr</span> );</div>
|
|
<div class="line"><a id="l05925" name="l05925"></a><span class="lineno"> 5925</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l05926" name="l05926"></a><span class="lineno"> 5926</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05927" name="l05927"></a><span class="lineno"> 5927</span> </div>
|
|
<div class="line"><a id="l05928" name="l05928"></a><span class="lineno"> 5928</span> </div>
|
|
<div class="line"><a id="l05929" name="l05929"></a><span class="lineno"> 5929</span><span class="preprocessor"># define INTERNAL_CATCH_SECTION( ... ) \</span></div>
|
|
<div class="line"><a id="l05930" name="l05930"></a><span class="lineno"> 5930</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05931" name="l05931"></a><span class="lineno"> 5931</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05932" name="l05932"></a><span class="lineno"> 5932</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05933" name="l05933"></a><span class="lineno"> 5933</span><span class="preprocessor"> if ( [[maybe_unused]] const int catchInternalPreviousSectionHint = \</span></div>
|
|
<div class="line"><a id="l05934" name="l05934"></a><span class="lineno"> 5934</span><span class="preprocessor"> catchInternalSectionHint, \</span></div>
|
|
<div class="line"><a id="l05935" name="l05935"></a><span class="lineno"> 5935</span><span class="preprocessor"> catchInternalSectionHint = \</span></div>
|
|
<div class="line"><a id="l05936" name="l05936"></a><span class="lineno"> 5936</span><span class="preprocessor"> Catch::Detail::GetNewSectionHint(__VA_ARGS__); \</span></div>
|
|
<div class="line"><a id="l05937" name="l05937"></a><span class="lineno"> 5937</span><span class="preprocessor"> catchInternalPreviousSectionHint == __LINE__ ) \</span></div>
|
|
<div class="line"><a id="l05938" name="l05938"></a><span class="lineno"> 5938</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l05939" name="l05939"></a><span class="lineno"> 5939</span> </div>
|
|
<div class="line"><a id="l05940" name="l05940"></a><span class="lineno"> 5940</span><span class="preprocessor"># define INTERNAL_CATCH_DYNAMIC_SECTION( ... ) \</span></div>
|
|
<div class="line"><a id="l05941" name="l05941"></a><span class="lineno"> 5941</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l05942" name="l05942"></a><span class="lineno"> 5942</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05943" name="l05943"></a><span class="lineno"> 5943</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS \</span></div>
|
|
<div class="line"><a id="l05944" name="l05944"></a><span class="lineno"> 5944</span><span class="preprocessor"> if ( [[maybe_unused]] const int catchInternalPreviousSectionHint = \</span></div>
|
|
<div class="line"><a id="l05945" name="l05945"></a><span class="lineno"> 5945</span><span class="preprocessor"> catchInternalSectionHint, \</span></div>
|
|
<div class="line"><a id="l05946" name="l05946"></a><span class="lineno"> 5946</span><span class="preprocessor"> catchInternalSectionHint = Catch::Detail::GetNewSectionHint( \</span></div>
|
|
<div class="line"><a id="l05947" name="l05947"></a><span class="lineno"> 5947</span><span class="preprocessor"> ( Catch::ReusableStringStream() << __VA_ARGS__ ).str()); \</span></div>
|
|
<div class="line"><a id="l05948" name="l05948"></a><span class="lineno"> 5948</span><span class="preprocessor"> catchInternalPreviousSectionHint == __LINE__ ) \</span></div>
|
|
<div class="line"><a id="l05949" name="l05949"></a><span class="lineno"> 5949</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l05950" name="l05950"></a><span class="lineno"> 5950</span> </div>
|
|
<div class="line"><a id="l05951" name="l05951"></a><span class="lineno"> 5951</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05952" name="l05952"></a><span class="lineno"> 5952</span> </div>
|
|
<div class="line"><a id="l05953" name="l05953"></a><span class="lineno"> 5953</span> </div>
|
|
<div class="line"><a id="l05954" name="l05954"></a><span class="lineno"> 5954</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SECTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05955" name="l05955"></a><span class="lineno"> 5955</span> </div>
|
|
<div class="line"><a id="l05956" name="l05956"></a><span class="lineno"> 5956</span> </div>
|
|
<div class="line"><a id="l05957" name="l05957"></a><span class="lineno"> 5957</span><span class="preprocessor">#ifndef CATCH_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05958" name="l05958"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0033a8272d4ae2997a820adbd38ac05f"> 5958</a></span><span class="preprocessor">#define CATCH_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05959" name="l05959"></a><span class="lineno"> 5959</span> </div>
|
|
<div class="line"><a id="l05960" name="l05960"></a><span class="lineno"> 5960</span> </div>
|
|
<div class="line"><a id="l05961" name="l05961"></a><span class="lineno"> 5961</span> </div>
|
|
<div class="line"><a id="l05962" name="l05962"></a><span class="lineno"> 5962</span><span class="preprocessor">#ifndef CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05963" name="l05963"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6904cdf25f5eb9b6ff347005633b9774"> 5963</a></span><span class="preprocessor">#define CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05964" name="l05964"></a><span class="lineno"> 5964</span> </div>
|
|
<div class="line"><a id="l05965" name="l05965"></a><span class="lineno"> 5965</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l05966" name="l05966"></a><span class="lineno"> 5966</span> </div>
|
|
<div class="foldopen" id="foldopen05967" data-start="{" data-end="};">
|
|
<div class="line"><a id="l05967" name="l05967"></a><span class="lineno"><a class="line" href="classCatch_1_1ITestInvoker.html"> 5967</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a> {</div>
|
|
<div class="line"><a id="l05968" name="l05968"></a><span class="lineno"> 5968</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l05969" name="l05969"></a><span class="lineno"> 5969</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1ITestInvoker.html#a43db31a32490670701161fad7c8c97e3">prepareTestCase</a>();</div>
|
|
<div class="line"><a id="l05970" name="l05970"></a><span class="lineno"> 5970</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1ITestInvoker.html#a71968ab16ca03c8008b1ca25ca5b4c17">tearDownTestCase</a>();</div>
|
|
<div class="line"><a id="l05971" name="l05971"></a><span class="lineno"><a class="line" href="classCatch_1_1ITestInvoker.html#a6fcd5c5b67d6d5ade6491ff33411ca7f"> 5971</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1ITestInvoker.html#a6fcd5c5b67d6d5ade6491ff33411ca7f">invoke</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l05972" name="l05972"></a><span class="lineno"><a class="line" href="classCatch_1_1ITestInvoker.html#a99f1c750e08df86e117995ea75b5dd9d"> 5972</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1ITestInvoker.html#a99f1c750e08df86e117995ea75b5dd9d">~ITestInvoker</a>(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l05973" name="l05973"></a><span class="lineno"> 5973</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l05974" name="l05974"></a><span class="lineno"> 5974</span> </div>
|
|
<div class="line"><a id="l05975" name="l05975"></a><span class="lineno"> 5975</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l05976" name="l05976"></a><span class="lineno"> 5976</span> </div>
|
|
<div class="line"><a id="l05977" name="l05977"></a><span class="lineno"> 5977</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05978" name="l05978"></a><span class="lineno"> 5978</span> </div>
|
|
<div class="line"><a id="l05979" name="l05979"></a><span class="lineno"> 5979</span> </div>
|
|
<div class="line"><a id="l05980" name="l05980"></a><span class="lineno"> 5980</span><span class="preprocessor">#ifndef CATCH_PREPROCESSOR_REMOVE_PARENS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05981" name="l05981"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad86e3ad69ee769a933042a8a7000ea9f"> 5981</a></span><span class="preprocessor">#define CATCH_PREPROCESSOR_REMOVE_PARENS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05982" name="l05982"></a><span class="lineno"> 5982</span> </div>
|
|
<div class="line"><a id="l05983" name="l05983"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#afec78f8054a97a6ecb38ff098f275efb"> 5983</a></span><span class="preprocessor">#define INTERNAL_CATCH_EXPAND1( param ) INTERNAL_CATCH_EXPAND2( param )</span></div>
|
|
<div class="line"><a id="l05984" name="l05984"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a163ac3d9bea0921d546f125ef5d58a2d"> 5984</a></span><span class="preprocessor">#define INTERNAL_CATCH_EXPAND2( ... ) INTERNAL_CATCH_NO##__VA_ARGS__</span></div>
|
|
<div class="line"><a id="l05985" name="l05985"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a053610cf96d1be50463e9cb08e818ed1"> 5985</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEF( ... ) INTERNAL_CATCH_DEF __VA_ARGS__</span></div>
|
|
<div class="line"><a id="l05986" name="l05986"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6868a4eb7481605e628a3aaf0c1fbb01"> 5986</a></span><span class="preprocessor">#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF</span></div>
|
|
<div class="line"><a id="l05987" name="l05987"></a><span class="lineno"> 5987</span> </div>
|
|
<div class="foldopen" id="foldopen05988" data-start="" data-end="">
|
|
<div class="line"><a id="l05988" name="l05988"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#adf5ede19321b27ce635d01688551e782"> 5988</a></span><span class="preprocessor">#define INTERNAL_CATCH_REMOVE_PARENS( ... ) \</span></div>
|
|
<div class="line"><a id="l05989" name="l05989"></a><span class="lineno"> 5989</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND1( INTERNAL_CATCH_DEF __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l05990" name="l05990"></a><span class="lineno"> 5990</span> </div>
|
|
<div class="line"><a id="l05991" name="l05991"></a><span class="lineno"> 5991</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_PREPROCESSOR_REMOVE_PARENS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l05992" name="l05992"></a><span class="lineno"> 5992</span> </div>
|
|
<div class="line"><a id="l05993" name="l05993"></a><span class="lineno"> 5993</span><span class="comment">// GCC 5 and older do not properly handle disabling unused-variable warning</span></div>
|
|
<div class="line"><a id="l05994" name="l05994"></a><span class="lineno"> 5994</span><span class="comment">// with a _Pragma. This means that we have to leak the suppression to the</span></div>
|
|
<div class="line"><a id="l05995" name="l05995"></a><span class="lineno"> 5995</span><span class="comment">// user code as well :-(</span></div>
|
|
<div class="line"><a id="l05996" name="l05996"></a><span class="lineno"> 5996</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 5</span></div>
|
|
<div class="line"><a id="l05997" name="l05997"></a><span class="lineno"> 5997</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Wunused-variable"</span></div>
|
|
<div class="line"><a id="l05998" name="l05998"></a><span class="lineno"> 5998</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l05999" name="l05999"></a><span class="lineno"> 5999</span> </div>
|
|
<div class="line"><a id="l06000" name="l06000"></a><span class="lineno"> 6000</span> </div>
|
|
<div class="line"><a id="l06001" name="l06001"></a><span class="lineno"> 6001</span> </div>
|
|
<div class="line"><a id="l06002" name="l06002"></a><span class="lineno"> 6002</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l06003" name="l06003"></a><span class="lineno"> 6003</span> </div>
|
|
<div class="line"><a id="l06004" name="l06004"></a><span class="lineno"> 6004</span><span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen06005" data-start="{" data-end="};">
|
|
<div class="line"><a id="l06005" name="l06005"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerAsMethod.html"> 6005</a></span><span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestInvokerAsMethod.html#ab6ae1265119f3ffd09b2f8b76c8268bb">TestInvokerAsMethod</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a> {</div>
|
|
<div class="line"><a id="l06006" name="l06006"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerAsMethod.html#a4851e50d6b43c022c41d5de776a27ed7"> 6006</a></span> void (C::*<a class="code hl_variable" href="classCatch_1_1TestInvokerAsMethod.html#a4851e50d6b43c022c41d5de776a27ed7">m_testAsMethod</a>)();</div>
|
|
<div class="line"><a id="l06007" name="l06007"></a><span class="lineno"> 6007</span><span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen06008" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06008" name="l06008"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerAsMethod.html#ab6ae1265119f3ffd09b2f8b76c8268bb"> 6008</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1TestInvokerAsMethod.html#ab6ae1265119f3ffd09b2f8b76c8268bb">TestInvokerAsMethod</a>( <span class="keywordtype">void</span> ( C::*testAsMethod )() ) noexcept:</div>
|
|
<div class="line"><a id="l06009" name="l06009"></a><span class="lineno"> 6009</span> <a class="code hl_variable" href="classCatch_1_1TestInvokerAsMethod.html#a4851e50d6b43c022c41d5de776a27ed7">m_testAsMethod</a>( testAsMethod ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l06010" name="l06010"></a><span class="lineno"> 6010</span> </div>
|
|
<div class="foldopen" id="foldopen06011" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06011" name="l06011"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerAsMethod.html#a8115a06efe273f4112ec0b5452c1b5f2"> 6011</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestInvokerAsMethod.html#a8115a06efe273f4112ec0b5452c1b5f2">invoke</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l06012" name="l06012"></a><span class="lineno"> 6012</span> C obj;</div>
|
|
<div class="line"><a id="l06013" name="l06013"></a><span class="lineno"> 6013</span> (obj.*<a class="code hl_variable" href="classCatch_1_1TestInvokerAsMethod.html#a4851e50d6b43c022c41d5de776a27ed7">m_testAsMethod</a>)();</div>
|
|
<div class="line"><a id="l06014" name="l06014"></a><span class="lineno"> 6014</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l06015" name="l06015"></a><span class="lineno"> 6015</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l06016" name="l06016"></a><span class="lineno"> 6016</span> </div>
|
|
<div class="line"><a id="l06017" name="l06017"></a><span class="lineno"> 6017</span>Detail::unique_ptr<ITestInvoker> makeTestInvoker( <span class="keywordtype">void</span>(*testAsFunction)() );</div>
|
|
<div class="line"><a id="l06018" name="l06018"></a><span class="lineno"> 6018</span> </div>
|
|
<div class="line"><a id="l06019" name="l06019"></a><span class="lineno"> 6019</span><span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen06020" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06020" name="l06020"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a78ce8525c5901986486609d6c5b26a5f"> 6020</a></span><a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<ITestInvoker></a> <a class="code hl_function" href="namespaceCatch.html#a4036958fd61b3ba0b3d2467e7f4f6fd7">makeTestInvoker</a>( <span class="keywordtype">void</span> (C::*testAsMethod)() ) {</div>
|
|
<div class="line"><a id="l06021" name="l06021"></a><span class="lineno"> 6021</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Detail::make_unique<TestInvokerAsMethod<C></a>>( testAsMethod );</div>
|
|
<div class="line"><a id="l06022" name="l06022"></a><span class="lineno"> 6022</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l06023" name="l06023"></a><span class="lineno"> 6023</span> </div>
|
|
<div class="line"><a id="l06024" name="l06024"></a><span class="lineno"> 6024</span><span class="keyword">template</span> <<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen06025" data-start="{" data-end="};">
|
|
<div class="line"><a id="l06025" name="l06025"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html"> 6025</a></span><span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestInvokerFixture.html#a0bcc8c4ab449a90509093bff2c471aa1">TestInvokerFixture</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a> {</div>
|
|
<div class="line"><a id="l06026" name="l06026"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#acc4b336d1cdf8261d3a0a2985707647a"> 6026</a></span> void ( C::*<a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#acc4b336d1cdf8261d3a0a2985707647a">m_testAsMethod</a> )() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l06027" name="l06027"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f"> 6027</a></span> <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<C></a> <a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f">m_fixture</a> = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l06028" name="l06028"></a><span class="lineno"> 6028</span> </div>
|
|
<div class="line"><a id="l06029" name="l06029"></a><span class="lineno"> 6029</span><span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen06030" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06030" name="l06030"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#a0bcc8c4ab449a90509093bff2c471aa1"> 6030</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1TestInvokerFixture.html#a0bcc8c4ab449a90509093bff2c471aa1">TestInvokerFixture</a>( <span class="keywordtype">void</span> ( C::*testAsMethod )() <span class="keyword">const</span> ) noexcept:</div>
|
|
<div class="line"><a id="l06031" name="l06031"></a><span class="lineno"> 6031</span> <a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#acc4b336d1cdf8261d3a0a2985707647a">m_testAsMethod</a>( testAsMethod ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l06032" name="l06032"></a><span class="lineno"> 6032</span> </div>
|
|
<div class="foldopen" id="foldopen06033" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06033" name="l06033"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#adf8b4e93f443c8fdbcbea4b59d0a151f"> 6033</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestInvokerFixture.html#adf8b4e93f443c8fdbcbea4b59d0a151f">prepareTestCase</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l06034" name="l06034"></a><span class="lineno"> 6034</span> <a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f">m_fixture</a> = <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Detail::make_unique<C></a>();</div>
|
|
<div class="line"><a id="l06035" name="l06035"></a><span class="lineno"> 6035</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l06036" name="l06036"></a><span class="lineno"> 6036</span> </div>
|
|
<div class="foldopen" id="foldopen06037" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06037" name="l06037"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#a9fe1bd75d0aac05c56a292e0badfaba1"> 6037</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestInvokerFixture.html#a9fe1bd75d0aac05c56a292e0badfaba1">tearDownTestCase</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l06038" name="l06038"></a><span class="lineno"> 6038</span> <a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f">m_fixture</a>.reset();</div>
|
|
<div class="line"><a id="l06039" name="l06039"></a><span class="lineno"> 6039</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l06040" name="l06040"></a><span class="lineno"> 6040</span> </div>
|
|
<div class="foldopen" id="foldopen06041" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06041" name="l06041"></a><span class="lineno"><a class="line" href="classCatch_1_1TestInvokerFixture.html#a04b87ab951d6974a6db5e591d71ae394"> 6041</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestInvokerFixture.html#a04b87ab951d6974a6db5e591d71ae394">invoke</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l06042" name="l06042"></a><span class="lineno"> 6042</span> <span class="keyword">auto</span>* f = <a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f">m_fixture</a>.get();</div>
|
|
<div class="line"><a id="l06043" name="l06043"></a><span class="lineno"> 6043</span> ( f->*<a class="code hl_variable" href="classCatch_1_1TestInvokerFixture.html#acc4b336d1cdf8261d3a0a2985707647a">m_testAsMethod</a> )();</div>
|
|
<div class="line"><a id="l06044" name="l06044"></a><span class="lineno"> 6044</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l06045" name="l06045"></a><span class="lineno"> 6045</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l06046" name="l06046"></a><span class="lineno"> 6046</span> </div>
|
|
<div class="line"><a id="l06047" name="l06047"></a><span class="lineno"> 6047</span><span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen06048" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06048" name="l06048"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a277e030bde8011793e9903108bb07a18"> 6048</a></span><a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<ITestInvoker></a> <a class="code hl_function" href="namespaceCatch.html#a277e030bde8011793e9903108bb07a18">makeTestInvokerFixture</a>( <span class="keywordtype">void</span> ( C::*testAsMethod )() <span class="keyword">const</span> ) {</div>
|
|
<div class="line"><a id="l06049" name="l06049"></a><span class="lineno"> 6049</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Detail::make_unique<TestInvokerFixture<C></a>>( testAsMethod );</div>
|
|
<div class="line"><a id="l06050" name="l06050"></a><span class="lineno"> 6050</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l06051" name="l06051"></a><span class="lineno"> 6051</span> </div>
|
|
<div class="foldopen" id="foldopen06052" data-start="{" data-end="};">
|
|
<div class="line"><a id="l06052" name="l06052"></a><span class="lineno"><a class="line" href="structCatch_1_1NameAndTags.html"> 6052</a></span><span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1NameAndTags.html#abc438faf25ef961bc9bd2e5e3d348ef1">NameAndTags</a> {</div>
|
|
<div class="foldopen" id="foldopen06053" data-start="{" data-end="}">
|
|
<div class="line"><a id="l06053" name="l06053"></a><span class="lineno"><a class="line" href="structCatch_1_1NameAndTags.html#abc438faf25ef961bc9bd2e5e3d348ef1"> 6053</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="structCatch_1_1NameAndTags.html#abc438faf25ef961bc9bd2e5e3d348ef1">NameAndTags</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> name_ = <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>(),</div>
|
|
<div class="line"><a id="l06054" name="l06054"></a><span class="lineno"> 6054</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> tags_ = <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a>() ) noexcept:</div>
|
|
<div class="line"><a id="l06055" name="l06055"></a><span class="lineno"> 6055</span> <a class="code hl_variable" href="structCatch_1_1NameAndTags.html#a7cbea60e0cebfa622c667008eb011420">name</a>( name_ ), <a class="code hl_variable" href="structCatch_1_1NameAndTags.html#a74062ed1138834a348424eb7ed900c57">tags</a>( tags_ ) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l06056" name="l06056"></a><span class="lineno"><a class="line" href="structCatch_1_1NameAndTags.html#a7cbea60e0cebfa622c667008eb011420"> 6056</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1NameAndTags.html#a7cbea60e0cebfa622c667008eb011420">name</a>;</div>
|
|
<div class="line"><a id="l06057" name="l06057"></a><span class="lineno"><a class="line" href="structCatch_1_1NameAndTags.html#a74062ed1138834a348424eb7ed900c57"> 6057</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1NameAndTags.html#a74062ed1138834a348424eb7ed900c57">tags</a>;</div>
|
|
<div class="line"><a id="l06058" name="l06058"></a><span class="lineno"> 6058</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l06059" name="l06059"></a><span class="lineno"> 6059</span> </div>
|
|
<div class="foldopen" id="foldopen06060" data-start="{" data-end="};">
|
|
<div class="line"><a id="l06060" name="l06060"></a><span class="lineno"><a class="line" href="structCatch_1_1AutoReg.html"> 6060</a></span><span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1AutoReg.html#a55b55f307b619aaee06f1ceb20660c08">AutoReg</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l06061" name="l06061"></a><span class="lineno"> 6061</span> <a class="code hl_function" href="structCatch_1_1AutoReg.html#a55b55f307b619aaee06f1ceb20660c08">AutoReg</a>( <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Detail::unique_ptr<ITestInvoker></a> invoker, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo, <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> classOrMethod, <a class="code hl_struct" href="structCatch_1_1NameAndTags.html">NameAndTags</a> <span class="keyword">const</span>& nameAndTags ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l06062" name="l06062"></a><span class="lineno"> 6062</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l06063" name="l06063"></a><span class="lineno"> 6063</span> </div>
|
|
<div class="line"><a id="l06064" name="l06064"></a><span class="lineno"> 6064</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l06065" name="l06065"></a><span class="lineno"> 6065</span> </div>
|
|
<div class="line"><a id="l06066" name="l06066"></a><span class="lineno"> 6066</span><span class="preprocessor">#if defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l06067" name="l06067"></a><span class="lineno"> 6067</span><span class="preprocessor"> #define INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... ) \</span></div>
|
|
<div class="line"><a id="l06068" name="l06068"></a><span class="lineno"> 6068</span><span class="preprocessor"> static inline void TestName()</span></div>
|
|
<div class="line"><a id="l06069" name="l06069"></a><span class="lineno"> 6069</span><span class="preprocessor"> #define INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName, ... ) \</span></div>
|
|
<div class="line"><a id="l06070" name="l06070"></a><span class="lineno"> 6070</span><span class="preprocessor"> namespace{ \</span></div>
|
|
<div class="line"><a id="l06071" name="l06071"></a><span class="lineno"> 6071</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \</span></div>
|
|
<div class="line"><a id="l06072" name="l06072"></a><span class="lineno"> 6072</span><span class="preprocessor"> void test(); \</span></div>
|
|
<div class="line"><a id="l06073" name="l06073"></a><span class="lineno"> 6073</span><span class="preprocessor"> }; \</span></div>
|
|
<div class="line"><a id="l06074" name="l06074"></a><span class="lineno"> 6074</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06075" name="l06075"></a><span class="lineno"> 6075</span><span class="preprocessor"> void TestName::test()</span></div>
|
|
<div class="line"><a id="l06076" name="l06076"></a><span class="lineno"> 6076</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06077" name="l06077"></a><span class="lineno"> 6077</span> </div>
|
|
<div class="line"><a id="l06078" name="l06078"></a><span class="lineno"> 6078</span> </div>
|
|
<div class="line"><a id="l06079" name="l06079"></a><span class="lineno"> 6079</span><span class="preprocessor">#if !defined(CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT)</span></div>
|
|
<div class="line"><a id="l06080" name="l06080"></a><span class="lineno"> 6080</span></div>
|
|
<div class="foldopen" id="foldopen06082" data-start="" data-end="">
|
|
<div class="line"><a id="l06082" name="l06082"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a33905c95a4d545efcf34abfbf790ad9c"> 6082</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \</span></div>
|
|
<div class="line"><a id="l06083" name="l06083"></a><span class="lineno"> 6083</span><span class="preprocessor"> static void TestName(); \</span></div>
|
|
<div class="line"><a id="l06084" name="l06084"></a><span class="lineno"> 6084</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06085" name="l06085"></a><span class="lineno"> 6085</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06086" name="l06086"></a><span class="lineno"> 6086</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06087" name="l06087"></a><span class="lineno"> 6087</span><span class="preprocessor"> namespace{ const Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &TestName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); } </span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06088" name="l06088"></a><span class="lineno"> 6088</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06089" name="l06089"></a><span class="lineno"> 6089</span><span class="preprocessor"> static void TestName()</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06090" data-start="" data-end="">
|
|
<div class="line"><a id="l06090" name="l06090"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a83f221452b6494c1eb0ae9bab79faa3c"> 6090</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TESTCASE( ... ) \</span></div>
|
|
<div class="line"><a id="l06091" name="l06091"></a><span class="lineno"> 6091</span><span class="preprocessor"> INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06092" name="l06092"></a><span class="lineno"> 6092</span> </div>
|
|
<div class="line"><a id="l06093" name="l06093"></a><span class="lineno"> 6093</span><span class="preprocessor">#else </span><span class="comment">// ^^ !CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT | vv CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT</span></div>
|
|
<div class="line"><a id="l06094" name="l06094"></a><span class="lineno"> 6094</span> </div>
|
|
<div class="line"><a id="l06095" name="l06095"></a><span class="lineno"> 6095</span> </div>
|
|
<div class="line"><a id="l06096" name="l06096"></a><span class="lineno"> 6096</span><span class="comment">// Dummy registrator for the dumy test case macros</span></div>
|
|
<div class="line"><a id="l06097" name="l06097"></a><span class="lineno"> 6097</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l06098" name="l06098"></a><span class="lineno"> 6098</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l06099" name="l06099"></a><span class="lineno"> 6099</span> <span class="keyword">struct </span>DummyUse {</div>
|
|
<div class="line"><a id="l06100" name="l06100"></a><span class="lineno"> 6100</span> DummyUse( <span class="keywordtype">void</span> ( * )( <span class="keywordtype">int</span> ), <a class="code hl_struct" href="structCatch_1_1NameAndTags.html">Catch::NameAndTags</a> <span class="keyword">const</span>& );</div>
|
|
<div class="line"><a id="l06101" name="l06101"></a><span class="lineno"> 6101</span> };</div>
|
|
<div class="line"><a id="l06102" name="l06102"></a><span class="lineno"> 6102</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l06103" name="l06103"></a><span class="lineno"> 6103</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l06104" name="l06104"></a><span class="lineno"> 6104</span> </div>
|
|
<div class="line"><a id="l06105" name="l06105"></a><span class="lineno"> 6105</span><span class="comment">// Note that both the presence of the argument and its exact name are</span></div>
|
|
<div class="line"><a id="l06106" name="l06106"></a><span class="lineno"> 6106</span><span class="comment">// necessary for the section support.</span></div>
|
|
<div class="line"><a id="l06107" name="l06107"></a><span class="lineno"> 6107</span> </div>
|
|
<div class="line"><a id="l06108" name="l06108"></a><span class="lineno"> 6108</span><span class="comment">// We provide a shadowed variable so that a `SECTION` inside non-`TEST_CASE`</span></div>
|
|
<div class="line"><a id="l06109" name="l06109"></a><span class="lineno"> 6109</span><span class="comment">// tests can compile. The redefined `TEST_CASE` shadows this with param.</span></div>
|
|
<div class="line"><a id="l06110" name="l06110"></a><span class="lineno"> 6110</span><span class="keyword">static</span> <span class="keywordtype">int</span> catchInternalSectionHint = 0;</div>
|
|
<div class="line"><a id="l06111" name="l06111"></a><span class="lineno"> 6111</span> </div>
|
|
<div class="line"><a id="l06112" name="l06112"></a><span class="lineno"> 6112</span><span class="preprocessor"># define INTERNAL_CATCH_TESTCASE2( fname, ... ) \</span></div>
|
|
<div class="line"><a id="l06113" name="l06113"></a><span class="lineno"> 6113</span><span class="preprocessor"> static void fname( int ); \</span></div>
|
|
<div class="line"><a id="l06114" name="l06114"></a><span class="lineno"> 6114</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06115" name="l06115"></a><span class="lineno"> 6115</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06116" name="l06116"></a><span class="lineno"> 6116</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06117" name="l06117"></a><span class="lineno"> 6117</span><span class="preprocessor"> static const Catch::Detail::DummyUse INTERNAL_CATCH_UNIQUE_NAME( \</span></div>
|
|
<div class="line"><a id="l06118" name="l06118"></a><span class="lineno"> 6118</span><span class="preprocessor"> dummyUser )( &(fname), Catch::NameAndTags{ __VA_ARGS__ } ); \</span></div>
|
|
<div class="line"><a id="l06119" name="l06119"></a><span class="lineno"> 6119</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_SHADOW_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06120" name="l06120"></a><span class="lineno"> 6120</span><span class="preprocessor"> static void fname( [[maybe_unused]] int catchInternalSectionHint ) \</span></div>
|
|
<div class="line"><a id="l06121" name="l06121"></a><span class="lineno"> 6121</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l06122" name="l06122"></a><span class="lineno"> 6122</span><span class="preprocessor"># define INTERNAL_CATCH_TESTCASE( ... ) \</span></div>
|
|
<div class="line"><a id="l06123" name="l06123"></a><span class="lineno"> 6123</span><span class="preprocessor"> INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( dummyFunction ), __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06124" name="l06124"></a><span class="lineno"> 6124</span> </div>
|
|
<div class="line"><a id="l06125" name="l06125"></a><span class="lineno"> 6125</span> </div>
|
|
<div class="line"><a id="l06126" name="l06126"></a><span class="lineno"> 6126</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT</span></div>
|
|
<div class="line"><a id="l06127" name="l06127"></a><span class="lineno"> 6127</span></div>
|
|
<div class="foldopen" id="foldopen06129" data-start="" data-end="">
|
|
<div class="line"><a id="l06129" name="l06129"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a60e66c178de977271dd864ade805a250"> 6129</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\</span></div>
|
|
<div class="line"><a id="l06130" name="l06130"></a><span class="lineno"> 6130</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06131" name="l06131"></a><span class="lineno"> 6131</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06132" name="l06132"></a><span class="lineno"> 6132</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06133" name="l06133"></a><span class="lineno"> 6133</span><span class="preprocessor"> namespace{ \</span></div>
|
|
<div class="line"><a id="l06134" name="l06134"></a><span class="lineno"> 6134</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \</span></div>
|
|
<div class="line"><a id="l06135" name="l06135"></a><span class="lineno"> 6135</span><span class="preprocessor"> void test(); \</span></div>
|
|
<div class="line"><a id="l06136" name="l06136"></a><span class="lineno"> 6136</span><span class="preprocessor"> }; \</span></div>
|
|
<div class="line"><a id="l06137" name="l06137"></a><span class="lineno"> 6137</span><span class="preprocessor"> const Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( \</span></div>
|
|
<div class="line"><a id="l06138" name="l06138"></a><span class="lineno"> 6138</span><span class="preprocessor"> Catch::makeTestInvoker( &TestName::test ), \</span></div>
|
|
<div class="line"><a id="l06139" name="l06139"></a><span class="lineno"> 6139</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l06140" name="l06140"></a><span class="lineno"> 6140</span><span class="preprocessor"> #ClassName##_catch_sr, \</span></div>
|
|
<div class="line"><a id="l06141" name="l06141"></a><span class="lineno"> 6141</span><span class="preprocessor"> Catch::NameAndTags{ __VA_ARGS__ } ); </span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06142" name="l06142"></a><span class="lineno"> 6142</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06143" name="l06143"></a><span class="lineno"> 6143</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06144" name="l06144"></a><span class="lineno"> 6144</span><span class="preprocessor"> void TestName::test()</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06145" data-start="" data-end="">
|
|
<div class="line"><a id="l06145" name="l06145"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4755a44f041605a731180e1e19e72bee"> 6145</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \</span></div>
|
|
<div class="line"><a id="l06146" name="l06146"></a><span class="lineno"> 6146</span><span class="preprocessor"> INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), ClassName, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06147" name="l06147"></a><span class="lineno"> 6147</span></div>
|
|
<div class="foldopen" id="foldopen06149" data-start="" data-end="">
|
|
<div class="line"><a id="l06149" name="l06149"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac5ffe8c3a508f1657a9ef2acd80589c5"> 6149</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEST_CASE_PERSISTENT_FIXTURE2( TestName, ClassName, ... ) \</span></div>
|
|
<div class="line"><a id="l06150" name="l06150"></a><span class="lineno"> 6150</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06151" name="l06151"></a><span class="lineno"> 6151</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06152" name="l06152"></a><span class="lineno"> 6152</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06153" name="l06153"></a><span class="lineno"> 6153</span><span class="preprocessor"> namespace { \</span></div>
|
|
<div class="line"><a id="l06154" name="l06154"></a><span class="lineno"> 6154</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS( ClassName ) { \</span></div>
|
|
<div class="line"><a id="l06155" name="l06155"></a><span class="lineno"> 6155</span><span class="preprocessor"> void test() const; \</span></div>
|
|
<div class="line"><a id="l06156" name="l06156"></a><span class="lineno"> 6156</span><span class="preprocessor"> }; \</span></div>
|
|
<div class="line"><a id="l06157" name="l06157"></a><span class="lineno"> 6157</span><span class="preprocessor"> const Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( \</span></div>
|
|
<div class="line"><a id="l06158" name="l06158"></a><span class="lineno"> 6158</span><span class="preprocessor"> Catch::makeTestInvokerFixture( &TestName::test ), \</span></div>
|
|
<div class="line"><a id="l06159" name="l06159"></a><span class="lineno"> 6159</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l06160" name="l06160"></a><span class="lineno"> 6160</span><span class="preprocessor"> #ClassName##_catch_sr, \</span></div>
|
|
<div class="line"><a id="l06161" name="l06161"></a><span class="lineno"> 6161</span><span class="preprocessor"> Catch::NameAndTags{ __VA_ARGS__ } ); </span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06162" name="l06162"></a><span class="lineno"> 6162</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06163" name="l06163"></a><span class="lineno"> 6163</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06164" name="l06164"></a><span class="lineno"> 6164</span><span class="preprocessor"> void TestName::test() const</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06165" data-start="" data-end="">
|
|
<div class="line"><a id="l06165" name="l06165"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5bf69c57e9699d6349a85647d4d06bd2"> 6165</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEST_CASE_PERSISTENT_FIXTURE( ClassName, ... ) \</span></div>
|
|
<div class="line"><a id="l06166" name="l06166"></a><span class="lineno"> 6166</span><span class="preprocessor"> INTERNAL_CATCH_TEST_CASE_PERSISTENT_FIXTURE2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), ClassName, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06167" name="l06167"></a><span class="lineno"> 6167</span> </div>
|
|
<div class="line"><a id="l06168" name="l06168"></a><span class="lineno"> 6168</span></div>
|
|
<div class="foldopen" id="foldopen06170" data-start="" data-end="">
|
|
<div class="line"><a id="l06170" name="l06170"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af5bedfdbfc32cddf5287a77cf860f242"> 6170</a></span><span class="preprocessor"> #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \</span></div>
|
|
<div class="line"><a id="l06171" name="l06171"></a><span class="lineno"> 6171</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06172" name="l06172"></a><span class="lineno"> 6172</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06173" name="l06173"></a><span class="lineno"> 6173</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06174" name="l06174"></a><span class="lineno"> 6174</span><span class="preprocessor"> namespace { \</span></div>
|
|
<div class="line"><a id="l06175" name="l06175"></a><span class="lineno"> 6175</span><span class="preprocessor"> const Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( \</span></div>
|
|
<div class="line"><a id="l06176" name="l06176"></a><span class="lineno"> 6176</span><span class="preprocessor"> Catch::makeTestInvoker( &QualifiedMethod ), \</span></div>
|
|
<div class="line"><a id="l06177" name="l06177"></a><span class="lineno"> 6177</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l06178" name="l06178"></a><span class="lineno"> 6178</span><span class="preprocessor"> "&" #QualifiedMethod##_catch_sr, \</span></div>
|
|
<div class="line"><a id="l06179" name="l06179"></a><span class="lineno"> 6179</span><span class="preprocessor"> Catch::NameAndTags{ __VA_ARGS__ } ); \</span></div>
|
|
<div class="line"><a id="l06180" name="l06180"></a><span class="lineno"> 6180</span><span class="preprocessor"> } </span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06181" name="l06181"></a><span class="lineno"> 6181</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06182" name="l06182"></a><span class="lineno"> 6182</span> </div>
|
|
<div class="line"><a id="l06183" name="l06183"></a><span class="lineno"> 6183</span></div>
|
|
<div class="foldopen" id="foldopen06185" data-start="" data-end="">
|
|
<div class="line"><a id="l06185" name="l06185"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad7fc9293cc800a6f2fde7a0a211533c8"> 6185</a></span><span class="preprocessor"> #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \</span></div>
|
|
<div class="line"><a id="l06186" name="l06186"></a><span class="lineno"> 6186</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l06187" name="l06187"></a><span class="lineno"> 6187</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06188" name="l06188"></a><span class="lineno"> 6188</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06189" name="l06189"></a><span class="lineno"> 6189</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06190" name="l06190"></a><span class="lineno"> 6190</span><span class="preprocessor"> Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); </span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06191" name="l06191"></a><span class="lineno"> 6191</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06192" name="l06192"></a><span class="lineno"> 6192</span><span class="preprocessor"> } while(false)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06193" name="l06193"></a><span class="lineno"> 6193</span> </div>
|
|
<div class="line"><a id="l06194" name="l06194"></a><span class="lineno"> 6194</span> </div>
|
|
<div class="line"><a id="l06195" name="l06195"></a><span class="lineno"> 6195</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06196" name="l06196"></a><span class="lineno"> 6196</span> </div>
|
|
<div class="line"><a id="l06197" name="l06197"></a><span class="lineno"> 6197</span> </div>
|
|
<div class="line"><a id="l06198" name="l06198"></a><span class="lineno"> 6198</span><span class="comment">// All of our user-facing macros support configuration toggle, that</span></div>
|
|
<div class="line"><a id="l06199" name="l06199"></a><span class="lineno"> 6199</span><span class="comment">// forces them to be defined prefixed with CATCH_. We also like to</span></div>
|
|
<div class="line"><a id="l06200" name="l06200"></a><span class="lineno"> 6200</span><span class="comment">// support another toggle that can minimize (disable) their implementation.</span></div>
|
|
<div class="line"><a id="l06201" name="l06201"></a><span class="lineno"> 6201</span><span class="comment">// Given this, we have 4 different configuration options below</span></div>
|
|
<div class="line"><a id="l06202" name="l06202"></a><span class="lineno"> 6202</span> </div>
|
|
<div class="line"><a id="l06203" name="l06203"></a><span class="lineno"> 6203</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l06204" name="l06204"></a><span class="lineno"> 6204</span> </div>
|
|
<div class="line"><a id="l06205" name="l06205"></a><span class="lineno"> 6205</span><span class="preprocessor"> #define CATCH_REQUIRE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06206" name="l06206"></a><span class="lineno"> 6206</span><span class="preprocessor"> #define CATCH_REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06207" name="l06207"></a><span class="lineno"> 6207</span> </div>
|
|
<div class="line"><a id="l06208" name="l06208"></a><span class="lineno"> 6208</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06209" name="l06209"></a><span class="lineno"> 6209</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )</span></div>
|
|
<div class="line"><a id="l06210" name="l06210"></a><span class="lineno"> 6210</span><span class="preprocessor"> #define CATCH_REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06211" name="l06211"></a><span class="lineno"> 6211</span> </div>
|
|
<div class="line"><a id="l06212" name="l06212"></a><span class="lineno"> 6212</span><span class="preprocessor"> #define CATCH_CHECK( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06213" name="l06213"></a><span class="lineno"> 6213</span><span class="preprocessor"> #define CATCH_CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06214" name="l06214"></a><span class="lineno"> 6214</span><span class="preprocessor"> #define CATCH_CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CATCH_CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06215" name="l06215"></a><span class="lineno"> 6215</span><span class="preprocessor"> #define CATCH_CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CATCH_CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06216" name="l06216"></a><span class="lineno"> 6216</span><span class="preprocessor"> #define CATCH_CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06217" name="l06217"></a><span class="lineno"> 6217</span> </div>
|
|
<div class="line"><a id="l06218" name="l06218"></a><span class="lineno"> 6218</span><span class="preprocessor"> #define CATCH_CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06219" name="l06219"></a><span class="lineno"> 6219</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )</span></div>
|
|
<div class="line"><a id="l06220" name="l06220"></a><span class="lineno"> 6220</span><span class="preprocessor"> #define CATCH_CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06221" name="l06221"></a><span class="lineno"> 6221</span> </div>
|
|
<div class="line"><a id="l06222" name="l06222"></a><span class="lineno"> 6222</span><span class="preprocessor"> #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06223" name="l06223"></a><span class="lineno"> 6223</span><span class="preprocessor"> #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06224" name="l06224"></a><span class="lineno"> 6224</span><span class="preprocessor"> #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06225" name="l06225"></a><span class="lineno"> 6225</span><span class="preprocessor"> #define CATCH_TEST_CASE_PERSISTENT_FIXTURE( className, ... ) INTERNAL_CATCH_TEST_CASE_PERSISTENT_FIXTURE( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06226" name="l06226"></a><span class="lineno"> 6226</span><span class="preprocessor"> #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06227" name="l06227"></a><span class="lineno"> 6227</span><span class="preprocessor"> #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06228" name="l06228"></a><span class="lineno"> 6228</span><span class="preprocessor"> #define CATCH_DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06229" name="l06229"></a><span class="lineno"> 6229</span><span class="preprocessor"> #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06230" name="l06230"></a><span class="lineno"> 6230</span><span class="preprocessor"> #define CATCH_FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06231" name="l06231"></a><span class="lineno"> 6231</span><span class="preprocessor"> #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( "CATCH_SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06232" name="l06232"></a><span class="lineno"> 6232</span><span class="preprocessor"> #define CATCH_SKIP( ... ) INTERNAL_CATCH_MSG( "SKIP", Catch::ResultWas::ExplicitSkip, Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06233" name="l06233"></a><span class="lineno"> 6233</span> </div>
|
|
<div class="line"><a id="l06234" name="l06234"></a><span class="lineno"> 6234</span> </div>
|
|
<div class="line"><a id="l06235" name="l06235"></a><span class="lineno"> 6235</span><span class="preprocessor"> #if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE)</span></div>
|
|
<div class="line"><a id="l06236" name="l06236"></a><span class="lineno"> 6236</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06237" name="l06237"></a><span class="lineno"> 6237</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06238" name="l06238"></a><span class="lineno"> 6238</span><span class="preprocessor"> #define CATCH_STATIC_CHECK( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06239" name="l06239"></a><span class="lineno"> 6239</span><span class="preprocessor"> #define CATCH_STATIC_CHECK_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06240" name="l06240"></a><span class="lineno"> 6240</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06241" name="l06241"></a><span class="lineno"> 6241</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE( ... ) CATCH_REQUIRE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06242" name="l06242"></a><span class="lineno"> 6242</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE_FALSE( ... ) CATCH_REQUIRE_FALSE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06243" name="l06243"></a><span class="lineno"> 6243</span><span class="preprocessor"> #define CATCH_STATIC_CHECK( ... ) CATCH_CHECK( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06244" name="l06244"></a><span class="lineno"> 6244</span><span class="preprocessor"> #define CATCH_STATIC_CHECK_FALSE( ... ) CATCH_CHECK_FALSE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06245" name="l06245"></a><span class="lineno"> 6245</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06246" name="l06246"></a><span class="lineno"> 6246</span> </div>
|
|
<div class="line"><a id="l06247" name="l06247"></a><span class="lineno"> 6247</span> </div>
|
|
<div class="line"><a id="l06248" name="l06248"></a><span class="lineno"> 6248</span> <span class="comment">// "BDD-style" convenience wrappers</span></div>
|
|
<div class="line"><a id="l06249" name="l06249"></a><span class="lineno"> 6249</span><span class="preprocessor"> #define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06250" name="l06250"></a><span class="lineno"> 6250</span><span class="preprocessor"> #define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06251" name="l06251"></a><span class="lineno"> 6251</span><span class="preprocessor"> #define CATCH_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )</span></div>
|
|
<div class="line"><a id="l06252" name="l06252"></a><span class="lineno"> 6252</span><span class="preprocessor"> #define CATCH_AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )</span></div>
|
|
<div class="line"><a id="l06253" name="l06253"></a><span class="lineno"> 6253</span><span class="preprocessor"> #define CATCH_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )</span></div>
|
|
<div class="line"><a id="l06254" name="l06254"></a><span class="lineno"> 6254</span><span class="preprocessor"> #define CATCH_AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )</span></div>
|
|
<div class="line"><a id="l06255" name="l06255"></a><span class="lineno"> 6255</span><span class="preprocessor"> #define CATCH_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )</span></div>
|
|
<div class="line"><a id="l06256" name="l06256"></a><span class="lineno"> 6256</span><span class="preprocessor"> #define CATCH_AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )</span></div>
|
|
<div class="line"><a id="l06257" name="l06257"></a><span class="lineno"> 6257</span> </div>
|
|
<div class="line"><a id="l06258" name="l06258"></a><span class="lineno"> 6258</span><span class="preprocessor">#elif defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE) </span><span class="comment">// ^^ prefixed, implemented | vv prefixed, disabled</span></div>
|
|
<div class="line"><a id="l06259" name="l06259"></a><span class="lineno"> 6259</span> </div>
|
|
<div class="line"><a id="l06260" name="l06260"></a><span class="lineno"> 6260</span><span class="preprocessor"> #define CATCH_REQUIRE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06261" name="l06261"></a><span class="lineno"> 6261</span><span class="preprocessor"> #define CATCH_REQUIRE_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06262" name="l06262"></a><span class="lineno"> 6262</span> </div>
|
|
<div class="line"><a id="l06263" name="l06263"></a><span class="lineno"> 6263</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06264" name="l06264"></a><span class="lineno"> 6264</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06265" name="l06265"></a><span class="lineno"> 6265</span><span class="preprocessor"> #define CATCH_REQUIRE_NOTHROW( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06266" name="l06266"></a><span class="lineno"> 6266</span> </div>
|
|
<div class="line"><a id="l06267" name="l06267"></a><span class="lineno"> 6267</span><span class="preprocessor"> #define CATCH_CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06268" name="l06268"></a><span class="lineno"> 6268</span><span class="preprocessor"> #define CATCH_CHECK_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06269" name="l06269"></a><span class="lineno"> 6269</span><span class="preprocessor"> #define CATCH_CHECKED_IF( ... ) if (__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06270" name="l06270"></a><span class="lineno"> 6270</span><span class="preprocessor"> #define CATCH_CHECKED_ELSE( ... ) if (!(__VA_ARGS__))</span></div>
|
|
<div class="line"><a id="l06271" name="l06271"></a><span class="lineno"> 6271</span><span class="preprocessor"> #define CATCH_CHECK_NOFAIL( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06272" name="l06272"></a><span class="lineno"> 6272</span> </div>
|
|
<div class="line"><a id="l06273" name="l06273"></a><span class="lineno"> 6273</span><span class="preprocessor"> #define CATCH_CHECK_THROWS( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06274" name="l06274"></a><span class="lineno"> 6274</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_AS( expr, exceptionType ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06275" name="l06275"></a><span class="lineno"> 6275</span><span class="preprocessor"> #define CATCH_CHECK_NOTHROW( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06276" name="l06276"></a><span class="lineno"> 6276</span> </div>
|
|
<div class="line"><a id="l06277" name="l06277"></a><span class="lineno"> 6277</span><span class="preprocessor"> #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ))</span></div>
|
|
<div class="line"><a id="l06278" name="l06278"></a><span class="lineno"> 6278</span><span class="preprocessor"> #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ))</span></div>
|
|
<div class="line"><a id="l06279" name="l06279"></a><span class="lineno"> 6279</span><span class="preprocessor"> #define CATCH_METHOD_AS_TEST_CASE( method, ... )</span></div>
|
|
<div class="line"><a id="l06280" name="l06280"></a><span class="lineno"> 6280</span><span class="preprocessor"> #define CATCH_TEST_CASE_PERSISTENT_FIXTURE( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ))</span></div>
|
|
<div class="line"><a id="l06281" name="l06281"></a><span class="lineno"> 6281</span><span class="preprocessor"> #define CATCH_REGISTER_TEST_CASE( Function, ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06282" name="l06282"></a><span class="lineno"> 6282</span><span class="preprocessor"> #define CATCH_SECTION( ... )</span></div>
|
|
<div class="line"><a id="l06283" name="l06283"></a><span class="lineno"> 6283</span><span class="preprocessor"> #define CATCH_DYNAMIC_SECTION( ... )</span></div>
|
|
<div class="line"><a id="l06284" name="l06284"></a><span class="lineno"> 6284</span><span class="preprocessor"> #define CATCH_FAIL( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06285" name="l06285"></a><span class="lineno"> 6285</span><span class="preprocessor"> #define CATCH_FAIL_CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06286" name="l06286"></a><span class="lineno"> 6286</span><span class="preprocessor"> #define CATCH_SUCCEED( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06287" name="l06287"></a><span class="lineno"> 6287</span><span class="preprocessor"> #define CATCH_SKIP( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06288" name="l06288"></a><span class="lineno"> 6288</span> </div>
|
|
<div class="line"><a id="l06289" name="l06289"></a><span class="lineno"> 6289</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06290" name="l06290"></a><span class="lineno"> 6290</span><span class="preprocessor"> #define CATCH_STATIC_REQUIRE_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06291" name="l06291"></a><span class="lineno"> 6291</span><span class="preprocessor"> #define CATCH_STATIC_CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06292" name="l06292"></a><span class="lineno"> 6292</span><span class="preprocessor"> #define CATCH_STATIC_CHECK_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06293" name="l06293"></a><span class="lineno"> 6293</span> </div>
|
|
<div class="line"><a id="l06294" name="l06294"></a><span class="lineno"> 6294</span> <span class="comment">// "BDD-style" convenience wrappers</span></div>
|
|
<div class="line"><a id="l06295" name="l06295"></a><span class="lineno"> 6295</span><span class="preprocessor"> #define CATCH_SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ))</span></div>
|
|
<div class="line"><a id="l06296" name="l06296"></a><span class="lineno"> 6296</span><span class="preprocessor"> #define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), className )</span></div>
|
|
<div class="line"><a id="l06297" name="l06297"></a><span class="lineno"> 6297</span><span class="preprocessor"> #define CATCH_GIVEN( desc )</span></div>
|
|
<div class="line"><a id="l06298" name="l06298"></a><span class="lineno"> 6298</span><span class="preprocessor"> #define CATCH_AND_GIVEN( desc )</span></div>
|
|
<div class="line"><a id="l06299" name="l06299"></a><span class="lineno"> 6299</span><span class="preprocessor"> #define CATCH_WHEN( desc )</span></div>
|
|
<div class="line"><a id="l06300" name="l06300"></a><span class="lineno"> 6300</span><span class="preprocessor"> #define CATCH_AND_WHEN( desc )</span></div>
|
|
<div class="line"><a id="l06301" name="l06301"></a><span class="lineno"> 6301</span><span class="preprocessor"> #define CATCH_THEN( desc )</span></div>
|
|
<div class="line"><a id="l06302" name="l06302"></a><span class="lineno"> 6302</span><span class="preprocessor"> #define CATCH_AND_THEN( desc )</span></div>
|
|
<div class="line"><a id="l06303" name="l06303"></a><span class="lineno"> 6303</span> </div>
|
|
<div class="line"><a id="l06304" name="l06304"></a><span class="lineno"> 6304</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE) </span><span class="comment">// ^^ prefixed, disabled | vv unprefixed, implemented</span></div>
|
|
<div class="line"><a id="l06305" name="l06305"></a><span class="lineno"> 6305</span> </div>
|
|
<div class="line"><a id="l06306" name="l06306"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad57835ba8f1bb419a865ada6bd011a85"> 6306</a></span><span class="preprocessor"> #define REQUIRE( ... ) INTERNAL_CATCH_TEST( "REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06307" name="l06307"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ada5065594bafc152162761ace47c1dcb"> 6307</a></span><span class="preprocessor"> #define REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06308" name="l06308"></a><span class="lineno"> 6308</span> </div>
|
|
<div class="line"><a id="l06309" name="l06309"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae3c33faa1d31a2bb0811dac74b994e3e"> 6309</a></span><span class="preprocessor"> #define REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06310" name="l06310"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae24a059e3c28ff3eea69be48282f5f81"> 6310</a></span><span class="preprocessor"> #define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )</span></div>
|
|
<div class="line"><a id="l06311" name="l06311"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab0148f0dfca438f7aa01974e9c33216a"> 6311</a></span><span class="preprocessor"> #define REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06312" name="l06312"></a><span class="lineno"> 6312</span> </div>
|
|
<div class="line"><a id="l06313" name="l06313"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a836cca6b6ed3a1706353f6d1bca0935f"> 6313</a></span><span class="preprocessor"> #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06314" name="l06314"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7bf095d8512cb180f8ff3a2258a6eaac"> 6314</a></span><span class="preprocessor"> #define CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06315" name="l06315"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a354466c7b989ec55784c02d74013263c"> 6315</a></span><span class="preprocessor"> #define CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06316" name="l06316"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5fa42bb950a65e22eac778c86b27d832"> 6316</a></span><span class="preprocessor"> #define CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06317" name="l06317"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a13c6feaf82c3c419104c50dbb8caa3ef"> 6317</a></span><span class="preprocessor"> #define CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06318" name="l06318"></a><span class="lineno"> 6318</span> </div>
|
|
<div class="line"><a id="l06319" name="l06319"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5c646dfe831e596b59073014c1c8b9e5"> 6319</a></span><span class="preprocessor"> #define CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06320" name="l06320"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1fb6439098d2a12bb69188034e03baf2"> 6320</a></span><span class="preprocessor"> #define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )</span></div>
|
|
<div class="line"><a id="l06321" name="l06321"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a78e70f011f20c4ade1d1ac2b8fd33626"> 6321</a></span><span class="preprocessor"> #define CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06322" name="l06322"></a><span class="lineno"> 6322</span> </div>
|
|
<div class="line"><a id="l06323" name="l06323"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abd6e2aec703006b3da62cf7860c9808f"> 6323</a></span><span class="preprocessor"> #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06324" name="l06324"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#adf06142f54a9e271590fa0e270bc41d2"> 6324</a></span><span class="preprocessor"> #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06325" name="l06325"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#add790b4107e8b013f21b0272be7bcc76"> 6325</a></span><span class="preprocessor"> #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06326" name="l06326"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0c6592abe74be33fa21170c9c7bcc4cc"> 6326</a></span><span class="preprocessor"> #define TEST_CASE_PERSISTENT_FIXTURE( className, ... ) INTERNAL_CATCH_TEST_CASE_PERSISTENT_FIXTURE( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06327" name="l06327"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a784b9192db328b4f21186f9b26e4146e"> 6327</a></span><span class="preprocessor"> #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06328" name="l06328"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad512fd95a78b95770b9759823f8fbc21"> 6328</a></span><span class="preprocessor"> #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06329" name="l06329"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa1caa37b980555de35faefa9191b5128"> 6329</a></span><span class="preprocessor"> #define DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06330" name="l06330"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac8d1eaf65528f86b445cf6e45b2d72c9"> 6330</a></span><span class="preprocessor"> #define FAIL( ... ) INTERNAL_CATCH_MSG( "FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06331" name="l06331"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3c2341a3238242fdc02d33a1968bd1d2"> 6331</a></span><span class="preprocessor"> #define FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06332" name="l06332"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8e852a9421caf4fda4e1903d9f02bcf5"> 6332</a></span><span class="preprocessor"> #define SUCCEED( ... ) INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06333" name="l06333"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aeb37959bf8e5094ee4547d57094cc2b4"> 6333</a></span><span class="preprocessor"> #define SKIP( ... ) INTERNAL_CATCH_MSG( "SKIP", Catch::ResultWas::ExplicitSkip, Catch::ResultDisposition::Normal, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06334" name="l06334"></a><span class="lineno"> 6334</span> </div>
|
|
<div class="line"><a id="l06335" name="l06335"></a><span class="lineno"> 6335</span> </div>
|
|
<div class="line"><a id="l06336" name="l06336"></a><span class="lineno"> 6336</span><span class="preprocessor"> #if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE)</span></div>
|
|
<div class="line"><a id="l06337" name="l06337"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abad9ff23b730469f209b010e0ac4687c"> 6337</a></span><span class="preprocessor"> #define STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06338" name="l06338"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae7506af68f12e7efdb22e951b911b5a0"> 6338</a></span><span class="preprocessor"> #define STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" )</span></div>
|
|
<div class="line"><a id="l06339" name="l06339"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a861c7f934ad63490b03974831879bb85"> 6339</a></span><span class="preprocessor"> #define STATIC_CHECK( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06340" name="l06340"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4e3049794a70e454b632666cf1e34fed"> 6340</a></span><span class="preprocessor"> #define STATIC_CHECK_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" )</span></div>
|
|
<div class="line"><a id="l06341" name="l06341"></a><span class="lineno"> 6341</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06342" name="l06342"></a><span class="lineno"> 6342</span><span class="preprocessor"> #define STATIC_REQUIRE( ... ) REQUIRE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06343" name="l06343"></a><span class="lineno"> 6343</span><span class="preprocessor"> #define STATIC_REQUIRE_FALSE( ... ) REQUIRE_FALSE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06344" name="l06344"></a><span class="lineno"> 6344</span><span class="preprocessor"> #define STATIC_CHECK( ... ) CHECK( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06345" name="l06345"></a><span class="lineno"> 6345</span><span class="preprocessor"> #define STATIC_CHECK_FALSE( ... ) CHECK_FALSE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06346" name="l06346"></a><span class="lineno"> 6346</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06347" name="l06347"></a><span class="lineno"> 6347</span> </div>
|
|
<div class="line"><a id="l06348" name="l06348"></a><span class="lineno"> 6348</span> <span class="comment">// "BDD-style" convenience wrappers</span></div>
|
|
<div class="line"><a id="l06349" name="l06349"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#acf8f441c7b9d70251ccbb7ccd8b83183"> 6349</a></span><span class="preprocessor"> #define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06350" name="l06350"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#add17eb8f8d85412a08a8a048cd38f33b"> 6350</a></span><span class="preprocessor"> #define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06351" name="l06351"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2b70c603786d759242856d883dbe93bd"> 6351</a></span><span class="preprocessor"> #define GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )</span></div>
|
|
<div class="line"><a id="l06352" name="l06352"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a89dcfbe509f3f81fd865d4acd1632b66"> 6352</a></span><span class="preprocessor"> #define AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )</span></div>
|
|
<div class="line"><a id="l06353" name="l06353"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab09e9b8186233f676ce6a23aebe89d6e"> 6353</a></span><span class="preprocessor"> #define WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )</span></div>
|
|
<div class="line"><a id="l06354" name="l06354"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a054a37584492a5dfbdb5ee0f2fc10b7a"> 6354</a></span><span class="preprocessor"> #define AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )</span></div>
|
|
<div class="line"><a id="l06355" name="l06355"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a27987092139727fd7a471b5f74dc62de"> 6355</a></span><span class="preprocessor"> #define THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )</span></div>
|
|
<div class="line"><a id="l06356" name="l06356"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aafdc2a6cfbcecedec25e64bcbd6c09c6"> 6356</a></span><span class="preprocessor"> #define AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )</span></div>
|
|
<div class="line"><a id="l06357" name="l06357"></a><span class="lineno"> 6357</span> </div>
|
|
<div class="line"><a id="l06358" name="l06358"></a><span class="lineno"> 6358</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE) </span><span class="comment">// ^^ unprefixed, implemented | vv unprefixed, disabled</span></div>
|
|
<div class="line"><a id="l06359" name="l06359"></a><span class="lineno"> 6359</span> </div>
|
|
<div class="line"><a id="l06360" name="l06360"></a><span class="lineno"> 6360</span><span class="preprocessor"> #define REQUIRE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06361" name="l06361"></a><span class="lineno"> 6361</span><span class="preprocessor"> #define REQUIRE_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06362" name="l06362"></a><span class="lineno"> 6362</span> </div>
|
|
<div class="line"><a id="l06363" name="l06363"></a><span class="lineno"> 6363</span><span class="preprocessor"> #define REQUIRE_THROWS( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06364" name="l06364"></a><span class="lineno"> 6364</span><span class="preprocessor"> #define REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06365" name="l06365"></a><span class="lineno"> 6365</span><span class="preprocessor"> #define REQUIRE_NOTHROW( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06366" name="l06366"></a><span class="lineno"> 6366</span> </div>
|
|
<div class="line"><a id="l06367" name="l06367"></a><span class="lineno"> 6367</span><span class="preprocessor"> #define CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06368" name="l06368"></a><span class="lineno"> 6368</span><span class="preprocessor"> #define CHECK_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06369" name="l06369"></a><span class="lineno"> 6369</span><span class="preprocessor"> #define CHECKED_IF( ... ) if (__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06370" name="l06370"></a><span class="lineno"> 6370</span><span class="preprocessor"> #define CHECKED_ELSE( ... ) if (!(__VA_ARGS__))</span></div>
|
|
<div class="line"><a id="l06371" name="l06371"></a><span class="lineno"> 6371</span><span class="preprocessor"> #define CHECK_NOFAIL( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06372" name="l06372"></a><span class="lineno"> 6372</span> </div>
|
|
<div class="line"><a id="l06373" name="l06373"></a><span class="lineno"> 6373</span><span class="preprocessor"> #define CHECK_THROWS( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06374" name="l06374"></a><span class="lineno"> 6374</span><span class="preprocessor"> #define CHECK_THROWS_AS( expr, exceptionType ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06375" name="l06375"></a><span class="lineno"> 6375</span><span class="preprocessor"> #define CHECK_NOTHROW( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06376" name="l06376"></a><span class="lineno"> 6376</span> </div>
|
|
<div class="line"><a id="l06377" name="l06377"></a><span class="lineno"> 6377</span><span class="preprocessor"> #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), __VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06378" name="l06378"></a><span class="lineno"> 6378</span><span class="preprocessor"> #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ))</span></div>
|
|
<div class="line"><a id="l06379" name="l06379"></a><span class="lineno"> 6379</span><span class="preprocessor"> #define METHOD_AS_TEST_CASE( method, ... )</span></div>
|
|
<div class="line"><a id="l06380" name="l06380"></a><span class="lineno"> 6380</span><span class="preprocessor"> #define TEST_CASE_PERSISTENT_FIXTURE( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), __VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06381" name="l06381"></a><span class="lineno"> 6381</span><span class="preprocessor"> #define REGISTER_TEST_CASE( Function, ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06382" name="l06382"></a><span class="lineno"> 6382</span><span class="preprocessor"> #define SECTION( ... )</span></div>
|
|
<div class="line"><a id="l06383" name="l06383"></a><span class="lineno"> 6383</span><span class="preprocessor"> #define DYNAMIC_SECTION( ... )</span></div>
|
|
<div class="line"><a id="l06384" name="l06384"></a><span class="lineno"> 6384</span><span class="preprocessor"> #define FAIL( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06385" name="l06385"></a><span class="lineno"> 6385</span><span class="preprocessor"> #define FAIL_CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06386" name="l06386"></a><span class="lineno"> 6386</span><span class="preprocessor"> #define SUCCEED( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06387" name="l06387"></a><span class="lineno"> 6387</span><span class="preprocessor"> #define SKIP( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06388" name="l06388"></a><span class="lineno"> 6388</span> </div>
|
|
<div class="line"><a id="l06389" name="l06389"></a><span class="lineno"> 6389</span><span class="preprocessor"> #define STATIC_REQUIRE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06390" name="l06390"></a><span class="lineno"> 6390</span><span class="preprocessor"> #define STATIC_REQUIRE_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06391" name="l06391"></a><span class="lineno"> 6391</span><span class="preprocessor"> #define STATIC_CHECK( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06392" name="l06392"></a><span class="lineno"> 6392</span><span class="preprocessor"> #define STATIC_CHECK_FALSE( ... ) (void)(0)</span></div>
|
|
<div class="line"><a id="l06393" name="l06393"></a><span class="lineno"> 6393</span> </div>
|
|
<div class="line"><a id="l06394" name="l06394"></a><span class="lineno"> 6394</span> <span class="comment">// "BDD-style" convenience wrappers</span></div>
|
|
<div class="line"><a id="l06395" name="l06395"></a><span class="lineno"> 6395</span><span class="preprocessor"> #define SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ) )</span></div>
|
|
<div class="line"><a id="l06396" name="l06396"></a><span class="lineno"> 6396</span><span class="preprocessor"> #define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEST_ ), className )</span></div>
|
|
<div class="line"><a id="l06397" name="l06397"></a><span class="lineno"> 6397</span> </div>
|
|
<div class="line"><a id="l06398" name="l06398"></a><span class="lineno"> 6398</span><span class="preprocessor"> #define GIVEN( desc )</span></div>
|
|
<div class="line"><a id="l06399" name="l06399"></a><span class="lineno"> 6399</span><span class="preprocessor"> #define AND_GIVEN( desc )</span></div>
|
|
<div class="line"><a id="l06400" name="l06400"></a><span class="lineno"> 6400</span><span class="preprocessor"> #define WHEN( desc )</span></div>
|
|
<div class="line"><a id="l06401" name="l06401"></a><span class="lineno"> 6401</span><span class="preprocessor"> #define AND_WHEN( desc )</span></div>
|
|
<div class="line"><a id="l06402" name="l06402"></a><span class="lineno"> 6402</span><span class="preprocessor"> #define THEN( desc )</span></div>
|
|
<div class="line"><a id="l06403" name="l06403"></a><span class="lineno"> 6403</span><span class="preprocessor"> #define AND_THEN( desc )</span></div>
|
|
<div class="line"><a id="l06404" name="l06404"></a><span class="lineno"> 6404</span> </div>
|
|
<div class="line"><a id="l06405" name="l06405"></a><span class="lineno"> 6405</span><span class="preprocessor">#endif </span><span class="comment">// ^^ unprefixed, disabled</span></div>
|
|
<div class="line"><a id="l06406" name="l06406"></a><span class="lineno"> 6406</span> </div>
|
|
<div class="line"><a id="l06407" name="l06407"></a><span class="lineno"> 6407</span><span class="comment">// end of user facing macros</span></div>
|
|
<div class="line"><a id="l06408" name="l06408"></a><span class="lineno"> 6408</span> </div>
|
|
<div class="line"><a id="l06409" name="l06409"></a><span class="lineno"> 6409</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06410" name="l06410"></a><span class="lineno"> 6410</span> </div>
|
|
<div class="line"><a id="l06411" name="l06411"></a><span class="lineno"> 6411</span> </div>
|
|
<div class="line"><a id="l06412" name="l06412"></a><span class="lineno"> 6412</span><span class="preprocessor">#ifndef CATCH_TEMPLATE_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06413" name="l06413"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1e76d0200887da64f7a828029766168c"> 6413</a></span><span class="preprocessor">#define CATCH_TEMPLATE_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06414" name="l06414"></a><span class="lineno"> 6414</span> </div>
|
|
<div class="line"><a id="l06415" name="l06415"></a><span class="lineno"> 6415</span> </div>
|
|
<div class="line"><a id="l06416" name="l06416"></a><span class="lineno"> 6416</span> </div>
|
|
<div class="line"><a id="l06417" name="l06417"></a><span class="lineno"> 6417</span><span class="preprocessor">#ifndef CATCH_PREPROCESSOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06418" name="l06418"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1647c92d990ae5fddb265193ca743c61"> 6418</a></span><span class="preprocessor">#define CATCH_PREPROCESSOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06419" name="l06419"></a><span class="lineno"> 6419</span> </div>
|
|
<div class="line"><a id="l06420" name="l06420"></a><span class="lineno"> 6420</span> </div>
|
|
<div class="line"><a id="l06421" name="l06421"></a><span class="lineno"> 6421</span><span class="preprocessor">#if defined(__GNUC__)</span></div>
|
|
<div class="line"><a id="l06422" name="l06422"></a><span class="lineno"> 6422</span><span class="comment">// We need to silence "empty __VA_ARGS__ warning", and using just _Pragma does not work</span></div>
|
|
<div class="line"><a id="l06423" name="l06423"></a><span class="lineno"> 6423</span><span class="preprocessor">#pragma GCC system_header</span></div>
|
|
<div class="line"><a id="l06424" name="l06424"></a><span class="lineno"> 6424</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06425" name="l06425"></a><span class="lineno"> 6425</span> </div>
|
|
<div class="line"><a id="l06426" name="l06426"></a><span class="lineno"> 6426</span> </div>
|
|
<div class="line"><a id="l06427" name="l06427"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aedfa83a9b9671b2f3ce5d64207eab45f"> 6427</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__</span></div>
|
|
<div class="line"><a id="l06428" name="l06428"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad1cc1127b3a8ed84d336fd86c25571a9"> 6428</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06429" name="l06429"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2a7ccfd6ceda0c723d1c81ed0a8ea7aa"> 6429</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06430" name="l06430"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac5ead3b79069ca9b5de9cad80029bc71"> 6430</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06431" name="l06431"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7738534acacfd54ef5b9f89cf07fa16d"> 6431</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06432" name="l06432"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a761d2ca7a5b0393ae7a6edf086a9c3da"> 6432</a></span><span class="preprocessor">#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06433" name="l06433"></a><span class="lineno"> 6433</span> </div>
|
|
<div class="line"><a id="l06434" name="l06434"></a><span class="lineno"> 6434</span><span class="preprocessor">#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06435" name="l06435"></a><span class="lineno"> 6435</span><span class="preprocessor">#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__</span></div>
|
|
<div class="line"><a id="l06436" name="l06436"></a><span class="lineno"> 6436</span><span class="comment">// MSVC needs more evaluations</span></div>
|
|
<div class="line"><a id="l06437" name="l06437"></a><span class="lineno"> 6437</span><span class="preprocessor">#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06438" name="l06438"></a><span class="lineno"> 6438</span><span class="preprocessor">#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__))</span></div>
|
|
<div class="line"><a id="l06439" name="l06439"></a><span class="lineno"> 6439</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06440" name="l06440"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae3ce5d9c8e50eba755111a19a62432e5"> 6440</a></span><span class="preprocessor">#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06441" name="l06441"></a><span class="lineno"> 6441</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06442" name="l06442"></a><span class="lineno"> 6442</span> </div>
|
|
<div class="line"><a id="l06443" name="l06443"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aebb9e7be881ac3dcd10db9fb45830649"> 6443</a></span><span class="preprocessor">#define CATCH_REC_END(...)</span></div>
|
|
<div class="line"><a id="l06444" name="l06444"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab469d9696504fd14e36fd1d8b6e47b7f"> 6444</a></span><span class="preprocessor">#define CATCH_REC_OUT</span></div>
|
|
<div class="line"><a id="l06445" name="l06445"></a><span class="lineno"> 6445</span> </div>
|
|
<div class="line"><a id="l06446" name="l06446"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8ac224562b8423a7c07e368216d0f0e9"> 6446</a></span><span class="preprocessor">#define CATCH_EMPTY()</span></div>
|
|
<div class="line"><a id="l06447" name="l06447"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a83c1ab15f3d715f25fe504c114cf6144"> 6447</a></span><span class="preprocessor">#define CATCH_DEFER(id) id CATCH_EMPTY()</span></div>
|
|
<div class="line"><a id="l06448" name="l06448"></a><span class="lineno"> 6448</span> </div>
|
|
<div class="line"><a id="l06449" name="l06449"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa335d39d6fdb7e20c94edaa4de21d1a3"> 6449</a></span><span class="preprocessor">#define CATCH_REC_GET_END2() 0, CATCH_REC_END</span></div>
|
|
<div class="line"><a id="l06450" name="l06450"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a476d332d716d4691f874195acea4931b"> 6450</a></span><span class="preprocessor">#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2</span></div>
|
|
<div class="line"><a id="l06451" name="l06451"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a536dd24bc8e72ec8eb14c3676f20c778"> 6451</a></span><span class="preprocessor">#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1</span></div>
|
|
<div class="line"><a id="l06452" name="l06452"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae25889c34b72704724f5797b6103c463"> 6452</a></span><span class="preprocessor">#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT</span></div>
|
|
<div class="line"><a id="l06453" name="l06453"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0ddf3b75cc3780765a2cb551d6536721"> 6453</a></span><span class="preprocessor">#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0)</span></div>
|
|
<div class="line"><a id="l06454" name="l06454"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abaddf93f755cea9e20aee254aa566adf"> 6454</a></span><span class="preprocessor">#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next)</span></div>
|
|
<div class="line"><a id="l06455" name="l06455"></a><span class="lineno"> 6455</span> </div>
|
|
<div class="line"><a id="l06456" name="l06456"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3e07fd613c41bd44cb4bd14fccc3c388"> 6456</a></span><span class="preprocessor">#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06457" name="l06457"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abedd1ae08e12478704233e9bf29e0fe9"> 6457</a></span><span class="preprocessor">#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06458" name="l06458"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abe3c205d4ba8406d45439abb91366ce9"> 6458</a></span><span class="preprocessor">#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06459" name="l06459"></a><span class="lineno"> 6459</span> </div>
|
|
<div class="line"><a id="l06460" name="l06460"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aea894953d28c5ed83e59ce6c74d0a665"> 6460</a></span><span class="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__ )</span></div>
|
|
<div class="line"><a id="l06461" name="l06461"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#abbcff29ced4d413bc121f7b761558c16"> 6461</a></span><span class="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__ )</span></div>
|
|
<div class="line"><a id="l06462" name="l06462"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0c2dd548d178fbc2202ecd74ce4be91b"> 6462</a></span><span class="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__ )</span></div>
|
|
<div class="line"><a id="l06463" name="l06463"></a><span class="lineno"> 6463</span> </div>
|
|
<div class="line"><a id="l06464" name="l06464"></a><span class="lineno"> 6464</span><span class="comment">// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results,</span></div>
|
|
<div class="line"><a id="l06465" name="l06465"></a><span class="lineno"> 6465</span><span class="comment">// and passes userdata as the first parameter to each invocation,</span></div>
|
|
<div class="line"><a id="l06466" name="l06466"></a><span class="lineno"> 6466</span><span class="comment">// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c)</span></div>
|
|
<div class="line"><a id="l06467" name="l06467"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8e404d42a6d0402698c1d4d16e831d28"> 6467</a></span><span class="preprocessor">#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))</span></div>
|
|
<div class="line"><a id="l06468" name="l06468"></a><span class="lineno"> 6468</span> </div>
|
|
<div class="line"><a id="l06469" name="l06469"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a060f5fa141c247b4d07dfe9bf3c54079"> 6469</a></span><span class="preprocessor">#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))</span></div>
|
|
<div class="line"><a id="l06470" name="l06470"></a><span class="lineno"> 6470</span> </div>
|
|
<div class="line"><a id="l06471" name="l06471"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a13733e49e752d29b735e94d9e72c7d6b"> 6471</a></span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06472" name="l06472"></a><span class="lineno"> 6472</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06473" name="l06473"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6fedc6934bac0e22dbbd13aabf81ad3f"> 6473</a></span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__</span></div>
|
|
<div class="line"><a id="l06474" name="l06474"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa66562537dd49bc33e53f9aa01acedaf"> 6474</a></span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param))</span></div>
|
|
<div class="line"><a id="l06475" name="l06475"></a><span class="lineno"> 6475</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06476" name="l06476"></a><span class="lineno"> 6476</span><span class="comment">// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF</span></div>
|
|
<div class="line"><a id="l06477" name="l06477"></a><span class="lineno"> 6477</span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06478" name="l06478"></a><span class="lineno"> 6478</span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__</span></div>
|
|
<div class="line"><a id="l06479" name="l06479"></a><span class="lineno"> 6479</span><span class="preprocessor">#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1)</span></div>
|
|
<div class="line"><a id="l06480" name="l06480"></a><span class="lineno"> 6480</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06481" name="l06481"></a><span class="lineno"> 6481</span> </div>
|
|
<div class="line"><a id="l06482" name="l06482"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5d544d56630e5c6e293d49a825127646"> 6482</a></span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__</span></div>
|
|
<div class="line"><a id="l06483" name="l06483"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6b5bf9be0310bb60ec9738cbf4ea53f4"> 6483</a></span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name)</span></div>
|
|
<div class="line"><a id="l06484" name="l06484"></a><span class="lineno"> 6484</span> </div>
|
|
<div class="line"><a id="l06485" name="l06485"></a><span class="lineno"> 6485</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06486" name="l06486"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab0c28a0a25d0d138ca5f4049a1094227"> 6486</a></span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>())</span></div>
|
|
<div class="line"><a id="l06487" name="l06487"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a74ceed46879d878afcd12648df097264"> 6487</a></span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))</span></div>
|
|
<div class="line"><a id="l06488" name="l06488"></a><span class="lineno"> 6488</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06489" name="l06489"></a><span class="lineno"> 6489</span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>()))</span></div>
|
|
<div class="line"><a id="l06490" name="l06490"></a><span class="lineno"> 6490</span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)))</span></div>
|
|
<div class="line"><a id="l06491" name="l06491"></a><span class="lineno"> 6491</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06492" name="l06492"></a><span class="lineno"> 6492</span> </div>
|
|
<div class="foldopen" id="foldopen06493" data-start="" data-end="">
|
|
<div class="line"><a id="l06493" name="l06493"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3125bdc64f326e6c65f60e3d0b917e0e"> 6493</a></span><span class="preprocessor">#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\</span></div>
|
|
<div class="line"><a id="l06494" name="l06494"></a><span class="lineno"> 6494</span><span class="preprocessor"> CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06495" name="l06495"></a><span class="lineno"> 6495</span> </div>
|
|
<div class="line"><a id="l06496" name="l06496"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aaff4fdf9d9447a3e896ff3c940aa63bf"> 6496</a></span><span class="preprocessor">#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0)</span></div>
|
|
<div class="line"><a id="l06497" name="l06497"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad922f8cb04e51fa4d1fc7136c2170ec7"> 6497</a></span><span class="preprocessor">#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1)</span></div>
|
|
<div class="line"><a id="l06498" name="l06498"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3e122b37a4a905554e927a298e96ba4e"> 6498</a></span><span class="preprocessor">#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2)</span></div>
|
|
<div class="line"><a id="l06499" name="l06499"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad13badf823db63f70503f46977ff7664"> 6499</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06500" name="l06500"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a886c6ae574320d8aae6415985b19426c"> 6500</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06501" name="l06501"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a261dd3f6db0cd3199456d5be891bec22"> 6501</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06502" name="l06502"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4ff89b8d8438fa571ccebd4611679cb0"> 6502</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06503" name="l06503"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2bc5383346d063d8aa13169a86101f8a"> 6503</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06504" name="l06504"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aac325e60ff7ae083ea5378a57ad0853e"> 6504</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06505" name="l06505"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ad456e4d0700058feab367df4dfdb034a"> 6505</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06506" name="l06506"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#adda79d552d6615a64b064426fe5d8347"> 6506</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06507" name="l06507"></a><span class="lineno"> 6507</span> </div>
|
|
<div class="line"><a id="l06508" name="l06508"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a053a90e2d222ba1c12095556aa8db44a"> 6508</a></span><span class="preprocessor">#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N</span></div>
|
|
<div class="line"><a id="l06509" name="l06509"></a><span class="lineno"> 6509</span> </div>
|
|
<div class="foldopen" id="foldopen06510" data-start="" data-end="">
|
|
<div class="line"><a id="l06510" name="l06510"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aea71652955762dc6db3912ec66740b7a"> 6510</a></span><span class="preprocessor">#define INTERNAL_CATCH_TYPE_GEN\</span></div>
|
|
<div class="line"><a id="l06511" name="l06511"></a><span class="lineno"> 6511</span><span class="preprocessor"> template<typename...> struct TypeList {};\</span></div>
|
|
<div class="line"><a id="l06512" name="l06512"></a><span class="lineno"> 6512</span><span class="preprocessor"> template<typename...Ts>\</span></div>
|
|
<div class="line"><a id="l06513" name="l06513"></a><span class="lineno"> 6513</span><span class="preprocessor"> constexpr auto get_wrapper() noexcept -> TypeList<Ts...> { return {}; }\</span></div>
|
|
<div class="line"><a id="l06514" name="l06514"></a><span class="lineno"> 6514</span><span class="preprocessor"> template<template<typename...> class...> struct TemplateTypeList{};\</span></div>
|
|
<div class="line"><a id="l06515" name="l06515"></a><span class="lineno"> 6515</span><span class="preprocessor"> template<template<typename...> class...Cs>\</span></div>
|
|
<div class="line"><a id="l06516" name="l06516"></a><span class="lineno"> 6516</span><span class="preprocessor"> constexpr auto get_wrapper() noexcept -> TemplateTypeList<Cs...> { return {}; }\</span></div>
|
|
<div class="line"><a id="l06517" name="l06517"></a><span class="lineno"> 6517</span><span class="preprocessor"> template<typename...>\</span></div>
|
|
<div class="line"><a id="l06518" name="l06518"></a><span class="lineno"> 6518</span><span class="preprocessor"> struct append;\</span></div>
|
|
<div class="line"><a id="l06519" name="l06519"></a><span class="lineno"> 6519</span><span class="preprocessor"> template<typename...>\</span></div>
|
|
<div class="line"><a id="l06520" name="l06520"></a><span class="lineno"> 6520</span><span class="preprocessor"> struct rewrap;\</span></div>
|
|
<div class="line"><a id="l06521" name="l06521"></a><span class="lineno"> 6521</span><span class="preprocessor"> template<template<typename...> class, typename...>\</span></div>
|
|
<div class="line"><a id="l06522" name="l06522"></a><span class="lineno"> 6522</span><span class="preprocessor"> struct create;\</span></div>
|
|
<div class="line"><a id="l06523" name="l06523"></a><span class="lineno"> 6523</span><span class="preprocessor"> template<template<typename...> class, typename>\</span></div>
|
|
<div class="line"><a id="l06524" name="l06524"></a><span class="lineno"> 6524</span><span class="preprocessor"> struct convert;\</span></div>
|
|
<div class="line"><a id="l06525" name="l06525"></a><span class="lineno"> 6525</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06526" name="l06526"></a><span class="lineno"> 6526</span><span class="preprocessor"> template<typename T> \</span></div>
|
|
<div class="line"><a id="l06527" name="l06527"></a><span class="lineno"> 6527</span><span class="preprocessor"> struct append<T> { using type = T; };\</span></div>
|
|
<div class="line"><a id="l06528" name="l06528"></a><span class="lineno"> 6528</span><span class="preprocessor"> template< template<typename...> class L1, typename...E1, template<typename...> class L2, typename...E2, typename...Rest>\</span></div>
|
|
<div class="line"><a id="l06529" name="l06529"></a><span class="lineno"> 6529</span><span class="preprocessor"> struct append<L1<E1...>, L2<E2...>, Rest...> { using type = typename append<L1<E1...,E2...>, Rest...>::type; };\</span></div>
|
|
<div class="line"><a id="l06530" name="l06530"></a><span class="lineno"> 6530</span><span class="preprocessor"> template< template<typename...> class L1, typename...E1, typename...Rest>\</span></div>
|
|
<div class="line"><a id="l06531" name="l06531"></a><span class="lineno"> 6531</span><span class="preprocessor"> struct append<L1<E1...>, TypeList<mpl_::na>, Rest...> { using type = L1<E1...>; };\</span></div>
|
|
<div class="line"><a id="l06532" name="l06532"></a><span class="lineno"> 6532</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06533" name="l06533"></a><span class="lineno"> 6533</span><span class="preprocessor"> template< template<typename...> class Container, template<typename...> class List, typename...elems>\</span></div>
|
|
<div class="line"><a id="l06534" name="l06534"></a><span class="lineno"> 6534</span><span class="preprocessor"> struct rewrap<TemplateTypeList<Container>, List<elems...>> { using type = TypeList<Container<elems...>>; };\</span></div>
|
|
<div class="line"><a id="l06535" name="l06535"></a><span class="lineno"> 6535</span><span class="preprocessor"> template< template<typename...> class Container, template<typename...> class List, class...Elems, typename...Elements>\</span></div>
|
|
<div class="line"><a id="l06536" name="l06536"></a><span class="lineno"> 6536</span><span class="preprocessor"> struct rewrap<TemplateTypeList<Container>, List<Elems...>, Elements...> { using type = typename append<TypeList<Container<Elems...>>, typename rewrap<TemplateTypeList<Container>, Elements...>::type>::type; };\</span></div>
|
|
<div class="line"><a id="l06537" name="l06537"></a><span class="lineno"> 6537</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06538" name="l06538"></a><span class="lineno"> 6538</span><span class="preprocessor"> template<template <typename...> class Final, template< typename...> class...Containers, typename...Types>\</span></div>
|
|
<div class="line"><a id="l06539" name="l06539"></a><span class="lineno"> 6539</span><span class="preprocessor"> struct create<Final, TemplateTypeList<Containers...>, TypeList<Types...>> { using type = typename append<Final<>, typename rewrap<TemplateTypeList<Containers>, Types...>::type...>::type; };\</span></div>
|
|
<div class="line"><a id="l06540" name="l06540"></a><span class="lineno"> 6540</span><span class="preprocessor"> template<template <typename...> class Final, template <typename...> class List, typename...Ts>\</span></div>
|
|
<div class="line"><a id="l06541" name="l06541"></a><span class="lineno"> 6541</span><span class="preprocessor"> struct convert<Final, List<Ts...>> { using type = typename append<Final<>,TypeList<Ts>...>::type; };</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06542" name="l06542"></a><span class="lineno"> 6542</span> </div>
|
|
<div class="foldopen" id="foldopen06543" data-start="" data-end="">
|
|
<div class="line"><a id="l06543" name="l06543"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac74ba3aed32e3cfe16e9aaa7e5229fef"> 6543</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_1(signature, ...)\</span></div>
|
|
<div class="line"><a id="l06544" name="l06544"></a><span class="lineno"> 6544</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)> struct Nttp{};\</span></div>
|
|
<div class="line"><a id="l06545" name="l06545"></a><span class="lineno"> 6545</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06546" name="l06546"></a><span class="lineno"> 6546</span><span class="preprocessor"> constexpr auto get_wrapper() noexcept -> Nttp<__VA_ARGS__> { return {}; } \</span></div>
|
|
<div class="line"><a id="l06547" name="l06547"></a><span class="lineno"> 6547</span><span class="preprocessor"> template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...> struct NttpTemplateTypeList{};\</span></div>
|
|
<div class="line"><a id="l06548" name="l06548"></a><span class="lineno"> 6548</span><span class="preprocessor"> template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Cs>\</span></div>
|
|
<div class="line"><a id="l06549" name="l06549"></a><span class="lineno"> 6549</span><span class="preprocessor"> constexpr auto get_wrapper() noexcept -> NttpTemplateTypeList<Cs...> { return {}; } \</span></div>
|
|
<div class="line"><a id="l06550" name="l06550"></a><span class="lineno"> 6550</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06551" name="l06551"></a><span class="lineno"> 6551</span><span class="preprocessor"> template< template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class Container, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class List, INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06552" name="l06552"></a><span class="lineno"> 6552</span><span class="preprocessor"> struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>> { using type = TypeList<Container<__VA_ARGS__>>; };\</span></div>
|
|
<div class="line"><a id="l06553" name="l06553"></a><span class="lineno"> 6553</span><span class="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>\</span></div>
|
|
<div class="line"><a id="l06554" name="l06554"></a><span class="lineno"> 6554</span><span class="preprocessor"> struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>, Elements...> { using type = typename append<TypeList<Container<__VA_ARGS__>>, typename rewrap<NttpTemplateTypeList<Container>, Elements...>::type>::type; };\</span></div>
|
|
<div class="line"><a id="l06555" name="l06555"></a><span class="lineno"> 6555</span><span class="preprocessor"> template<template <typename...> class Final, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Containers, typename...Types>\</span></div>
|
|
<div class="line"><a id="l06556" name="l06556"></a><span class="lineno"> 6556</span><span class="preprocessor"> struct create<Final, NttpTemplateTypeList<Containers...>, TypeList<Types...>> { using type = typename append<Final<>, typename rewrap<NttpTemplateTypeList<Containers>, Types...>::type...>::type; };</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06557" name="l06557"></a><span class="lineno"> 6557</span> </div>
|
|
<div class="line"><a id="l06558" name="l06558"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4f7507c7b536901dbb97dea59df86078"> 6558</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST0(TestName)</span></div>
|
|
<div class="foldopen" id="foldopen06559" data-start="" data-end="">
|
|
<div class="line"><a id="l06559" name="l06559"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae9b9c3b580df7d3aa3df12e31d07b228"> 6559</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)\</span></div>
|
|
<div class="line"><a id="l06560" name="l06560"></a><span class="lineno"> 6560</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06561" name="l06561"></a><span class="lineno"> 6561</span><span class="preprocessor"> static void TestName()</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06562" data-start="" data-end="">
|
|
<div class="line"><a id="l06562" name="l06562"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa74256b09ddc9f24b9d5e99e6b8cd7f5"> 6562</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06563" name="l06563"></a><span class="lineno"> 6563</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06564" name="l06564"></a><span class="lineno"> 6564</span><span class="preprocessor"> static void TestName()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06565" name="l06565"></a><span class="lineno"> 6565</span> </div>
|
|
<div class="line"><a id="l06566" name="l06566"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a0687445db41b1402c3b63677f5fb855f"> 6566</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST0(TestName)</span></div>
|
|
<div class="foldopen" id="foldopen06567" data-start="" data-end="">
|
|
<div class="line"><a id="l06567" name="l06567"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9d259f87ac04160887d8dc58f223298b"> 6567</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)\</span></div>
|
|
<div class="line"><a id="l06568" name="l06568"></a><span class="lineno"> 6568</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06569" name="l06569"></a><span class="lineno"> 6569</span><span class="preprocessor"> static void TestName()</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06570" data-start="" data-end="">
|
|
<div class="line"><a id="l06570" name="l06570"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a700005dc1f5d4d1c9b4977dfbcc39553"> 6570</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)\</span></div>
|
|
<div class="line"><a id="l06571" name="l06571"></a><span class="lineno"> 6571</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06572" name="l06572"></a><span class="lineno"> 6572</span><span class="preprocessor"> static void TestName()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06573" name="l06573"></a><span class="lineno"> 6573</span> </div>
|
|
<div class="foldopen" id="foldopen06574" data-start="" data-end="">
|
|
<div class="line"><a id="l06574" name="l06574"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a46d03d475b2d70c812ae2fbb7c62e2e1"> 6574</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)\</span></div>
|
|
<div class="line"><a id="l06575" name="l06575"></a><span class="lineno"> 6575</span><span class="preprocessor"> template<typename Type>\</span></div>
|
|
<div class="line"><a id="l06576" name="l06576"></a><span class="lineno"> 6576</span><span class="preprocessor"> void reg_test(TypeList<Type>, Catch::NameAndTags nameAndTags)\</span></div>
|
|
<div class="line"><a id="l06577" name="l06577"></a><span class="lineno"> 6577</span><span class="preprocessor"> {\</span></div>
|
|
<div class="line"><a id="l06578" name="l06578"></a><span class="lineno"> 6578</span><span class="preprocessor"> Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<Type>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\</span></div>
|
|
<div class="line"><a id="l06579" name="l06579"></a><span class="lineno"> 6579</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06580" name="l06580"></a><span class="lineno"> 6580</span> </div>
|
|
<div class="foldopen" id="foldopen06581" data-start="" data-end="">
|
|
<div class="line"><a id="l06581" name="l06581"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3f4b5b59a0890d8f4b5ccde153f52b91"> 6581</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06582" name="l06582"></a><span class="lineno"> 6582</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06583" name="l06583"></a><span class="lineno"> 6583</span><span class="preprocessor"> void reg_test(Nttp<__VA_ARGS__>, Catch::NameAndTags nameAndTags)\</span></div>
|
|
<div class="line"><a id="l06584" name="l06584"></a><span class="lineno"> 6584</span><span class="preprocessor"> {\</span></div>
|
|
<div class="line"><a id="l06585" name="l06585"></a><span class="lineno"> 6585</span><span class="preprocessor"> Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<__VA_ARGS__>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\</span></div>
|
|
<div class="line"><a id="l06586" name="l06586"></a><span class="lineno"> 6586</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06587" name="l06587"></a><span class="lineno"> 6587</span> </div>
|
|
<div class="foldopen" id="foldopen06588" data-start="" data-end="">
|
|
<div class="line"><a id="l06588" name="l06588"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3ec09fcab86a0d09313b48d4e8275594"> 6588</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06589" name="l06589"></a><span class="lineno"> 6589</span><span class="preprocessor"> template<typename Type>\</span></div>
|
|
<div class="line"><a id="l06590" name="l06590"></a><span class="lineno"> 6590</span><span class="preprocessor"> void reg_test(TypeList<Type>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\</span></div>
|
|
<div class="line"><a id="l06591" name="l06591"></a><span class="lineno"> 6591</span><span class="preprocessor"> {\</span></div>
|
|
<div class="line"><a id="l06592" name="l06592"></a><span class="lineno"> 6592</span><span class="preprocessor"> Catch::AutoReg( Catch::makeTestInvoker(&TestName<Type>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\</span></div>
|
|
<div class="line"><a id="l06593" name="l06593"></a><span class="lineno"> 6593</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06594" name="l06594"></a><span class="lineno"> 6594</span> </div>
|
|
<div class="foldopen" id="foldopen06595" data-start="" data-end="">
|
|
<div class="line"><a id="l06595" name="l06595"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a50f42674ac12901035ad2357a85e160f"> 6595</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06596" name="l06596"></a><span class="lineno"> 6596</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\</span></div>
|
|
<div class="line"><a id="l06597" name="l06597"></a><span class="lineno"> 6597</span><span class="preprocessor"> void reg_test(Nttp<__VA_ARGS__>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\</span></div>
|
|
<div class="line"><a id="l06598" name="l06598"></a><span class="lineno"> 6598</span><span class="preprocessor"> {\</span></div>
|
|
<div class="line"><a id="l06599" name="l06599"></a><span class="lineno"> 6599</span><span class="preprocessor"> Catch::AutoReg( Catch::makeTestInvoker(&TestName<__VA_ARGS__>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\</span></div>
|
|
<div class="line"><a id="l06600" name="l06600"></a><span class="lineno"> 6600</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06601" name="l06601"></a><span class="lineno"> 6601</span> </div>
|
|
<div class="line"><a id="l06602" name="l06602"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a2101df7508291ca3898e52c34c40599b"> 6602</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0(TestName, ClassName)</span></div>
|
|
<div class="foldopen" id="foldopen06603" data-start="" data-end="">
|
|
<div class="line"><a id="l06603" name="l06603"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4378072081595eeb217cfa656cbcbfad"> 6603</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)\</span></div>
|
|
<div class="line"><a id="l06604" name="l06604"></a><span class="lineno"> 6604</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06605" name="l06605"></a><span class="lineno"> 6605</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<TestType> { \</span></div>
|
|
<div class="line"><a id="l06606" name="l06606"></a><span class="lineno"> 6606</span><span class="preprocessor"> void test();\</span></div>
|
|
<div class="line"><a id="l06607" name="l06607"></a><span class="lineno"> 6607</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06608" name="l06608"></a><span class="lineno"> 6608</span> </div>
|
|
<div class="foldopen" id="foldopen06609" data-start="" data-end="">
|
|
<div class="line"><a id="l06609" name="l06609"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3a61470086671485bf5f3d8139a8b379"> 6609</a></span><span class="preprocessor">#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06610" name="l06610"></a><span class="lineno"> 6610</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \</span></div>
|
|
<div class="line"><a id="l06611" name="l06611"></a><span class="lineno"> 6611</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<__VA_ARGS__> { \</span></div>
|
|
<div class="line"><a id="l06612" name="l06612"></a><span class="lineno"> 6612</span><span class="preprocessor"> void test();\</span></div>
|
|
<div class="line"><a id="l06613" name="l06613"></a><span class="lineno"> 6613</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06614" name="l06614"></a><span class="lineno"> 6614</span> </div>
|
|
<div class="line"><a id="l06615" name="l06615"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aabc65a509a1d132b7a5fe6c4320c82fc"> 6615</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0(TestName)</span></div>
|
|
<div class="foldopen" id="foldopen06616" data-start="" data-end="">
|
|
<div class="line"><a id="l06616" name="l06616"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ae0cccd56ac66f873543f3dede228dbe9"> 6616</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)\</span></div>
|
|
<div class="line"><a id="l06617" name="l06617"></a><span class="lineno"> 6617</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06618" name="l06618"></a><span class="lineno"> 6618</span><span class="preprocessor"> void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<TestType>::test()</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen06619" data-start="" data-end="">
|
|
<div class="line"><a id="l06619" name="l06619"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9c7bb282d50599e94b665ad7f9ffed31"> 6619</a></span><span class="preprocessor">#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)\</span></div>
|
|
<div class="line"><a id="l06620" name="l06620"></a><span class="lineno"> 6620</span><span class="preprocessor"> template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \</span></div>
|
|
<div class="line"><a id="l06621" name="l06621"></a><span class="lineno"> 6621</span><span class="preprocessor"> void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<__VA_ARGS__>::test()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06622" name="l06622"></a><span class="lineno"> 6622</span> </div>
|
|
<div class="line"><a id="l06623" name="l06623"></a><span class="lineno"> 6623</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06624" name="l06624"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6e4eddcee92aabb74a7fa182650307c3"> 6624</a></span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_0</span></div>
|
|
<div class="line"><a id="l06625" name="l06625"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a22d82768693e811fd08acca9c0e44726"> 6625</a></span><span class="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)</span></div>
|
|
<div class="line"><a id="l06626" name="l06626"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a871da5e60f2ec529a6df64220e9c0790"> 6626</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06627" name="l06627"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3df212478ac0ede0c8a0fe9b8e186c8f"> 6627</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06628" name="l06628"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a960369279996cfc00d2e1a913afd98e8"> 6628</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06629" name="l06629"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a534515713c8464b85add867ec4166ecf"> 6629</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06630" name="l06630"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a812cb39b5411a0f1a3ab2e91cb537f4c"> 6630</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06631" name="l06631"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a00d8d21b6aeab72bf51f5b7d14afd201"> 6631</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06632" name="l06632"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab71d7147401833586d6ef7c7db0cb463"> 6632</a></span><span class="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__)</span></div>
|
|
<div class="line"><a id="l06633" name="l06633"></a><span class="lineno"> 6633</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06634" name="l06634"></a><span class="lineno"> 6634</span><span class="preprocessor">#define INTERNAL_CATCH_NTTP_0(signature)</span></div>
|
|
<div class="line"><a id="l06635" name="l06635"></a><span class="lineno"> 6635</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06636" name="l06636"></a><span class="lineno"> 6636</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06637" name="l06637"></a><span class="lineno"> 6637</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06638" name="l06638"></a><span class="lineno"> 6638</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06639" name="l06639"></a><span class="lineno"> 6639</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06640" name="l06640"></a><span class="lineno"> 6640</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06641" name="l06641"></a><span class="lineno"> 6641</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06642" name="l06642"></a><span class="lineno"> 6642</span><span class="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__))</span></div>
|
|
<div class="line"><a id="l06643" name="l06643"></a><span class="lineno"> 6643</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06644" name="l06644"></a><span class="lineno"> 6644</span> </div>
|
|
<div class="line"><a id="l06645" name="l06645"></a><span class="lineno"> 6645</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_PREPROCESSOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06646" name="l06646"></a><span class="lineno"> 6646</span> </div>
|
|
<div class="line"><a id="l06647" name="l06647"></a><span class="lineno"> 6647</span> </div>
|
|
<div class="line"><a id="l06648" name="l06648"></a><span class="lineno"> 6648</span><span class="comment">// GCC 5 and older do not properly handle disabling unused-variable warning</span></div>
|
|
<div class="line"><a id="l06649" name="l06649"></a><span class="lineno"> 6649</span><span class="comment">// with a _Pragma. This means that we have to leak the suppression to the</span></div>
|
|
<div class="line"><a id="l06650" name="l06650"></a><span class="lineno"> 6650</span><span class="comment">// user code as well :-(</span></div>
|
|
<div class="line"><a id="l06651" name="l06651"></a><span class="lineno"> 6651</span><span class="preprocessor">#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 5</span></div>
|
|
<div class="line"><a id="l06652" name="l06652"></a><span class="lineno"> 6652</span><span class="preprocessor">#pragma GCC diagnostic ignored "-Wunused-variable"</span></div>
|
|
<div class="line"><a id="l06653" name="l06653"></a><span class="lineno"> 6653</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06654" name="l06654"></a><span class="lineno"> 6654</span> </div>
|
|
<div class="line"><a id="l06655" name="l06655"></a><span class="lineno"> 6655</span><span class="preprocessor">#if defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l06656" name="l06656"></a><span class="lineno"> 6656</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06657" name="l06657"></a><span class="lineno"> 6657</span><span class="preprocessor"> INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature))</span></div>
|
|
<div class="line"><a id="l06658" name="l06658"></a><span class="lineno"> 6658</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06659" name="l06659"></a><span class="lineno"> 6659</span><span class="preprocessor"> namespace{ \</span></div>
|
|
<div class="line"><a id="l06660" name="l06660"></a><span class="lineno"> 6660</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \</span></div>
|
|
<div class="line"><a id="l06661" name="l06661"></a><span class="lineno"> 6661</span><span class="preprocessor"> INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\</span></div>
|
|
<div class="line"><a id="l06662" name="l06662"></a><span class="lineno"> 6662</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06663" name="l06663"></a><span class="lineno"> 6663</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06664" name="l06664"></a><span class="lineno"> 6664</span><span class="preprocessor"> INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))</span></div>
|
|
<div class="line"><a id="l06665" name="l06665"></a><span class="lineno"> 6665</span> </div>
|
|
<div class="line"><a id="l06666" name="l06666"></a><span class="lineno"> 6666</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06667" name="l06667"></a><span class="lineno"> 6667</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \</span></div>
|
|
<div class="line"><a id="l06668" name="l06668"></a><span class="lineno"> 6668</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename TestType, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06669" name="l06669"></a><span class="lineno"> 6669</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06670" name="l06670"></a><span class="lineno"> 6670</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \</span></div>
|
|
<div class="line"><a id="l06671" name="l06671"></a><span class="lineno"> 6671</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename TestType, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06672" name="l06672"></a><span class="lineno"> 6672</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06673" name="l06673"></a><span class="lineno"> 6673</span> </div>
|
|
<div class="line"><a id="l06674" name="l06674"></a><span class="lineno"> 6674</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06675" name="l06675"></a><span class="lineno"> 6675</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \</span></div>
|
|
<div class="line"><a id="l06676" name="l06676"></a><span class="lineno"> 6676</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06677" name="l06677"></a><span class="lineno"> 6677</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06678" name="l06678"></a><span class="lineno"> 6678</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \</span></div>
|
|
<div class="line"><a id="l06679" name="l06679"></a><span class="lineno"> 6679</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06680" name="l06680"></a><span class="lineno"> 6680</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06681" name="l06681"></a><span class="lineno"> 6681</span> </div>
|
|
<div class="line"><a id="l06682" name="l06682"></a><span class="lineno"> 6682</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06683" name="l06683"></a><span class="lineno"> 6683</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \</span></div>
|
|
<div class="line"><a id="l06684" name="l06684"></a><span class="lineno"> 6684</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06685" name="l06685"></a><span class="lineno"> 6685</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06686" name="l06686"></a><span class="lineno"> 6686</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \</span></div>
|
|
<div class="line"><a id="l06687" name="l06687"></a><span class="lineno"> 6687</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06688" name="l06688"></a><span class="lineno"> 6688</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06689" name="l06689"></a><span class="lineno"> 6689</span> </div>
|
|
<div class="line"><a id="l06690" name="l06690"></a><span class="lineno"> 6690</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06691" name="l06691"></a><span class="lineno"> 6691</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06692" name="l06692"></a><span class="lineno"> 6692</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06693" name="l06693"></a><span class="lineno"> 6693</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06694" name="l06694"></a><span class="lineno"> 6694</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06695" name="l06695"></a><span class="lineno"> 6695</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06696" name="l06696"></a><span class="lineno"> 6696</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06697" name="l06697"></a><span class="lineno"> 6697</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06698" name="l06698"></a><span class="lineno"> 6698</span> </div>
|
|
<div class="line"><a id="l06699" name="l06699"></a><span class="lineno"> 6699</span></div>
|
|
<div class="foldopen" id="foldopen06701" data-start="" data-end="">
|
|
<div class="line"><a id="l06701" name="l06701"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7a9fab8f42ff86d3985c11b474efdaec"> 6701</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags, Signature, ... )\</span></div>
|
|
<div class="line"><a id="l06702" name="l06702"></a><span class="lineno"> 6702</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06703" name="l06703"></a><span class="lineno"> 6703</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06704" name="l06704"></a><span class="lineno"> 6704</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06705" name="l06705"></a><span class="lineno"> 6705</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06706" name="l06706"></a><span class="lineno"> 6706</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06707" name="l06707"></a><span class="lineno"> 6707</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06708" name="l06708"></a><span class="lineno"> 6708</span><span class="preprocessor"> INTERNAL_CATCH_DECLARE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature));\</span></div>
|
|
<div class="line"><a id="l06709" name="l06709"></a><span class="lineno"> 6709</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06710" name="l06710"></a><span class="lineno"> 6710</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\</span></div>
|
|
<div class="line"><a id="l06711" name="l06711"></a><span class="lineno"> 6711</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN\</span></div>
|
|
<div class="line"><a id="l06712" name="l06712"></a><span class="lineno"> 6712</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\</span></div>
|
|
<div class="line"><a id="l06713" name="l06713"></a><span class="lineno"> 6713</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_REG_GEN(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))\</span></div>
|
|
<div class="line"><a id="l06714" name="l06714"></a><span class="lineno"> 6714</span><span class="preprocessor"> template<typename...Types> \</span></div>
|
|
<div class="line"><a id="l06715" name="l06715"></a><span class="lineno"> 6715</span><span class="preprocessor"> struct TestName{\</span></div>
|
|
<div class="line"><a id="l06716" name="l06716"></a><span class="lineno"> 6716</span><span class="preprocessor"> TestName(){\</span></div>
|
|
<div class="line"><a id="l06717" name="l06717"></a><span class="lineno"> 6717</span><span class="preprocessor"> size_t index = 0; \</span></div>
|
|
<div class="line"><a id="l06718" name="l06718"></a><span class="lineno"> 6718</span><span class="preprocessor"> constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)}; </span><span class="comment">/* NOLINT(cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays,hicpp-avoid-c-arrays) */</span><span class="preprocessor">\</span></div>
|
|
<div class="line"><a id="l06719" name="l06719"></a><span class="lineno"> 6719</span><span class="preprocessor"> using expander = size_t[]; </span><span class="comment">/* NOLINT(cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays,hicpp-avoid-c-arrays) */</span><span class="preprocessor">\</span></div>
|
|
<div class="line"><a id="l06720" name="l06720"></a><span class="lineno"> 6720</span><span class="preprocessor"> (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06721" name="l06721"></a><span class="lineno"> 6721</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06722" name="l06722"></a><span class="lineno"> 6722</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06723" name="l06723"></a><span class="lineno"> 6723</span><span class="preprocessor"> static const int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\</span></div>
|
|
<div class="line"><a id="l06724" name="l06724"></a><span class="lineno"> 6724</span><span class="preprocessor"> TestName<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\</span></div>
|
|
<div class="line"><a id="l06725" name="l06725"></a><span class="lineno"> 6725</span><span class="preprocessor"> return 0;\</span></div>
|
|
<div class="line"><a id="l06726" name="l06726"></a><span class="lineno"> 6726</span><span class="preprocessor"> }();\</span></div>
|
|
<div class="line"><a id="l06727" name="l06727"></a><span class="lineno"> 6727</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06728" name="l06728"></a><span class="lineno"> 6728</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06729" name="l06729"></a><span class="lineno"> 6729</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06730" name="l06730"></a><span class="lineno"> 6730</span><span class="preprocessor"> INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06731" name="l06731"></a><span class="lineno"> 6731</span> </div>
|
|
<div class="line"><a id="l06732" name="l06732"></a><span class="lineno"> 6732</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06733" data-start="" data-end="">
|
|
<div class="line"><a id="l06733" name="l06733"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8190f00b563c3efb52f8057be41db45f"> 6733</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \</span></div>
|
|
<div class="line"><a id="l06734" name="l06734"></a><span class="lineno"> 6734</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename TestType, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06735" name="l06735"></a><span class="lineno"> 6735</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06736" name="l06736"></a><span class="lineno"> 6736</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \</span></div>
|
|
<div class="line"><a id="l06737" name="l06737"></a><span class="lineno"> 6737</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename TestType, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06738" name="l06738"></a><span class="lineno"> 6738</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06739" name="l06739"></a><span class="lineno"> 6739</span> </div>
|
|
<div class="line"><a id="l06740" name="l06740"></a><span class="lineno"> 6740</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06741" data-start="" data-end="">
|
|
<div class="line"><a id="l06741" name="l06741"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#acdd7766753f3768c537a9a0747dc15fc"> 6741</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \</span></div>
|
|
<div class="line"><a id="l06742" name="l06742"></a><span class="lineno"> 6742</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06743" name="l06743"></a><span class="lineno"> 6743</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06744" name="l06744"></a><span class="lineno"> 6744</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \</span></div>
|
|
<div class="line"><a id="l06745" name="l06745"></a><span class="lineno"> 6745</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06746" name="l06746"></a><span class="lineno"> 6746</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06747" name="l06747"></a><span class="lineno"> 6747</span> </div>
|
|
<div class="foldopen" id="foldopen06748" data-start="" data-end="">
|
|
<div class="line"><a id="l06748" name="l06748"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a52cf4aaf39fe85c5af878c432296a46d"> 6748</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList) \</span></div>
|
|
<div class="line"><a id="l06749" name="l06749"></a><span class="lineno"> 6749</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06750" name="l06750"></a><span class="lineno"> 6750</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06751" name="l06751"></a><span class="lineno"> 6751</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06752" name="l06752"></a><span class="lineno"> 6752</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06753" name="l06753"></a><span class="lineno"> 6753</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06754" name="l06754"></a><span class="lineno"> 6754</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06755" name="l06755"></a><span class="lineno"> 6755</span><span class="preprocessor"> template<typename TestType> static void TestFuncName(); \</span></div>
|
|
<div class="line"><a id="l06756" name="l06756"></a><span class="lineno"> 6756</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06757" name="l06757"></a><span class="lineno"> 6757</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \</span></div>
|
|
<div class="line"><a id="l06758" name="l06758"></a><span class="lineno"> 6758</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN \</span></div>
|
|
<div class="line"><a id="l06759" name="l06759"></a><span class="lineno"> 6759</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature)) \</span></div>
|
|
<div class="line"><a id="l06760" name="l06760"></a><span class="lineno"> 6760</span><span class="preprocessor"> template<typename... Types> \</span></div>
|
|
<div class="line"><a id="l06761" name="l06761"></a><span class="lineno"> 6761</span><span class="preprocessor"> struct TestName { \</span></div>
|
|
<div class="line"><a id="l06762" name="l06762"></a><span class="lineno"> 6762</span><span class="preprocessor"> void reg_tests() { \</span></div>
|
|
<div class="line"><a id="l06763" name="l06763"></a><span class="lineno"> 6763</span><span class="preprocessor"> size_t index = 0; \</span></div>
|
|
<div class="line"><a id="l06764" name="l06764"></a><span class="lineno"> 6764</span><span class="preprocessor"> using expander = size_t[]; \</span></div>
|
|
<div class="line"><a id="l06765" name="l06765"></a><span class="lineno"> 6765</span><span class="preprocessor"> constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\</span></div>
|
|
<div class="line"><a id="l06766" name="l06766"></a><span class="lineno"> 6766</span><span class="preprocessor"> constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\</span></div>
|
|
<div class="line"><a id="l06767" name="l06767"></a><span class="lineno"> 6767</span><span class="preprocessor"> constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\</span></div>
|
|
<div class="line"><a id="l06768" name="l06768"></a><span class="lineno"> 6768</span><span class="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++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor">\</span></div>
|
|
<div class="line"><a id="l06769" name="l06769"></a><span class="lineno"> 6769</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06770" name="l06770"></a><span class="lineno"> 6770</span><span class="preprocessor"> }; \</span></div>
|
|
<div class="line"><a id="l06771" name="l06771"></a><span class="lineno"> 6771</span><span class="preprocessor"> static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \</span></div>
|
|
<div class="line"><a id="l06772" name="l06772"></a><span class="lineno"> 6772</span><span class="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; \</span></div>
|
|
<div class="line"><a id="l06773" name="l06773"></a><span class="lineno"> 6773</span><span class="preprocessor"> TestInit t; \</span></div>
|
|
<div class="line"><a id="l06774" name="l06774"></a><span class="lineno"> 6774</span><span class="preprocessor"> t.reg_tests(); \</span></div>
|
|
<div class="line"><a id="l06775" name="l06775"></a><span class="lineno"> 6775</span><span class="preprocessor"> return 0; \</span></div>
|
|
<div class="line"><a id="l06776" name="l06776"></a><span class="lineno"> 6776</span><span class="preprocessor"> }(); \</span></div>
|
|
<div class="line"><a id="l06777" name="l06777"></a><span class="lineno"> 6777</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06778" name="l06778"></a><span class="lineno"> 6778</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06779" name="l06779"></a><span class="lineno"> 6779</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06780" name="l06780"></a><span class="lineno"> 6780</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06781" name="l06781"></a><span class="lineno"> 6781</span><span class="preprocessor"> static void TestFuncName()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06782" name="l06782"></a><span class="lineno"> 6782</span> </div>
|
|
<div class="line"><a id="l06783" name="l06783"></a><span class="lineno"> 6783</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06784" data-start="" data-end="">
|
|
<div class="line"><a id="l06784" name="l06784"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#acd8f967bc841a9ab05774e8863cf9506"> 6784</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\</span></div>
|
|
<div class="line"><a id="l06785" name="l06785"></a><span class="lineno"> 6785</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename T,__VA_ARGS__)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06786" name="l06786"></a><span class="lineno"> 6786</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06787" name="l06787"></a><span class="lineno"> 6787</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\</span></div>
|
|
<div class="line"><a id="l06788" name="l06788"></a><span class="lineno"> 6788</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, typename T, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06789" name="l06789"></a><span class="lineno"> 6789</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06790" name="l06790"></a><span class="lineno"> 6790</span> </div>
|
|
<div class="line"><a id="l06791" name="l06791"></a><span class="lineno"> 6791</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06792" data-start="" data-end="">
|
|
<div class="line"><a id="l06792" name="l06792"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab1e624e6e831f5f15df243f97bf7e962"> 6792</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\</span></div>
|
|
<div class="line"><a id="l06793" name="l06793"></a><span class="lineno"> 6793</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06794" name="l06794"></a><span class="lineno"> 6794</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06795" name="l06795"></a><span class="lineno"> 6795</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\</span></div>
|
|
<div class="line"><a id="l06796" name="l06796"></a><span class="lineno"> 6796</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, Signature, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06797" name="l06797"></a><span class="lineno"> 6797</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06798" name="l06798"></a><span class="lineno"> 6798</span> </div>
|
|
<div class="foldopen" id="foldopen06799" data-start="" data-end="">
|
|
<div class="line"><a id="l06799" name="l06799"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1ddeb0664108fbef4c50e5dab4dbc567"> 6799</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2(TestName, TestFunc, Name, Tags, TmplList)\</span></div>
|
|
<div class="line"><a id="l06800" name="l06800"></a><span class="lineno"> 6800</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06801" name="l06801"></a><span class="lineno"> 6801</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06802" name="l06802"></a><span class="lineno"> 6802</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06803" name="l06803"></a><span class="lineno"> 6803</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06804" name="l06804"></a><span class="lineno"> 6804</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06805" name="l06805"></a><span class="lineno"> 6805</span><span class="preprocessor"> template<typename TestType> static void TestFunc(); \</span></div>
|
|
<div class="line"><a id="l06806" name="l06806"></a><span class="lineno"> 6806</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06807" name="l06807"></a><span class="lineno"> 6807</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\</span></div>
|
|
<div class="line"><a id="l06808" name="l06808"></a><span class="lineno"> 6808</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN\</span></div>
|
|
<div class="line"><a id="l06809" name="l06809"></a><span class="lineno"> 6809</span><span class="preprocessor"> template<typename... Types> \</span></div>
|
|
<div class="line"><a id="l06810" name="l06810"></a><span class="lineno"> 6810</span><span class="preprocessor"> struct TestName { \</span></div>
|
|
<div class="line"><a id="l06811" name="l06811"></a><span class="lineno"> 6811</span><span class="preprocessor"> void reg_tests() { \</span></div>
|
|
<div class="line"><a id="l06812" name="l06812"></a><span class="lineno"> 6812</span><span class="preprocessor"> size_t index = 0; \</span></div>
|
|
<div class="line"><a id="l06813" name="l06813"></a><span class="lineno"> 6813</span><span class="preprocessor"> using expander = size_t[]; \</span></div>
|
|
<div class="line"><a id="l06814" name="l06814"></a><span class="lineno"> 6814</span><span class="preprocessor"> (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " INTERNAL_CATCH_STRINGIZE(TmplList) " - " + std::to_string(index), Tags } ), index++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor">\</span></div>
|
|
<div class="line"><a id="l06815" name="l06815"></a><span class="lineno"> 6815</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l06816" name="l06816"></a><span class="lineno"> 6816</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06817" name="l06817"></a><span class="lineno"> 6817</span><span class="preprocessor"> static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \</span></div>
|
|
<div class="line"><a id="l06818" name="l06818"></a><span class="lineno"> 6818</span><span class="preprocessor"> using TestInit = typename convert<TestName, TmplList>::type; \</span></div>
|
|
<div class="line"><a id="l06819" name="l06819"></a><span class="lineno"> 6819</span><span class="preprocessor"> TestInit t; \</span></div>
|
|
<div class="line"><a id="l06820" name="l06820"></a><span class="lineno"> 6820</span><span class="preprocessor"> t.reg_tests(); \</span></div>
|
|
<div class="line"><a id="l06821" name="l06821"></a><span class="lineno"> 6821</span><span class="preprocessor"> return 0; \</span></div>
|
|
<div class="line"><a id="l06822" name="l06822"></a><span class="lineno"> 6822</span><span class="preprocessor"> }(); \</span></div>
|
|
<div class="line"><a id="l06823" name="l06823"></a><span class="lineno"> 6823</span><span class="preprocessor"> }}\</span></div>
|
|
<div class="line"><a id="l06824" name="l06824"></a><span class="lineno"> 6824</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06825" name="l06825"></a><span class="lineno"> 6825</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06826" name="l06826"></a><span class="lineno"> 6826</span><span class="preprocessor"> static void TestFunc()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06827" name="l06827"></a><span class="lineno"> 6827</span> </div>
|
|
<div class="foldopen" id="foldopen06828" data-start="" data-end="">
|
|
<div class="line"><a id="l06828" name="l06828"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac9ef0e27a1dcfda5fe253f1767e2fab8"> 6828</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(Name, Tags, TmplList) \</span></div>
|
|
<div class="line"><a id="l06829" name="l06829"></a><span class="lineno"> 6829</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), Name, Tags, TmplList )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06830" name="l06830"></a><span class="lineno"> 6830</span> </div>
|
|
<div class="line"><a id="l06831" name="l06831"></a><span class="lineno"> 6831</span> </div>
|
|
<div class="foldopen" id="foldopen06832" data-start="" data-end="">
|
|
<div class="line"><a id="l06832" name="l06832"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a8d7a6f4bac6e19a2d5ed5b35fd0a7efb"> 6832</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06833" name="l06833"></a><span class="lineno"> 6833</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06834" name="l06834"></a><span class="lineno"> 6834</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06835" name="l06835"></a><span class="lineno"> 6835</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06836" name="l06836"></a><span class="lineno"> 6836</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06837" name="l06837"></a><span class="lineno"> 6837</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06838" name="l06838"></a><span class="lineno"> 6838</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06839" name="l06839"></a><span class="lineno"> 6839</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \</span></div>
|
|
<div class="line"><a id="l06840" name="l06840"></a><span class="lineno"> 6840</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN\</span></div>
|
|
<div class="line"><a id="l06841" name="l06841"></a><span class="lineno"> 6841</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\</span></div>
|
|
<div class="line"><a id="l06842" name="l06842"></a><span class="lineno"> 6842</span><span class="preprocessor"> INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\</span></div>
|
|
<div class="line"><a id="l06843" name="l06843"></a><span class="lineno"> 6843</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))\</span></div>
|
|
<div class="line"><a id="l06844" name="l06844"></a><span class="lineno"> 6844</span><span class="preprocessor"> template<typename...Types> \</span></div>
|
|
<div class="line"><a id="l06845" name="l06845"></a><span class="lineno"> 6845</span><span class="preprocessor"> struct TestNameClass{\</span></div>
|
|
<div class="line"><a id="l06846" name="l06846"></a><span class="lineno"> 6846</span><span class="preprocessor"> TestNameClass(){\</span></div>
|
|
<div class="line"><a id="l06847" name="l06847"></a><span class="lineno"> 6847</span><span class="preprocessor"> size_t index = 0; \</span></div>
|
|
<div class="line"><a id="l06848" name="l06848"></a><span class="lineno"> 6848</span><span class="preprocessor"> constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\</span></div>
|
|
<div class="line"><a id="l06849" name="l06849"></a><span class="lineno"> 6849</span><span class="preprocessor"> using expander = size_t[];\</span></div>
|
|
<div class="line"><a id="l06850" name="l06850"></a><span class="lineno"> 6850</span><span class="preprocessor"> (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06851" name="l06851"></a><span class="lineno"> 6851</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06852" name="l06852"></a><span class="lineno"> 6852</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06853" name="l06853"></a><span class="lineno"> 6853</span><span class="preprocessor"> static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\</span></div>
|
|
<div class="line"><a id="l06854" name="l06854"></a><span class="lineno"> 6854</span><span class="preprocessor"> TestNameClass<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\</span></div>
|
|
<div class="line"><a id="l06855" name="l06855"></a><span class="lineno"> 6855</span><span class="preprocessor"> return 0;\</span></div>
|
|
<div class="line"><a id="l06856" name="l06856"></a><span class="lineno"> 6856</span><span class="preprocessor"> }();\</span></div>
|
|
<div class="line"><a id="l06857" name="l06857"></a><span class="lineno"> 6857</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06858" name="l06858"></a><span class="lineno"> 6858</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06859" name="l06859"></a><span class="lineno"> 6859</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06860" name="l06860"></a><span class="lineno"> 6860</span><span class="preprocessor"> INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06861" name="l06861"></a><span class="lineno"> 6861</span> </div>
|
|
<div class="line"><a id="l06862" name="l06862"></a><span class="lineno"> 6862</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06863" data-start="" data-end="">
|
|
<div class="line"><a id="l06863" name="l06863"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a582f90e5f7c36e9e69fff5f4c891ac29"> 6863</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \</span></div>
|
|
<div class="line"><a id="l06864" name="l06864"></a><span class="lineno"> 6864</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06865" name="l06865"></a><span class="lineno"> 6865</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06866" name="l06866"></a><span class="lineno"> 6866</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \</span></div>
|
|
<div class="line"><a id="l06867" name="l06867"></a><span class="lineno"> 6867</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06868" name="l06868"></a><span class="lineno"> 6868</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06869" name="l06869"></a><span class="lineno"> 6869</span> </div>
|
|
<div class="line"><a id="l06870" name="l06870"></a><span class="lineno"> 6870</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06871" data-start="" data-end="">
|
|
<div class="line"><a id="l06871" name="l06871"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab536a2ad12ea4a01b8037d0c953e1ddf"> 6871</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06872" name="l06872"></a><span class="lineno"> 6872</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06873" name="l06873"></a><span class="lineno"> 6873</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06874" name="l06874"></a><span class="lineno"> 6874</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \</span></div>
|
|
<div class="line"><a id="l06875" name="l06875"></a><span class="lineno"> 6875</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06876" name="l06876"></a><span class="lineno"> 6876</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06877" name="l06877"></a><span class="lineno"> 6877</span> </div>
|
|
<div class="foldopen" id="foldopen06878" data-start="" data-end="">
|
|
<div class="line"><a id="l06878" name="l06878"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa50cacf2bbca5f9ddd2625403e649799"> 6878</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\</span></div>
|
|
<div class="line"><a id="l06879" name="l06879"></a><span class="lineno"> 6879</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06880" name="l06880"></a><span class="lineno"> 6880</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06881" name="l06881"></a><span class="lineno"> 6881</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06882" name="l06882"></a><span class="lineno"> 6882</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06883" name="l06883"></a><span class="lineno"> 6883</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06884" name="l06884"></a><span class="lineno"> 6884</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06885" name="l06885"></a><span class="lineno"> 6885</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \</span></div>
|
|
<div class="line"><a id="l06886" name="l06886"></a><span class="lineno"> 6886</span><span class="preprocessor"> void test();\</span></div>
|
|
<div class="line"><a id="l06887" name="l06887"></a><span class="lineno"> 6887</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06888" name="l06888"></a><span class="lineno"> 6888</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06889" name="l06889"></a><span class="lineno"> 6889</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestNameClass) {\</span></div>
|
|
<div class="line"><a id="l06890" name="l06890"></a><span class="lineno"> 6890</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN \</span></div>
|
|
<div class="line"><a id="l06891" name="l06891"></a><span class="lineno"> 6891</span><span class="preprocessor"> INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\</span></div>
|
|
<div class="line"><a id="l06892" name="l06892"></a><span class="lineno"> 6892</span><span class="preprocessor"> template<typename...Types>\</span></div>
|
|
<div class="line"><a id="l06893" name="l06893"></a><span class="lineno"> 6893</span><span class="preprocessor"> struct TestNameClass{\</span></div>
|
|
<div class="line"><a id="l06894" name="l06894"></a><span class="lineno"> 6894</span><span class="preprocessor"> void reg_tests(){\</span></div>
|
|
<div class="line"><a id="l06895" name="l06895"></a><span class="lineno"> 6895</span><span class="preprocessor"> std::size_t index = 0;\</span></div>
|
|
<div class="line"><a id="l06896" name="l06896"></a><span class="lineno"> 6896</span><span class="preprocessor"> using expander = std::size_t[];\</span></div>
|
|
<div class="line"><a id="l06897" name="l06897"></a><span class="lineno"> 6897</span><span class="preprocessor"> constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\</span></div>
|
|
<div class="line"><a id="l06898" name="l06898"></a><span class="lineno"> 6898</span><span class="preprocessor"> constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\</span></div>
|
|
<div class="line"><a id="l06899" name="l06899"></a><span class="lineno"> 6899</span><span class="preprocessor"> constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\</span></div>
|
|
<div class="line"><a id="l06900" name="l06900"></a><span class="lineno"> 6900</span><span class="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++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06901" name="l06901"></a><span class="lineno"> 6901</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06902" name="l06902"></a><span class="lineno"> 6902</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06903" name="l06903"></a><span class="lineno"> 6903</span><span class="preprocessor"> static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\</span></div>
|
|
<div class="line"><a id="l06904" name="l06904"></a><span class="lineno"> 6904</span><span class="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;\</span></div>
|
|
<div class="line"><a id="l06905" name="l06905"></a><span class="lineno"> 6905</span><span class="preprocessor"> TestInit t;\</span></div>
|
|
<div class="line"><a id="l06906" name="l06906"></a><span class="lineno"> 6906</span><span class="preprocessor"> t.reg_tests();\</span></div>
|
|
<div class="line"><a id="l06907" name="l06907"></a><span class="lineno"> 6907</span><span class="preprocessor"> return 0;\</span></div>
|
|
<div class="line"><a id="l06908" name="l06908"></a><span class="lineno"> 6908</span><span class="preprocessor"> }(); \</span></div>
|
|
<div class="line"><a id="l06909" name="l06909"></a><span class="lineno"> 6909</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06910" name="l06910"></a><span class="lineno"> 6910</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06911" name="l06911"></a><span class="lineno"> 6911</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06912" name="l06912"></a><span class="lineno"> 6912</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06913" name="l06913"></a><span class="lineno"> 6913</span><span class="preprocessor"> void TestName<TestType>::test()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06914" name="l06914"></a><span class="lineno"> 6914</span> </div>
|
|
<div class="line"><a id="l06915" name="l06915"></a><span class="lineno"> 6915</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06916" data-start="" data-end="">
|
|
<div class="line"><a id="l06916" name="l06916"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a1a4839fc44923f817dec5694f0bd1f33"> 6916</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\</span></div>
|
|
<div class="line"><a id="l06917" name="l06917"></a><span class="lineno"> 6917</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06918" name="l06918"></a><span class="lineno"> 6918</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06919" name="l06919"></a><span class="lineno"> 6919</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\</span></div>
|
|
<div class="line"><a id="l06920" name="l06920"></a><span class="lineno"> 6920</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), ClassName, Name, Tags, typename T,__VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06921" name="l06921"></a><span class="lineno"> 6921</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06922" name="l06922"></a><span class="lineno"> 6922</span> </div>
|
|
<div class="line"><a id="l06923" name="l06923"></a><span class="lineno"> 6923</span><span class="preprocessor">#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="foldopen" id="foldopen06924" data-start="" data-end="">
|
|
<div class="line"><a id="l06924" name="l06924"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a09fd24fffbc23194f538de357e9714f7"> 6924</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\</span></div>
|
|
<div class="line"><a id="l06925" name="l06925"></a><span class="lineno"> 6925</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06926" name="l06926"></a><span class="lineno"> 6926</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l06927" name="l06927"></a><span class="lineno"> 6927</span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\</span></div>
|
|
<div class="line"><a id="l06928" name="l06928"></a><span class="lineno"> 6928</span><span class="preprocessor"> INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), ClassName, Name, Tags, Signature,__VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06929" name="l06929"></a><span class="lineno"> 6929</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l06930" name="l06930"></a><span class="lineno"> 6930</span> </div>
|
|
<div class="foldopen" id="foldopen06931" data-start="" data-end="">
|
|
<div class="line"><a id="l06931" name="l06931"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9f5b6affb41be524dcd4b28723ffcfc8"> 6931</a></span><span class="preprocessor"> #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, TmplList) \</span></div>
|
|
<div class="line"><a id="l06932" name="l06932"></a><span class="lineno"> 6932</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06933" name="l06933"></a><span class="lineno"> 6933</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06934" name="l06934"></a><span class="lineno"> 6934</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06935" name="l06935"></a><span class="lineno"> 6935</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06936" name="l06936"></a><span class="lineno"> 6936</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_COMMA_WARNINGS \</span></div>
|
|
<div class="line"><a id="l06937" name="l06937"></a><span class="lineno"> 6937</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06938" name="l06938"></a><span class="lineno"> 6938</span><span class="preprocessor"> struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \</span></div>
|
|
<div class="line"><a id="l06939" name="l06939"></a><span class="lineno"> 6939</span><span class="preprocessor"> void test();\</span></div>
|
|
<div class="line"><a id="l06940" name="l06940"></a><span class="lineno"> 6940</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06941" name="l06941"></a><span class="lineno"> 6941</span><span class="preprocessor"> namespace {\</span></div>
|
|
<div class="line"><a id="l06942" name="l06942"></a><span class="lineno"> 6942</span><span class="preprocessor"> namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \</span></div>
|
|
<div class="line"><a id="l06943" name="l06943"></a><span class="lineno"> 6943</span><span class="preprocessor"> INTERNAL_CATCH_TYPE_GEN\</span></div>
|
|
<div class="line"><a id="l06944" name="l06944"></a><span class="lineno"> 6944</span><span class="preprocessor"> template<typename...Types>\</span></div>
|
|
<div class="line"><a id="l06945" name="l06945"></a><span class="lineno"> 6945</span><span class="preprocessor"> struct TestNameClass{\</span></div>
|
|
<div class="line"><a id="l06946" name="l06946"></a><span class="lineno"> 6946</span><span class="preprocessor"> void reg_tests(){\</span></div>
|
|
<div class="line"><a id="l06947" name="l06947"></a><span class="lineno"> 6947</span><span class="preprocessor"> size_t index = 0;\</span></div>
|
|
<div class="line"><a id="l06948" name="l06948"></a><span class="lineno"> 6948</span><span class="preprocessor"> using expander = size_t[];\</span></div>
|
|
<div class="line"><a id="l06949" name="l06949"></a><span class="lineno"> 6949</span><span class="preprocessor"> (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName##_catch_sr, Catch::NameAndTags{ Name " - " INTERNAL_CATCH_STRINGIZE(TmplList) " - " + std::to_string(index), Tags } ), index++)... };</span><span class="comment">/* NOLINT */</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l06950" name="l06950"></a><span class="lineno"> 6950</span><span class="preprocessor"> }\</span></div>
|
|
<div class="line"><a id="l06951" name="l06951"></a><span class="lineno"> 6951</span><span class="preprocessor"> };\</span></div>
|
|
<div class="line"><a id="l06952" name="l06952"></a><span class="lineno"> 6952</span><span class="preprocessor"> static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\</span></div>
|
|
<div class="line"><a id="l06953" name="l06953"></a><span class="lineno"> 6953</span><span class="preprocessor"> using TestInit = typename convert<TestNameClass, TmplList>::type;\</span></div>
|
|
<div class="line"><a id="l06954" name="l06954"></a><span class="lineno"> 6954</span><span class="preprocessor"> TestInit t;\</span></div>
|
|
<div class="line"><a id="l06955" name="l06955"></a><span class="lineno"> 6955</span><span class="preprocessor"> t.reg_tests();\</span></div>
|
|
<div class="line"><a id="l06956" name="l06956"></a><span class="lineno"> 6956</span><span class="preprocessor"> return 0;\</span></div>
|
|
<div class="line"><a id="l06957" name="l06957"></a><span class="lineno"> 6957</span><span class="preprocessor"> }(); \</span></div>
|
|
<div class="line"><a id="l06958" name="l06958"></a><span class="lineno"> 6958</span><span class="preprocessor"> }}\</span></div>
|
|
<div class="line"><a id="l06959" name="l06959"></a><span class="lineno"> 6959</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l06960" name="l06960"></a><span class="lineno"> 6960</span><span class="preprocessor"> template<typename TestType> \</span></div>
|
|
<div class="line"><a id="l06961" name="l06961"></a><span class="lineno"> 6961</span><span class="preprocessor"> void TestName<TestType>::test()</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06962" name="l06962"></a><span class="lineno"> 6962</span> </div>
|
|
<div class="foldopen" id="foldopen06963" data-start="" data-end="">
|
|
<div class="line"><a id="l06963" name="l06963"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6e9c5f2b3bc07068ad3bd78d224989f3"> 6963</a></span><span class="preprocessor">#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags, TmplList) \</span></div>
|
|
<div class="line"><a id="l06964" name="l06964"></a><span class="lineno"> 6964</span><span class="preprocessor"> INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ), ClassName, Name, Tags, TmplList )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l06965" name="l06965"></a><span class="lineno"> 6965</span> </div>
|
|
<div class="line"><a id="l06966" name="l06966"></a><span class="lineno"> 6966</span> </div>
|
|
<div class="line"><a id="l06967" name="l06967"></a><span class="lineno"> 6967</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEMPLATE_TEST_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l06968" name="l06968"></a><span class="lineno"> 6968</span> </div>
|
|
<div class="line"><a id="l06969" name="l06969"></a><span class="lineno"> 6969</span> </div>
|
|
<div class="line"><a id="l06970" name="l06970"></a><span class="lineno"> 6970</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l06971" name="l06971"></a><span class="lineno"> 6971</span> </div>
|
|
<div class="line"><a id="l06972" name="l06972"></a><span class="lineno"> 6972</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06973" name="l06973"></a><span class="lineno"> 6973</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06974" name="l06974"></a><span class="lineno"> 6974</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06975" name="l06975"></a><span class="lineno"> 6975</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06976" name="l06976"></a><span class="lineno"> 6976</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06977" name="l06977"></a><span class="lineno"> 6977</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06978" name="l06978"></a><span class="lineno"> 6978</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06979" name="l06979"></a><span class="lineno"> 6979</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06980" name="l06980"></a><span class="lineno"> 6980</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06981" name="l06981"></a><span class="lineno"> 6981</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l06982" name="l06982"></a><span class="lineno"> 6982</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l06983" name="l06983"></a><span class="lineno"> 6983</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l06984" name="l06984"></a><span class="lineno"> 6984</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06985" name="l06985"></a><span class="lineno"> 6985</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06986" name="l06986"></a><span class="lineno"> 6986</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06987" name="l06987"></a><span class="lineno"> 6987</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06988" name="l06988"></a><span class="lineno"> 6988</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06989" name="l06989"></a><span class="lineno"> 6989</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06990" name="l06990"></a><span class="lineno"> 6990</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06991" name="l06991"></a><span class="lineno"> 6991</span><span class="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__ ) )</span></div>
|
|
<div class="line"><a id="l06992" name="l06992"></a><span class="lineno"> 6992</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06993" name="l06993"></a><span class="lineno"> 6993</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l06994" name="l06994"></a><span class="lineno"> 6994</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l06995" name="l06995"></a><span class="lineno"> 6995</span> </div>
|
|
<div class="line"><a id="l06996" name="l06996"></a><span class="lineno"> 6996</span><span class="preprocessor">#elif defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l06997" name="l06997"></a><span class="lineno"> 6997</span> </div>
|
|
<div class="line"><a id="l06998" name="l06998"></a><span class="lineno"> 6998</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l06999" name="l06999"></a><span class="lineno"> 6999</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07000" name="l07000"></a><span class="lineno"> 7000</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07001" name="l07001"></a><span class="lineno"> 7001</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07002" name="l07002"></a><span class="lineno"> 7002</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07003" name="l07003"></a><span class="lineno"> 7003</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l07004" name="l07004"></a><span class="lineno"> 7004</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) )</span></div>
|
|
<div class="line"><a id="l07005" name="l07005"></a><span class="lineno"> 7005</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) )</span></div>
|
|
<div class="line"><a id="l07006" name="l07006"></a><span class="lineno"> 7006</span><span class="preprocessor"> #define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07007" name="l07007"></a><span class="lineno"> 7007</span><span class="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__ ) )</span></div>
|
|
<div class="line"><a id="l07008" name="l07008"></a><span class="lineno"> 7008</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l07009" name="l07009"></a><span class="lineno"> 7009</span> </div>
|
|
<div class="line"><a id="l07010" name="l07010"></a><span class="lineno"> 7010</span> <span class="comment">// When disabled, these can be shared between proper preprocessor and MSVC preprocessor</span></div>
|
|
<div class="line"><a id="l07011" name="l07011"></a><span class="lineno"> 7011</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07012" name="l07012"></a><span class="lineno"> 7012</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07013" name="l07013"></a><span class="lineno"> 7013</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07014" name="l07014"></a><span class="lineno"> 7014</span><span class="preprocessor"> #define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07015" name="l07015"></a><span class="lineno"> 7015</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07016" name="l07016"></a><span class="lineno"> 7016</span><span class="preprocessor"> #define CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07017" name="l07017"></a><span class="lineno"> 7017</span> </div>
|
|
<div class="line"><a id="l07018" name="l07018"></a><span class="lineno"> 7018</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l07019" name="l07019"></a><span class="lineno"> 7019</span> </div>
|
|
<div class="line"><a id="l07020" name="l07020"></a><span class="lineno"> 7020</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l07021" name="l07021"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a9a88d21bfca0d58782cc5f0811801303"> 7021</a></span><span class="preprocessor"> #define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07022" name="l07022"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4286bffddeb38a4e793ef35b7555f474"> 7022</a></span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07023" name="l07023"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a5922ee8a997f9f6c5016b186f148b73b"> 7023</a></span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07024" name="l07024"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7b7cfca8f5e204e872ec31dc186957ac"> 7024</a></span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07025" name="l07025"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a76578a19e481e4ccdb928e68a17478d5"> 7025</a></span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07026" name="l07026"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a52bd728f9409ff8fc6a24d49282a1994"> 7026</a></span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07027" name="l07027"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a15aefc2b8f75059606bebf400a348870"> 7027</a></span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07028" name="l07028"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#af9e44fff2a2bdba1d66ee625e8ed126d"> 7028</a></span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07029" name="l07029"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6c5f7165be1abd8331be1a47a446f20a"> 7029</a></span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07030" name="l07030"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a00cdc7c1452d76b386c3b85f9cce80c0"> 7030</a></span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07031" name="l07031"></a><span class="lineno"> 7031</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l07032" name="l07032"></a><span class="lineno"> 7032</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07033" name="l07033"></a><span class="lineno"> 7033</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07034" name="l07034"></a><span class="lineno"> 7034</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07035" name="l07035"></a><span class="lineno"> 7035</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07036" name="l07036"></a><span class="lineno"> 7036</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07037" name="l07037"></a><span class="lineno"> 7037</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07038" name="l07038"></a><span class="lineno"> 7038</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07039" name="l07039"></a><span class="lineno"> 7039</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07040" name="l07040"></a><span class="lineno"> 7040</span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE( __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07041" name="l07041"></a><span class="lineno"> 7041</span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07042" name="l07042"></a><span class="lineno"> 7042</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l07043" name="l07043"></a><span class="lineno"> 7043</span> </div>
|
|
<div class="line"><a id="l07044" name="l07044"></a><span class="lineno"> 7044</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l07045" name="l07045"></a><span class="lineno"> 7045</span> </div>
|
|
<div class="line"><a id="l07046" name="l07046"></a><span class="lineno"> 7046</span><span class="preprocessor"> #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR</span></div>
|
|
<div class="line"><a id="l07047" name="l07047"></a><span class="lineno"> 7047</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07048" name="l07048"></a><span class="lineno"> 7048</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07049" name="l07049"></a><span class="lineno"> 7049</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07050" name="l07050"></a><span class="lineno"> 7050</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07051" name="l07051"></a><span class="lineno"> 7051</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l07052" name="l07052"></a><span class="lineno"> 7052</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) )</span></div>
|
|
<div class="line"><a id="l07053" name="l07053"></a><span class="lineno"> 7053</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) )</span></div>
|
|
<div class="line"><a id="l07054" name="l07054"></a><span class="lineno"> 7054</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07055" name="l07055"></a><span class="lineno"> 7055</span><span class="preprocessor"> #define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ ) )</span></div>
|
|
<div class="line"><a id="l07056" name="l07056"></a><span class="lineno"> 7056</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l07057" name="l07057"></a><span class="lineno"> 7057</span> </div>
|
|
<div class="line"><a id="l07058" name="l07058"></a><span class="lineno"> 7058</span> <span class="comment">// When disabled, these can be shared between proper preprocessor and MSVC preprocessor</span></div>
|
|
<div class="line"><a id="l07059" name="l07059"></a><span class="lineno"> 7059</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07060" name="l07060"></a><span class="lineno"> 7060</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07061" name="l07061"></a><span class="lineno"> 7061</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07062" name="l07062"></a><span class="lineno"> 7062</span><span class="preprocessor"> #define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07063" name="l07063"></a><span class="lineno"> 7063</span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE( ... ) TEMPLATE_TEST_CASE(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07064" name="l07064"></a><span class="lineno"> 7064</span><span class="preprocessor"> #define TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )</span></div>
|
|
<div class="line"><a id="l07065" name="l07065"></a><span class="lineno"> 7065</span> </div>
|
|
<div class="line"><a id="l07066" name="l07066"></a><span class="lineno"> 7066</span><span class="preprocessor">#endif </span><span class="comment">// end of user facing macro declarations</span></div>
|
|
<div class="line"><a id="l07067" name="l07067"></a><span class="lineno"> 7067</span> </div>
|
|
<div class="line"><a id="l07068" name="l07068"></a><span class="lineno"> 7068</span> </div>
|
|
<div class="line"><a id="l07069" name="l07069"></a><span class="lineno"> 7069</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEMPLATE_TEST_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07070" name="l07070"></a><span class="lineno"> 7070</span> </div>
|
|
<div class="line"><a id="l07071" name="l07071"></a><span class="lineno"> 7071</span> </div>
|
|
<div class="line"><a id="l07072" name="l07072"></a><span class="lineno"> 7072</span><span class="preprocessor">#ifndef CATCH_TEST_CASE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07073" name="l07073"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aefdce4165df8fcb146a72b5cd788d726"> 7073</a></span><span class="preprocessor">#define CATCH_TEST_CASE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07074" name="l07074"></a><span class="lineno"> 7074</span> </div>
|
|
<div class="line"><a id="l07075" name="l07075"></a><span class="lineno"> 7075</span> </div>
|
|
<div class="line"><a id="l07076" name="l07076"></a><span class="lineno"> 7076</span> </div>
|
|
<div class="line"><a id="l07077" name="l07077"></a><span class="lineno"> 7077</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l07078" name="l07078"></a><span class="lineno"> 7078</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l07079" name="l07079"></a><span class="lineno"> 7079</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l07080" name="l07080"></a><span class="lineno"> 7080</span> </div>
|
|
<div class="line"><a id="l07081" name="l07081"></a><span class="lineno"> 7081</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l07082" name="l07082"></a><span class="lineno"> 7082</span><span class="preprocessor">#pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l07083" name="l07083"></a><span class="lineno"> 7083</span><span class="preprocessor">#pragma clang diagnostic ignored "-Wpadded"</span></div>
|
|
<div class="line"><a id="l07084" name="l07084"></a><span class="lineno"> 7084</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l07085" name="l07085"></a><span class="lineno"> 7085</span> </div>
|
|
<div class="line"><a id="l07086" name="l07086"></a><span class="lineno"> 7086</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07087" name="l07087"></a><span class="lineno"> 7087</span></div>
|
|
<div class="foldopen" id="foldopen07095" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07095" name="l07095"></a><span class="lineno"><a class="line" href="structCatch_1_1Tag.html"> 7095</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a> {</div>
|
|
<div class="foldopen" id="foldopen07096" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07096" name="l07096"></a><span class="lineno"><a class="line" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283"> 7096</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a>(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> original_):</div>
|
|
<div class="line"><a id="l07097" name="l07097"></a><span class="lineno"> 7097</span> <a class="code hl_variable" href="structCatch_1_1Tag.html#af589567e86a42fac84b69f4371b67dea">original</a>(original_)</div>
|
|
<div class="line"><a id="l07098" name="l07098"></a><span class="lineno"> 7098</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07099" name="l07099"></a><span class="lineno"><a class="line" href="structCatch_1_1Tag.html#af589567e86a42fac84b69f4371b67dea"> 7099</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1Tag.html#af589567e86a42fac84b69f4371b67dea">original</a>;</div>
|
|
<div class="line"><a id="l07100" name="l07100"></a><span class="lineno"> 7100</span> </div>
|
|
<div class="line"><a id="l07101" name="l07101"></a><span class="lineno"> 7101</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator< ( <a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a> <span class="keyword">const</span>& lhs, <a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a> <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l07102" name="l07102"></a><span class="lineno"> 7102</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structCatch_1_1Tag.html#a9c1ed766a16aeca33c8215bfebba0a7f">operator==</a>( <a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a> <span class="keyword">const</span>& lhs, <a class="code hl_function" href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Tag</a> <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l07103" name="l07103"></a><span class="lineno"> 7103</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07104" name="l07104"></a><span class="lineno"> 7104</span> </div>
|
|
<div class="line"><a id="l07105" name="l07105"></a><span class="lineno"> 7105</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a>;</div>
|
|
<div class="line"><a id="l07106" name="l07106"></a><span class="lineno"> 7106</span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1NameAndTags.html">NameAndTags</a>;</div>
|
|
<div class="line"><a id="l07107" name="l07107"></a><span class="lineno"> 7107</span> </div>
|
|
<div class="foldopen" id="foldopen07108" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07108" name="l07108"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02"> 7108</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02">TestCaseProperties</a> : uint8_t {</div>
|
|
<div class="line"><a id="l07109" name="l07109"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a6adf97f83acf6453d4a6a4b1070f3754"> 7109</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a> = 0,</div>
|
|
<div class="line"><a id="l07110" name="l07110"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a704ebd98fadbe40eab37deab32907fc8"> 7110</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a704ebd98fadbe40eab37deab32907fc8">IsHidden</a> = 1 << 1,</div>
|
|
<div class="line"><a id="l07111" name="l07111"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a882461edf145e1dd43623ee081cebd92"> 7111</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a882461edf145e1dd43623ee081cebd92">ShouldFail</a> = 1 << 2,</div>
|
|
<div class="line"><a id="l07112" name="l07112"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ae32b66ce1369c92a2d351ae9636e6bd2"> 7112</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ae32b66ce1369c92a2d351ae9636e6bd2">MayFail</a> = 1 << 3,</div>
|
|
<div class="line"><a id="l07113" name="l07113"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a83a5849d32875836435ece98f910621a"> 7113</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a83a5849d32875836435ece98f910621a">Throws</a> = 1 << 4,</div>
|
|
<div class="line"><a id="l07114" name="l07114"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ad26cb48423c81ccc797b8d10f8525fe5"> 7114</a></span> <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ad26cb48423c81ccc797b8d10f8525fe5">NonPortable</a> = 1 << 5,</div>
|
|
<div class="line"><a id="l07115" name="l07115"></a><span class="lineno"><a class="line" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980"> 7115</a></span> <a class="code hl_namespace" href="namespaceCatch_1_1Benchmark.html">Benchmark</a> = 1 << 6</div>
|
|
<div class="line"><a id="l07116" name="l07116"></a><span class="lineno"> 7116</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07117" name="l07117"></a><span class="lineno"> 7117</span></div>
|
|
<div class="foldopen" id="foldopen07127" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07127" name="l07127"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html"> 7127</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a16f6e78e73631fe7dd4630e45ffe31b1">TestCaseInfo</a> : <a class="code hl_class" href="classCatch_1_1Detail_1_1NonCopyable.html">Detail::NonCopyable</a> {</div>
|
|
<div class="line"><a id="l07128" name="l07128"></a><span class="lineno"> 7128</span> </div>
|
|
<div class="line"><a id="l07129" name="l07129"></a><span class="lineno"> 7129</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a16f6e78e73631fe7dd4630e45ffe31b1">TestCaseInfo</a>(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> _className,</div>
|
|
<div class="line"><a id="l07130" name="l07130"></a><span class="lineno"> 7130</span> <a class="code hl_struct" href="structCatch_1_1NameAndTags.html">NameAndTags</a> <span class="keyword">const</span>& _nameAndTags,</div>
|
|
<div class="line"><a id="l07131" name="l07131"></a><span class="lineno"> 7131</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& _lineInfo);</div>
|
|
<div class="line"><a id="l07132" name="l07132"></a><span class="lineno"> 7132</span> </div>
|
|
<div class="line"><a id="l07133" name="l07133"></a><span class="lineno"> 7133</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a934b1a0952700743e99d62ec1731a2e2">isHidden</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07134" name="l07134"></a><span class="lineno"> 7134</span> <span class="keywordtype">bool</span> <span class="keywordflow">throws</span>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07135" name="l07135"></a><span class="lineno"> 7135</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a5f37291295e3a6de2dd85324c941edaf">okToFail</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07136" name="l07136"></a><span class="lineno"> 7136</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#abe33d81233230cdae8afa714688e905b">expectedToFail</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07137" name="l07137"></a><span class="lineno"> 7137</span> </div>
|
|
<div class="line"><a id="l07138" name="l07138"></a><span class="lineno"> 7138</span> <span class="comment">// Adds the tag(s) with test's filename (for the -# flag)</span></div>
|
|
<div class="line"><a id="l07139" name="l07139"></a><span class="lineno"> 7139</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#ac1fba1f96191b764fe164a5602d9e9ab">addFilenameTag</a>();</div>
|
|
<div class="line"><a id="l07140" name="l07140"></a><span class="lineno"> 7140</span></div>
|
|
<div class="line"><a id="l07142" name="l07142"></a><span class="lineno"> 7142</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structCatch_1_1TestCaseInfo.html#a943c73b4831f37b43ae87d3ebe5c793e">operator<</a>( <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a16f6e78e73631fe7dd4630e45ffe31b1">TestCaseInfo</a> <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l07143" name="l07143"></a><span class="lineno"> 7143</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a16f6e78e73631fe7dd4630e45ffe31b1">TestCaseInfo</a> <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l07144" name="l07144"></a><span class="lineno"> 7144</span> </div>
|
|
<div class="line"><a id="l07145" name="l07145"></a><span class="lineno"> 7145</span> </div>
|
|
<div class="line"><a id="l07146" name="l07146"></a><span class="lineno"> 7146</span> std::string <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#a17506de67fb18e27511c17f8a81119d8">tagsAsString</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07147" name="l07147"></a><span class="lineno"> 7147</span> </div>
|
|
<div class="line"><a id="l07148" name="l07148"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#a463794e2f5cfead307c93efd134ade36"> 7148</a></span> std::string <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#a463794e2f5cfead307c93efd134ade36">name</a>;</div>
|
|
<div class="line"><a id="l07149" name="l07149"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#a1daaddce433ef171e34bec5a4719e772"> 7149</a></span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#a1daaddce433ef171e34bec5a4719e772">className</a>;</div>
|
|
<div class="line"><a id="l07150" name="l07150"></a><span class="lineno"> 7150</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l07151" name="l07151"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#a9ca3a9c365aae1198f3ce17c0e87ed0f"> 7151</a></span> std::string <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#a9ca3a9c365aae1198f3ce17c0e87ed0f">backingTags</a>;</div>
|
|
<div class="line"><a id="l07152" name="l07152"></a><span class="lineno"> 7152</span> <span class="comment">// Internally we copy tags to the backing storage and then add</span></div>
|
|
<div class="line"><a id="l07153" name="l07153"></a><span class="lineno"> 7153</span> <span class="comment">// refs to this storage to the tags vector.</span></div>
|
|
<div class="line"><a id="l07154" name="l07154"></a><span class="lineno"> 7154</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structCatch_1_1TestCaseInfo.html#ad01d1bb038f0607da69dfdbdf478a88c">internalAppendTag</a>(<a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> tagString);</div>
|
|
<div class="line"><a id="l07155" name="l07155"></a><span class="lineno"> 7155</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07156" name="l07156"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#a193ce3dadc4fcd55effb3dce9c93358f"> 7156</a></span> std::vector<Tag> <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#a193ce3dadc4fcd55effb3dce9c93358f">tags</a>;</div>
|
|
<div class="line"><a id="l07157" name="l07157"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#aa9407b7f442655b51a2aad24b3fa2fd3"> 7157</a></span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#aa9407b7f442655b51a2aad24b3fa2fd3">lineInfo</a>;</div>
|
|
<div class="line"><a id="l07158" name="l07158"></a><span class="lineno"><a class="line" href="structCatch_1_1TestCaseInfo.html#a87c884e688d020b9939dc7ff5324c8b5"> 7158</a></span> <a class="code hl_enumeration" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02">TestCaseProperties</a> <a class="code hl_variable" href="structCatch_1_1TestCaseInfo.html#a87c884e688d020b9939dc7ff5324c8b5">properties</a> = <a class="code hl_enumvalue" href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a6adf97f83acf6453d4a6a4b1070f3754">TestCaseProperties::None</a>;</div>
|
|
<div class="line"><a id="l07159" name="l07159"></a><span class="lineno"> 7159</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07160" name="l07160"></a><span class="lineno"> 7160</span></div>
|
|
<div class="foldopen" id="foldopen07167" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07167" name="l07167"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html"> 7167</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#ae265e45e0c834125ebd1cb6a370ebb83">TestCaseHandle</a> {</div>
|
|
<div class="line"><a id="l07168" name="l07168"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#a2da696381f3c5bc0aa9b0046fed4aab6"> 7168</a></span> <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a>* <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#a2da696381f3c5bc0aa9b0046fed4aab6">m_info</a>;</div>
|
|
<div class="line"><a id="l07169" name="l07169"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514"> 7169</a></span> <a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a>* <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">m_invoker</a>;</div>
|
|
<div class="line"><a id="l07170" name="l07170"></a><span class="lineno"> 7170</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07171" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07171" name="l07171"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#ae265e45e0c834125ebd1cb6a370ebb83"> 7171</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#ae265e45e0c834125ebd1cb6a370ebb83">TestCaseHandle</a>(<a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a>* info, <a class="code hl_class" href="classCatch_1_1ITestInvoker.html">ITestInvoker</a>* invoker) :</div>
|
|
<div class="line"><a id="l07172" name="l07172"></a><span class="lineno"> 7172</span> <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#a2da696381f3c5bc0aa9b0046fed4aab6">m_info</a>(info), <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">m_invoker</a>(invoker) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07173" name="l07173"></a><span class="lineno"> 7173</span> </div>
|
|
<div class="foldopen" id="foldopen07174" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07174" name="l07174"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#a7e78330f0d1a6ddbb952369bf37b1e52"> 7174</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#a7e78330f0d1a6ddbb952369bf37b1e52">prepareTestCase</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l07175" name="l07175"></a><span class="lineno"> 7175</span> <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">m_invoker</a>->prepareTestCase();</div>
|
|
<div class="line"><a id="l07176" name="l07176"></a><span class="lineno"> 7176</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07177" name="l07177"></a><span class="lineno"> 7177</span> </div>
|
|
<div class="foldopen" id="foldopen07178" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07178" name="l07178"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#ad243c3ac78d702cda848c909383da2d7"> 7178</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#ad243c3ac78d702cda848c909383da2d7">tearDownTestCase</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l07179" name="l07179"></a><span class="lineno"> 7179</span> <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">m_invoker</a>->tearDownTestCase();</div>
|
|
<div class="line"><a id="l07180" name="l07180"></a><span class="lineno"> 7180</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07181" name="l07181"></a><span class="lineno"> 7181</span> </div>
|
|
<div class="foldopen" id="foldopen07182" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07182" name="l07182"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#a3ceefa8ee4fecb6aba985fb539ef94f4"> 7182</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#a3ceefa8ee4fecb6aba985fb539ef94f4">invoke</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l07183" name="l07183"></a><span class="lineno"> 7183</span> <a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">m_invoker</a>->invoke();</div>
|
|
<div class="line"><a id="l07184" name="l07184"></a><span class="lineno"> 7184</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07185" name="l07185"></a><span class="lineno"> 7185</span> </div>
|
|
<div class="foldopen" id="foldopen07186" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07186" name="l07186"></a><span class="lineno"><a class="line" href="classCatch_1_1TestCaseHandle.html#a9a89d26457c8585f93eb8baea0f39884"> 7186</a></span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structCatch_1_1TestCaseInfo.html">TestCaseInfo</a> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1TestCaseHandle.html#a9a89d26457c8585f93eb8baea0f39884">getTestCaseInfo</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l07187" name="l07187"></a><span class="lineno"> 7187</span> <span class="keywordflow">return</span> *<a class="code hl_variable" href="classCatch_1_1TestCaseHandle.html#a2da696381f3c5bc0aa9b0046fed4aab6">m_info</a>;</div>
|
|
<div class="line"><a id="l07188" name="l07188"></a><span class="lineno"> 7188</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07189" name="l07189"></a><span class="lineno"> 7189</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07190" name="l07190"></a><span class="lineno"> 7190</span> </div>
|
|
<div class="line"><a id="l07191" name="l07191"></a><span class="lineno"> 7191</span> Detail::unique_ptr<TestCaseInfo></div>
|
|
<div class="line"><a id="l07192" name="l07192"></a><span class="lineno"> 7192</span> makeTestCaseInfo( StringRef className,</div>
|
|
<div class="line"><a id="l07193" name="l07193"></a><span class="lineno"> 7193</span> NameAndTags <span class="keyword">const</span>& nameAndTags,</div>
|
|
<div class="line"><a id="l07194" name="l07194"></a><span class="lineno"> 7194</span> SourceLineInfo <span class="keyword">const</span>& lineInfo );</div>
|
|
<div class="line"><a id="l07195" name="l07195"></a><span class="lineno"> 7195</span>}</div>
|
|
<div class="line"><a id="l07196" name="l07196"></a><span class="lineno"> 7196</span> </div>
|
|
<div class="line"><a id="l07197" name="l07197"></a><span class="lineno"> 7197</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l07198" name="l07198"></a><span class="lineno"> 7198</span><span class="preprocessor">#pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l07199" name="l07199"></a><span class="lineno"> 7199</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l07200" name="l07200"></a><span class="lineno"> 7200</span> </div>
|
|
<div class="line"><a id="l07201" name="l07201"></a><span class="lineno"> 7201</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_CASE_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07202" name="l07202"></a><span class="lineno"> 7202</span> </div>
|
|
<div class="line"><a id="l07203" name="l07203"></a><span class="lineno"> 7203</span> </div>
|
|
<div class="line"><a id="l07204" name="l07204"></a><span class="lineno"> 7204</span><span class="preprocessor">#ifndef CATCH_TRANSLATE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07205" name="l07205"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#add3ed6c030bc66b07eb60f0301f7c84d"> 7205</a></span><span class="preprocessor">#define CATCH_TRANSLATE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07206" name="l07206"></a><span class="lineno"> 7206</span> </div>
|
|
<div class="line"><a id="l07207" name="l07207"></a><span class="lineno"> 7207</span> </div>
|
|
<div class="line"><a id="l07208" name="l07208"></a><span class="lineno"> 7208</span> </div>
|
|
<div class="line"><a id="l07209" name="l07209"></a><span class="lineno"> 7209</span><span class="preprocessor">#ifndef CATCH_INTERFACES_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07210" name="l07210"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a776168b52235f8202b64c1662d7508b0"> 7210</a></span><span class="preprocessor">#define CATCH_INTERFACES_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07211" name="l07211"></a><span class="lineno"> 7211</span> </div>
|
|
<div class="line"><a id="l07212" name="l07212"></a><span class="lineno"> 7212</span> </div>
|
|
<div class="line"><a id="l07213" name="l07213"></a><span class="lineno"> 7213</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l07214" name="l07214"></a><span class="lineno"> 7214</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l07215" name="l07215"></a><span class="lineno"> 7215</span> </div>
|
|
<div class="line"><a id="l07216" name="l07216"></a><span class="lineno"> 7216</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07217" name="l07217"></a><span class="lineno"><a class="line" href="namespaceCatch.html#a7f2ab9adc3729f9c197f43e5cfcd4b40"> 7217</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a7f2ab9adc3729f9c197f43e5cfcd4b40">exceptionTranslateFunction</a> = std::string(*)();</div>
|
|
<div class="line"><a id="l07218" name="l07218"></a><span class="lineno"> 7218</span> </div>
|
|
<div class="line"><a id="l07219" name="l07219"></a><span class="lineno"> 7219</span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IExceptionTranslator.html">IExceptionTranslator</a>;</div>
|
|
<div class="line"><a id="l07220" name="l07220"></a><span class="lineno"><a class="line" href="namespaceCatch.html#acee06b896ed308ae49ab9d8c7769f5ee"> 7220</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#acee06b896ed308ae49ab9d8c7769f5ee">ExceptionTranslators</a> = std::vector<Detail::unique_ptr<IExceptionTranslator const>>;</div>
|
|
<div class="line"><a id="l07221" name="l07221"></a><span class="lineno"> 7221</span> </div>
|
|
<div class="foldopen" id="foldopen07222" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07222" name="l07222"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslator.html"> 7222</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IExceptionTranslator.html">IExceptionTranslator</a> {</div>
|
|
<div class="line"><a id="l07223" name="l07223"></a><span class="lineno"> 7223</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07224" name="l07224"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslator.html#afd9be9d858f9be158d0d30baadd4fd7c"> 7224</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IExceptionTranslator.html#afd9be9d858f9be158d0d30baadd4fd7c">~IExceptionTranslator</a>(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l07225" name="l07225"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslator.html#a2a554b96ed5ed411e7c796b6b42837a5"> 7225</a></span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classCatch_1_1IExceptionTranslator.html#a2a554b96ed5ed411e7c796b6b42837a5">translate</a>( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l07226" name="l07226"></a><span class="lineno"> 7226</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07227" name="l07227"></a><span class="lineno"> 7227</span> </div>
|
|
<div class="foldopen" id="foldopen07228" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07228" name="l07228"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslatorRegistry.html"> 7228</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IExceptionTranslatorRegistry.html">IExceptionTranslatorRegistry</a> {</div>
|
|
<div class="line"><a id="l07229" name="l07229"></a><span class="lineno"> 7229</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07230" name="l07230"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslatorRegistry.html#a5943b77f962a069348669fd5f0317084"> 7230</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IExceptionTranslatorRegistry.html#a5943b77f962a069348669fd5f0317084">~IExceptionTranslatorRegistry</a>(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l07231" name="l07231"></a><span class="lineno"><a class="line" href="classCatch_1_1IExceptionTranslatorRegistry.html#af76ae8c331a17f2a94c9720bc0d686bb"> 7231</a></span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classCatch_1_1IExceptionTranslatorRegistry.html#af76ae8c331a17f2a94c9720bc0d686bb">translateActiveException</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l07232" name="l07232"></a><span class="lineno"> 7232</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07233" name="l07233"></a><span class="lineno"> 7233</span> </div>
|
|
<div class="line"><a id="l07234" name="l07234"></a><span class="lineno"> 7234</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l07235" name="l07235"></a><span class="lineno"> 7235</span> </div>
|
|
<div class="line"><a id="l07236" name="l07236"></a><span class="lineno"> 7236</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07237" name="l07237"></a><span class="lineno"> 7237</span> </div>
|
|
<div class="line"><a id="l07238" name="l07238"></a><span class="lineno"> 7238</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l07239" name="l07239"></a><span class="lineno"> 7239</span> </div>
|
|
<div class="line"><a id="l07240" name="l07240"></a><span class="lineno"> 7240</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07241" name="l07241"></a><span class="lineno"> 7241</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l07242" name="l07242"></a><span class="lineno"> 7242</span> <span class="keywordtype">void</span> registerTranslatorImpl(</div>
|
|
<div class="line"><a id="l07243" name="l07243"></a><span class="lineno"> 7243</span> Detail::unique_ptr<IExceptionTranslator>&& translator );</div>
|
|
<div class="line"><a id="l07244" name="l07244"></a><span class="lineno"> 7244</span> }</div>
|
|
<div class="line"><a id="l07245" name="l07245"></a><span class="lineno"> 7245</span> </div>
|
|
<div class="foldopen" id="foldopen07246" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07246" name="l07246"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar.html"> 7246</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ExceptionTranslatorRegistrar.html#a641142ed5d0f3c6608f496a9b9c4b38b">ExceptionTranslatorRegistrar</a> {</div>
|
|
<div class="line"><a id="l07247" name="l07247"></a><span class="lineno"> 7247</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07248" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07248" name="l07248"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html"> 7248</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a591d6428999832a6ea5138a95b95d33d">ExceptionTranslator</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1IExceptionTranslator.html">IExceptionTranslator</a> {</div>
|
|
<div class="line"><a id="l07249" name="l07249"></a><span class="lineno"> 7249</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07250" name="l07250"></a><span class="lineno"> 7250</span> </div>
|
|
<div class="foldopen" id="foldopen07251" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07251" name="l07251"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a591d6428999832a6ea5138a95b95d33d"> 7251</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a591d6428999832a6ea5138a95b95d33d">ExceptionTranslator</a>( std::string(*translateFunction)( T <span class="keyword">const</span>& ) )</div>
|
|
<div class="line"><a id="l07252" name="l07252"></a><span class="lineno"> 7252</span> : <a class="code hl_variable" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#aceae75027c92c7c36a9f59b77ce2b7db">m_translateFunction</a>( translateFunction )</div>
|
|
<div class="line"><a id="l07253" name="l07253"></a><span class="lineno"> 7253</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07254" name="l07254"></a><span class="lineno"> 7254</span> </div>
|
|
<div class="foldopen" id="foldopen07255" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07255" name="l07255"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a29e85940ee9ce719f26e43550cb4ed48"> 7255</a></span> std::string <a class="code hl_function" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a29e85940ee9ce719f26e43550cb4ed48">translate</a>( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07256" name="l07256"></a><span class="lineno"> 7256</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l07257" name="l07257"></a><span class="lineno"> 7257</span> <span class="keywordflow">try</span> {</div>
|
|
<div class="line"><a id="l07258" name="l07258"></a><span class="lineno"> 7258</span> <span class="keywordflow">if</span>( it == itEnd )</div>
|
|
<div class="line"><a id="l07259" name="l07259"></a><span class="lineno"> 7259</span> std::rethrow_exception(std::current_exception());</div>
|
|
<div class="line"><a id="l07260" name="l07260"></a><span class="lineno"> 7260</span> <span class="keywordflow">else</span></div>
|
|
<div class="line"><a id="l07261" name="l07261"></a><span class="lineno"> 7261</span> <span class="keywordflow">return</span> (*it)->translate( it+1, itEnd );</div>
|
|
<div class="line"><a id="l07262" name="l07262"></a><span class="lineno"> 7262</span> }</div>
|
|
<div class="line"><a id="l07263" name="l07263"></a><span class="lineno"> 7263</span> <span class="keywordflow">catch</span>( T <span class="keyword">const</span>& ex ) {</div>
|
|
<div class="line"><a id="l07264" name="l07264"></a><span class="lineno"> 7264</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#aceae75027c92c7c36a9f59b77ce2b7db">m_translateFunction</a>( ex );</div>
|
|
<div class="line"><a id="l07265" name="l07265"></a><span class="lineno"> 7265</span> }</div>
|
|
<div class="line"><a id="l07266" name="l07266"></a><span class="lineno"> 7266</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l07267" name="l07267"></a><span class="lineno"> 7267</span> <span class="keywordflow">return</span> <span class="stringliteral">"You should never get here!"</span>;</div>
|
|
<div class="line"><a id="l07268" name="l07268"></a><span class="lineno"> 7268</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l07269" name="l07269"></a><span class="lineno"> 7269</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07270" name="l07270"></a><span class="lineno"> 7270</span> </div>
|
|
<div class="line"><a id="l07271" name="l07271"></a><span class="lineno"> 7271</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l07272" name="l07272"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#aceae75027c92c7c36a9f59b77ce2b7db"> 7272</a></span> std::string(*<a class="code hl_variable" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#aceae75027c92c7c36a9f59b77ce2b7db">m_translateFunction</a>)( T <span class="keyword">const</span>& );</div>
|
|
<div class="line"><a id="l07273" name="l07273"></a><span class="lineno"> 7273</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07274" name="l07274"></a><span class="lineno"> 7274</span> </div>
|
|
<div class="line"><a id="l07275" name="l07275"></a><span class="lineno"> 7275</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07276" name="l07276"></a><span class="lineno"> 7276</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07277" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07277" name="l07277"></a><span class="lineno"><a class="line" href="classCatch_1_1ExceptionTranslatorRegistrar.html#a641142ed5d0f3c6608f496a9b9c4b38b"> 7277</a></span> <a class="code hl_function" href="classCatch_1_1ExceptionTranslatorRegistrar.html#a641142ed5d0f3c6608f496a9b9c4b38b">ExceptionTranslatorRegistrar</a>( std::string(*translateFunction)( T <span class="keyword">const</span>& ) ) {</div>
|
|
<div class="line"><a id="l07278" name="l07278"></a><span class="lineno"> 7278</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a60f033a91680546a152f5dfa4427104c">Detail::registerTranslatorImpl</a>(</div>
|
|
<div class="line"><a id="l07279" name="l07279"></a><span class="lineno"> 7279</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html">ExceptionTranslator<T></a>>(</div>
|
|
<div class="line"><a id="l07280" name="l07280"></a><span class="lineno"> 7280</span> translateFunction ) );</div>
|
|
<div class="line"><a id="l07281" name="l07281"></a><span class="lineno"> 7281</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07282" name="l07282"></a><span class="lineno"> 7282</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07283" name="l07283"></a><span class="lineno"> 7283</span> </div>
|
|
<div class="line"><a id="l07284" name="l07284"></a><span class="lineno"> 7284</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l07285" name="l07285"></a><span class="lineno"> 7285</span></div>
|
|
<div class="foldopen" id="foldopen07287" data-start="" data-end="">
|
|
<div class="line"><a id="l07287" name="l07287"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab5314f401394dc4f7d1ac8b59370af09"> 7287</a></span><span class="preprocessor">#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \</span></div>
|
|
<div class="line"><a id="l07288" name="l07288"></a><span class="lineno"> 7288</span><span class="preprocessor"> static std::string translatorName( signature ); \</span></div>
|
|
<div class="line"><a id="l07289" name="l07289"></a><span class="lineno"> 7289</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l07290" name="l07290"></a><span class="lineno"> 7290</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l07291" name="l07291"></a><span class="lineno"> 7291</span><span class="preprocessor"> namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); } \</span></div>
|
|
<div class="line"><a id="l07292" name="l07292"></a><span class="lineno"> 7292</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l07293" name="l07293"></a><span class="lineno"> 7293</span><span class="preprocessor"> static std::string translatorName( signature )</span></div>
|
|
</div>
|
|
<div class="line"><a id="l07294" name="l07294"></a><span class="lineno"> 7294</span> </div>
|
|
<div class="line"><a id="l07295" name="l07295"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a109d814750b0a695e2b66e9c53e748c0"> 7295</a></span><span class="preprocessor">#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )</span></div>
|
|
<div class="line"><a id="l07296" name="l07296"></a><span class="lineno"> 7296</span> </div>
|
|
<div class="line"><a id="l07297" name="l07297"></a><span class="lineno"> 7297</span><span class="preprocessor">#if defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l07298" name="l07298"></a><span class="lineno"> 7298</span><span class="preprocessor"> #define INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( translatorName, signature) \</span></div>
|
|
<div class="line"><a id="l07299" name="l07299"></a><span class="lineno"> 7299</span><span class="preprocessor"> static std::string translatorName( signature )</span></div>
|
|
<div class="line"><a id="l07300" name="l07300"></a><span class="lineno"> 7300</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l07301" name="l07301"></a><span class="lineno"> 7301</span> </div>
|
|
<div class="line"><a id="l07302" name="l07302"></a><span class="lineno"> 7302</span> </div>
|
|
<div class="line"><a id="l07303" name="l07303"></a><span class="lineno"> 7303</span><span class="comment">// This macro is always prefixed</span></div>
|
|
<div class="line"><a id="l07304" name="l07304"></a><span class="lineno"> 7304</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l07305" name="l07305"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a094602ff56422c96e501eaaef1ef8c12"> 7305</a></span><span class="preprocessor">#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )</span></div>
|
|
<div class="line"><a id="l07306" name="l07306"></a><span class="lineno"> 7306</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l07307" name="l07307"></a><span class="lineno"> 7307</span><span class="preprocessor">#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )</span></div>
|
|
<div class="line"><a id="l07308" name="l07308"></a><span class="lineno"> 7308</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l07309" name="l07309"></a><span class="lineno"> 7309</span> </div>
|
|
<div class="line"><a id="l07310" name="l07310"></a><span class="lineno"> 7310</span> </div>
|
|
<div class="line"><a id="l07311" name="l07311"></a><span class="lineno"> 7311</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TRANSLATE_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07312" name="l07312"></a><span class="lineno"> 7312</span> </div>
|
|
<div class="line"><a id="l07313" name="l07313"></a><span class="lineno"> 7313</span> </div>
|
|
<div class="line"><a id="l07314" name="l07314"></a><span class="lineno"> 7314</span><span class="preprocessor">#ifndef CATCH_VERSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07315" name="l07315"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a449506baede5376f82ba20a5dc717cce"> 7315</a></span><span class="preprocessor">#define CATCH_VERSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07316" name="l07316"></a><span class="lineno"> 7316</span> </div>
|
|
<div class="line"><a id="l07317" name="l07317"></a><span class="lineno"> 7317</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l07318" name="l07318"></a><span class="lineno"> 7318</span> </div>
|
|
<div class="line"><a id="l07319" name="l07319"></a><span class="lineno"> 7319</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07320" name="l07320"></a><span class="lineno"> 7320</span> </div>
|
|
<div class="line"><a id="l07321" name="l07321"></a><span class="lineno"> 7321</span> <span class="comment">// Versioning information</span></div>
|
|
<div class="foldopen" id="foldopen07322" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07322" name="l07322"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html"> 7322</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a> {</div>
|
|
<div class="line"><a id="l07323" name="l07323"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee"> 7323</a></span> <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a>( <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a> <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l07324" name="l07324"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a4379119bb74879da3b92c71d980c6c87"> 7324</a></span> <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a>& <a class="code hl_function" href="structCatch_1_1Version.html#a4379119bb74879da3b92c71d980c6c87">operator=</a>( <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a> <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l07325" name="l07325"></a><span class="lineno"> 7325</span> <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _majorVersion,</div>
|
|
<div class="line"><a id="l07326" name="l07326"></a><span class="lineno"> 7326</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _minorVersion,</div>
|
|
<div class="line"><a id="l07327" name="l07327"></a><span class="lineno"> 7327</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _patchNumber,</div>
|
|
<div class="line"><a id="l07328" name="l07328"></a><span class="lineno"> 7328</span> <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> _branchName,</div>
|
|
<div class="line"><a id="l07329" name="l07329"></a><span class="lineno"> 7329</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _buildNumber );</div>
|
|
<div class="line"><a id="l07330" name="l07330"></a><span class="lineno"> 7330</span> </div>
|
|
<div class="line"><a id="l07331" name="l07331"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a67d30e6cb9fdde34a3fc235043cd9c63"> 7331</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code hl_variable" href="structCatch_1_1Version.html#a67d30e6cb9fdde34a3fc235043cd9c63">majorVersion</a>;</div>
|
|
<div class="line"><a id="l07332" name="l07332"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a4993a9a98abd56991b9dad629b6783f1"> 7332</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code hl_variable" href="structCatch_1_1Version.html#a4993a9a98abd56991b9dad629b6783f1">minorVersion</a>;</div>
|
|
<div class="line"><a id="l07333" name="l07333"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a8bf08299323524985da5c1a0722464e0"> 7333</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code hl_variable" href="structCatch_1_1Version.html#a8bf08299323524985da5c1a0722464e0">patchNumber</a>;</div>
|
|
<div class="line"><a id="l07334" name="l07334"></a><span class="lineno"> 7334</span> </div>
|
|
<div class="line"><a id="l07335" name="l07335"></a><span class="lineno"> 7335</span> <span class="comment">// buildNumber is only used if branchName is not null</span></div>
|
|
<div class="line"><a id="l07336" name="l07336"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a27f53638ae6af8cd9b5aba3cc2dca11f"> 7336</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> <a class="code hl_variable" href="structCatch_1_1Version.html#a27f53638ae6af8cd9b5aba3cc2dca11f">branchName</a>;</div>
|
|
<div class="line"><a id="l07337" name="l07337"></a><span class="lineno"><a class="line" href="structCatch_1_1Version.html#a15facd4f9ac18f5ff2540bc798885c39"> 7337</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code hl_variable" href="structCatch_1_1Version.html#a15facd4f9ac18f5ff2540bc798885c39">buildNumber</a>;</div>
|
|
<div class="line"><a id="l07338" name="l07338"></a><span class="lineno"> 7338</span> </div>
|
|
<div class="line"><a id="l07339" name="l07339"></a><span class="lineno"> 7339</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( std::ostream& os, <a class="code hl_function" href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Version</a> <span class="keyword">const</span>& version );</div>
|
|
<div class="line"><a id="l07340" name="l07340"></a><span class="lineno"> 7340</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07341" name="l07341"></a><span class="lineno"> 7341</span> </div>
|
|
<div class="line"><a id="l07342" name="l07342"></a><span class="lineno"> 7342</span> <a class="code hl_struct" href="structCatch_1_1Version.html">Version</a> <span class="keyword">const</span>& <a class="code hl_function" href="namespaceCatch.html#a35e54475ed669ef7f7ac00b858e91b2a">libraryVersion</a>();</div>
|
|
<div class="line"><a id="l07343" name="l07343"></a><span class="lineno"> 7343</span>}</div>
|
|
<div class="line"><a id="l07344" name="l07344"></a><span class="lineno"> 7344</span> </div>
|
|
<div class="line"><a id="l07345" name="l07345"></a><span class="lineno"> 7345</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_VERSION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07346" name="l07346"></a><span class="lineno"> 7346</span> </div>
|
|
<div class="line"><a id="l07347" name="l07347"></a><span class="lineno"> 7347</span> </div>
|
|
<div class="line"><a id="l07348" name="l07348"></a><span class="lineno"> 7348</span><span class="preprocessor">#ifndef CATCH_VERSION_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07349" name="l07349"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a6875ca5c17735b874450be4343f51c35"> 7349</a></span><span class="preprocessor">#define CATCH_VERSION_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07350" name="l07350"></a><span class="lineno"> 7350</span> </div>
|
|
<div class="line"><a id="l07351" name="l07351"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aed4b3022e5b389a59ee3e1633c0a70a8"> 7351</a></span><span class="preprocessor">#define CATCH_VERSION_MAJOR 3</span></div>
|
|
<div class="line"><a id="l07352" name="l07352"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a7c36daa8f2e725fe5e1ff2a9c2559d4f"> 7352</a></span><span class="preprocessor">#define CATCH_VERSION_MINOR 8</span></div>
|
|
<div class="line"><a id="l07353" name="l07353"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab6adfb1d16a244d790dc1fe385831a52"> 7353</a></span><span class="preprocessor">#define CATCH_VERSION_PATCH 1</span></div>
|
|
<div class="line"><a id="l07354" name="l07354"></a><span class="lineno"> 7354</span> </div>
|
|
<div class="line"><a id="l07355" name="l07355"></a><span class="lineno"> 7355</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_VERSION_MACROS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07356" name="l07356"></a><span class="lineno"> 7356</span> </div>
|
|
<div class="line"><a id="l07357" name="l07357"></a><span class="lineno"> 7357</span></div>
|
|
<div class="line"><a id="l07370" name="l07370"></a><span class="lineno"> 7370</span> </div>
|
|
<div class="line"><a id="l07371" name="l07371"></a><span class="lineno"> 7371</span><span class="preprocessor">#ifndef CATCH_GENERATORS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07372" name="l07372"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a76e1965655603e8134a4ebb1cdf08c3e"> 7372</a></span><span class="preprocessor">#define CATCH_GENERATORS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07373" name="l07373"></a><span class="lineno"> 7373</span> </div>
|
|
<div class="line"><a id="l07374" name="l07374"></a><span class="lineno"> 7374</span> </div>
|
|
<div class="line"><a id="l07375" name="l07375"></a><span class="lineno"> 7375</span> </div>
|
|
<div class="line"><a id="l07376" name="l07376"></a><span class="lineno"> 7376</span><span class="preprocessor">#ifndef CATCH_GENERATOR_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07377" name="l07377"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aca898d5b0f4208e8a417b754db42b184"> 7377</a></span><span class="preprocessor">#define CATCH_GENERATOR_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07378" name="l07378"></a><span class="lineno"> 7378</span> </div>
|
|
<div class="line"><a id="l07379" name="l07379"></a><span class="lineno"> 7379</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l07380" name="l07380"></a><span class="lineno"> 7380</span> </div>
|
|
<div class="line"><a id="l07381" name="l07381"></a><span class="lineno"> 7381</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07382" name="l07382"></a><span class="lineno"> 7382</span> </div>
|
|
<div class="line"><a id="l07383" name="l07383"></a><span class="lineno"> 7383</span> <span class="comment">// Exception type to be thrown when a Generator runs into an error,</span></div>
|
|
<div class="line"><a id="l07384" name="l07384"></a><span class="lineno"> 7384</span> <span class="comment">// e.g. it cannot initialize the first return value based on</span></div>
|
|
<div class="line"><a id="l07385" name="l07385"></a><span class="lineno"> 7385</span> <span class="comment">// runtime information</span></div>
|
|
<div class="foldopen" id="foldopen07386" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07386" name="l07386"></a><span class="lineno"><a class="line" href="classCatch_1_1GeneratorException.html"> 7386</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1GeneratorException.html#a3cf9282d555ec32389665ce723bf36ea">GeneratorException</a> : <span class="keyword">public</span> std::exception {</div>
|
|
<div class="line"><a id="l07387" name="l07387"></a><span class="lineno"><a class="line" href="classCatch_1_1GeneratorException.html#a493b6ec9e3be0e3852de73c87dba6e5e"> 7387</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> <a class="code hl_variable" href="classCatch_1_1GeneratorException.html#a493b6ec9e3be0e3852de73c87dba6e5e">m_msg</a> = <span class="stringliteral">""</span>;</div>
|
|
<div class="line"><a id="l07388" name="l07388"></a><span class="lineno"> 7388</span> </div>
|
|
<div class="line"><a id="l07389" name="l07389"></a><span class="lineno"> 7389</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07390" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07390" name="l07390"></a><span class="lineno"><a class="line" href="classCatch_1_1GeneratorException.html#a3cf9282d555ec32389665ce723bf36ea"> 7390</a></span> <a class="code hl_function" href="classCatch_1_1GeneratorException.html#a3cf9282d555ec32389665ce723bf36ea">GeneratorException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* msg):</div>
|
|
<div class="line"><a id="l07391" name="l07391"></a><span class="lineno"> 7391</span> <a class="code hl_variable" href="classCatch_1_1GeneratorException.html#a493b6ec9e3be0e3852de73c87dba6e5e">m_msg</a>(msg)</div>
|
|
<div class="line"><a id="l07392" name="l07392"></a><span class="lineno"> 7392</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07393" name="l07393"></a><span class="lineno"> 7393</span> </div>
|
|
<div class="line"><a id="l07394" name="l07394"></a><span class="lineno"> 7394</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* what() const noexcept override final;</div>
|
|
<div class="line"><a id="l07395" name="l07395"></a><span class="lineno"> 7395</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07396" name="l07396"></a><span class="lineno"> 7396</span> </div>
|
|
<div class="line"><a id="l07397" name="l07397"></a><span class="lineno"> 7397</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l07398" name="l07398"></a><span class="lineno"> 7398</span> </div>
|
|
<div class="line"><a id="l07399" name="l07399"></a><span class="lineno"> 7399</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATOR_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07400" name="l07400"></a><span class="lineno"> 7400</span> </div>
|
|
<div class="line"><a id="l07401" name="l07401"></a><span class="lineno"> 7401</span> </div>
|
|
<div class="line"><a id="l07402" name="l07402"></a><span class="lineno"> 7402</span><span class="preprocessor">#ifndef CATCH_GENERATORS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07403" name="l07403"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a921f52b68ff5d5d27a0323f7729021c8"> 7403</a></span><span class="preprocessor">#define CATCH_GENERATORS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07404" name="l07404"></a><span class="lineno"> 7404</span> </div>
|
|
<div class="line"><a id="l07405" name="l07405"></a><span class="lineno"> 7405</span> </div>
|
|
<div class="line"><a id="l07406" name="l07406"></a><span class="lineno"> 7406</span> </div>
|
|
<div class="line"><a id="l07407" name="l07407"></a><span class="lineno"> 7407</span><span class="preprocessor">#ifndef CATCH_INTERFACES_GENERATORTRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07408" name="l07408"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a151357dd1b2d1d2ccb718f09697980cc"> 7408</a></span><span class="preprocessor">#define CATCH_INTERFACES_GENERATORTRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07409" name="l07409"></a><span class="lineno"> 7409</span> </div>
|
|
<div class="line"><a id="l07410" name="l07410"></a><span class="lineno"> 7410</span> </div>
|
|
<div class="line"><a id="l07411" name="l07411"></a><span class="lineno"> 7411</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l07412" name="l07412"></a><span class="lineno"> 7412</span> </div>
|
|
<div class="line"><a id="l07413" name="l07413"></a><span class="lineno"> 7413</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07414" name="l07414"></a><span class="lineno"> 7414</span> </div>
|
|
<div class="line"><a id="l07415" name="l07415"></a><span class="lineno"> 7415</span> <span class="keyword">namespace </span>Generators {</div>
|
|
<div class="foldopen" id="foldopen07416" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07416" name="l07416"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html"> 7416</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a> {</div>
|
|
<div class="line"><a id="l07417" name="l07417"></a><span class="lineno"> 7417</span> <span class="comment">// Caches result from `toStringImpl`, assume that when it is an</span></div>
|
|
<div class="line"><a id="l07418" name="l07418"></a><span class="lineno"> 7418</span> <span class="comment">// empty string, the cache is invalidated.</span></div>
|
|
<div class="line"><a id="l07419" name="l07419"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8d18b35875fbe431d1830c5fa97af1f5"> 7419</a></span> <span class="keyword">mutable</span> std::string <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8d18b35875fbe431d1830c5fa97af1f5">m_stringReprCache</a>;</div>
|
|
<div class="line"><a id="l07420" name="l07420"></a><span class="lineno"> 7420</span> </div>
|
|
<div class="line"><a id="l07421" name="l07421"></a><span class="lineno"> 7421</span> <span class="comment">// Counts based on `next` returning true</span></div>
|
|
<div class="line"><a id="l07422" name="l07422"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aadcb64ad978f735c089a45857c395805"> 7422</a></span> std::size_t <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aadcb64ad978f735c089a45857c395805">m_currentElementIndex</a> = 0;</div>
|
|
<div class="line"><a id="l07423" name="l07423"></a><span class="lineno"> 7423</span></div>
|
|
<div class="line"><a id="l07430" name="l07430"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aeed3c0cd6233c5f553549e453b8d6638"> 7430</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aeed3c0cd6233c5f553549e453b8d6638">next</a>() = 0;</div>
|
|
<div class="line"><a id="l07431" name="l07431"></a><span class="lineno"> 7431</span></div>
|
|
<div class="line"><a id="l07433" name="l07433"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aaa80fc99f7a69098dccb9947ecd373e9"> 7433</a></span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aaa80fc99f7a69098dccb9947ecd373e9">stringifyImpl</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l07434" name="l07434"></a><span class="lineno"> 7434</span> </div>
|
|
<div class="line"><a id="l07435" name="l07435"></a><span class="lineno"> 7435</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07436" name="l07436"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad"> 7436</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l07437" name="l07437"></a><span class="lineno"> 7437</span> <span class="comment">// Generation of copy ops is deprecated (and Clang will complain)</span></div>
|
|
<div class="line"><a id="l07438" name="l07438"></a><span class="lineno"> 7438</span> <span class="comment">// if there is a user destructor defined</span></div>
|
|
<div class="line"><a id="l07439" name="l07439"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a96ed7d50f3aae243430303063ceac7a7"> 7439</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a96ed7d50f3aae243430303063ceac7a7">GeneratorUntypedBase</a>(<a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l07440" name="l07440"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8fa7f7c7225ca57dc0d2e8c151b4094d"> 7440</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a>& <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8fa7f7c7225ca57dc0d2e8c151b4094d">operator=</a>(<a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a> <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l07441" name="l07441"></a><span class="lineno"> 7441</span> </div>
|
|
<div class="line"><a id="l07442" name="l07442"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a3e9065352141a8706eafeb3ffb3b662e"> 7442</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a3e9065352141a8706eafeb3ffb3b662e">~GeneratorUntypedBase</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l07443" name="l07443"></a><span class="lineno"> 7443</span></div>
|
|
<div class="line"><a id="l07454" name="l07454"></a><span class="lineno"> 7454</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a1ea657675ef9274645608f521238ff54">countedNext</a>();</div>
|
|
<div class="line"><a id="l07455" name="l07455"></a><span class="lineno"> 7455</span> </div>
|
|
<div class="line"><a id="l07456" name="l07456"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#adad3e935ee04c1da8d015b4bcb60a74b"> 7456</a></span> std::size_t <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#adad3e935ee04c1da8d015b4bcb60a74b">currentElementIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aadcb64ad978f735c089a45857c395805">m_currentElementIndex</a>; }</div>
|
|
<div class="line"><a id="l07457" name="l07457"></a><span class="lineno"> 7457</span></div>
|
|
<div class="line"><a id="l07471" name="l07471"></a><span class="lineno"> 7471</span> <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> currentElementAsString() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l07472" name="l07472"></a><span class="lineno"> 7472</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07473" name="l07473"></a><span class="lineno"> 7473</span> <span class="keyword">using </span>GeneratorBasePtr = <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr<GeneratorUntypedBase></a>;</div>
|
|
<div class="line"><a id="l07474" name="l07474"></a><span class="lineno"> 7474</span> </div>
|
|
<div class="line"><a id="l07475" name="l07475"></a><span class="lineno"> 7475</span> } <span class="comment">// namespace Generators</span></div>
|
|
<div class="line"><a id="l07476" name="l07476"></a><span class="lineno"> 7476</span> </div>
|
|
<div class="foldopen" id="foldopen07477" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07477" name="l07477"></a><span class="lineno"><a class="line" href="classCatch_1_1IGeneratorTracker.html"> 7477</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a> {</div>
|
|
<div class="line"><a id="l07478" name="l07478"></a><span class="lineno"> 7478</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07479" name="l07479"></a><span class="lineno"><a class="line" href="classCatch_1_1IGeneratorTracker.html#ae48542e221a0931482ba61e6d30462c3"> 7479</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classCatch_1_1IGeneratorTracker.html#ae48542e221a0931482ba61e6d30462c3">~IGeneratorTracker</a>(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l07480" name="l07480"></a><span class="lineno"><a class="line" href="classCatch_1_1IGeneratorTracker.html#ae88084f9af27c8b9a5d5775b9c148498"> 7480</a></span> <span class="keyword">virtual</span> <span class="keyword">auto</span> <a class="code hl_function" href="classCatch_1_1IGeneratorTracker.html#ae88084f9af27c8b9a5d5775b9c148498">hasGenerator</a>() const -> <span class="keywordtype">bool</span> = 0;</div>
|
|
<div class="line"><a id="l07481" name="l07481"></a><span class="lineno"><a class="line" href="classCatch_1_1IGeneratorTracker.html#a23be942fc51672598bfa02c678c3078a"> 7481</a></span> virtual auto <a class="code hl_function" href="classCatch_1_1IGeneratorTracker.html#a23be942fc51672598bfa02c678c3078a">getGenerator</a>() const -> <a class="code hl_namespace" href="namespaceCatch_1_1Generators.html">Generators</a>::GeneratorBasePtr const& = 0;</div>
|
|
<div class="line"><a id="l07482" name="l07482"></a><span class="lineno"><a class="line" href="classCatch_1_1IGeneratorTracker.html#a9945eff42219edc5a7071eebd8b0419e"> 7482</a></span> virtual <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1IGeneratorTracker.html#a9945eff42219edc5a7071eebd8b0419e">setGenerator</a>( <a class="code hl_namespace" href="namespaceCatch_1_1Generators.html">Generators</a>::GeneratorBasePtr&& generator ) = 0;</div>
|
|
<div class="line"><a id="l07483" name="l07483"></a><span class="lineno"> 7483</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07484" name="l07484"></a><span class="lineno"> 7484</span> </div>
|
|
<div class="line"><a id="l07485" name="l07485"></a><span class="lineno"> 7485</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l07486" name="l07486"></a><span class="lineno"> 7486</span> </div>
|
|
<div class="line"><a id="l07487" name="l07487"></a><span class="lineno"> 7487</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_GENERATORTRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07488" name="l07488"></a><span class="lineno"> 7488</span> </div>
|
|
<div class="line"><a id="l07489" name="l07489"></a><span class="lineno"> 7489</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l07490" name="l07490"></a><span class="lineno"> 7490</span><span class="preprocessor">#include <tuple></span></div>
|
|
<div class="line"><a id="l07491" name="l07491"></a><span class="lineno"> 7491</span> </div>
|
|
<div class="line"><a id="l07492" name="l07492"></a><span class="lineno"> 7492</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07493" name="l07493"></a><span class="lineno"> 7493</span> </div>
|
|
<div class="line"><a id="l07494" name="l07494"></a><span class="lineno"> 7494</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1Generators.html">Generators</a> {</div>
|
|
<div class="line"><a id="l07495" name="l07495"></a><span class="lineno"> 7495</span> </div>
|
|
<div class="line"><a id="l07496" name="l07496"></a><span class="lineno"> 7496</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch_1_1Detail.html">Detail</a> {</div>
|
|
<div class="line"><a id="l07497" name="l07497"></a><span class="lineno"> 7497</span></div>
|
|
<div class="line"><a id="l07499" name="l07499"></a><span class="lineno"> 7499</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l07500" name="l07500"></a><span class="lineno"> 7500</span> <span class="keywordtype">void</span> throw_generator_exception(<span class="keywordtype">char</span> <span class="keyword">const</span> * msg);</div>
|
|
<div class="line"><a id="l07501" name="l07501"></a><span class="lineno"> 7501</span> </div>
|
|
<div class="line"><a id="l07502" name="l07502"></a><span class="lineno"> 7502</span>} <span class="comment">// end namespace detail</span></div>
|
|
<div class="line"><a id="l07503" name="l07503"></a><span class="lineno"> 7503</span> </div>
|
|
<div class="line"><a id="l07504" name="l07504"></a><span class="lineno"> 7504</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07505" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07505" name="l07505"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1IGenerator.html"> 7505</a></span> <span class="keyword">class </span><a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a> : <span class="keyword">public</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">GeneratorUntypedBase</a> {</div>
|
|
<div class="foldopen" id="foldopen07506" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07506" name="l07506"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1IGenerator.html#a543d9e13656eef6f4ab7924ac0ee2a0d"> 7506</a></span> std::string <a class="code hl_function" href="classCatch_1_1Generators_1_1IGenerator.html#a543d9e13656eef6f4ab7924ac0ee2a0d">stringifyImpl</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07507" name="l07507"></a><span class="lineno"> 7507</span> return ::Catch::Detail::stringify( <a class="code hl_function" href="classCatch_1_1Generators_1_1IGenerator.html#a0fb6da789cda5b4e90f036737db82485">get</a>() );</div>
|
|
<div class="line"><a id="l07508" name="l07508"></a><span class="lineno"> 7508</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07509" name="l07509"></a><span class="lineno"> 7509</span> </div>
|
|
<div class="line"><a id="l07510" name="l07510"></a><span class="lineno"> 7510</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07511" name="l07511"></a><span class="lineno"> 7511</span> <span class="comment">// Returns the current element of the generator</span></div>
|
|
<div class="line"><a id="l07512" name="l07512"></a><span class="lineno"> 7512</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l07513" name="l07513"></a><span class="lineno"> 7513</span> <span class="comment">// \Precondition The generator is either freshly constructed,</span></div>
|
|
<div class="line"><a id="l07514" name="l07514"></a><span class="lineno"> 7514</span> <span class="comment">// or the last call to `next()` returned true</span></div>
|
|
<div class="line"><a id="l07515" name="l07515"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1IGenerator.html#a0fb6da789cda5b4e90f036737db82485"> 7515</a></span> <span class="keyword">virtual</span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1IGenerator.html#a0fb6da789cda5b4e90f036737db82485">get</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l07516" name="l07516"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1IGenerator.html#a1f8677875fe0ff31f39c60d45504b9a5"> 7516</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1Generators_1_1IGenerator.html#a1f8677875fe0ff31f39c60d45504b9a5">type</a> = T;</div>
|
|
<div class="line"><a id="l07517" name="l07517"></a><span class="lineno"> 7517</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07518" name="l07518"></a><span class="lineno"> 7518</span> </div>
|
|
<div class="line"><a id="l07519" name="l07519"></a><span class="lineno"> 7519</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l07520" name="l07520"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#ab33907d04439196536cc56f05b3537aa"> 7520</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch_1_1Generators.html#ab33907d04439196536cc56f05b3537aa">GeneratorPtr</a> = <a class="code hl_class" href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr<IGenerator<T></a>>;</div>
|
|
<div class="line"><a id="l07521" name="l07521"></a><span class="lineno"> 7521</span> </div>
|
|
<div class="line"><a id="l07522" name="l07522"></a><span class="lineno"> 7522</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07523" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07523" name="l07523"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html"> 7523</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a60489f55be04e4f4d88359f54ddb03ef">GeneratorWrapper</a> final {</div>
|
|
<div class="line"><a id="l07524" name="l07524"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4"> 7524</a></span> <a class="code hl_typedef" href="namespaceCatch_1_1Generators.html#ab33907d04439196536cc56f05b3537aa">GeneratorPtr<T></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">m_generator</a>;</div>
|
|
<div class="line"><a id="l07525" name="l07525"></a><span class="lineno"> 7525</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07527" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07527" name="l07527"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a60489f55be04e4f4d88359f54ddb03ef"> 7527</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a60489f55be04e4f4d88359f54ddb03ef">GeneratorWrapper</a>(<a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator<T></a>* generator):</div>
|
|
<div class="line"><a id="l07528" name="l07528"></a><span class="lineno"> 7528</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">m_generator</a>(generator) {}</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07529" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07529" name="l07529"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a5147ec694b792135c55b421ea7c7080f"> 7529</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a5147ec694b792135c55b421ea7c7080f">GeneratorWrapper</a>(<a class="code hl_typedef" href="namespaceCatch_1_1Generators.html#ab33907d04439196536cc56f05b3537aa">GeneratorPtr<T></a> generator):</div>
|
|
<div class="line"><a id="l07530" name="l07530"></a><span class="lineno"> 7530</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07531" name="l07531"></a><span class="lineno"> 7531</span> </div>
|
|
<div class="foldopen" id="foldopen07532" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07532" name="l07532"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a4a461a591d0bd5360a2745cb2b5011cc"> 7532</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a4a461a591d0bd5360a2745cb2b5011cc">get</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l07533" name="l07533"></a><span class="lineno"> 7533</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">m_generator</a>->get();</div>
|
|
<div class="line"><a id="l07534" name="l07534"></a><span class="lineno"> 7534</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07535" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07535" name="l07535"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#acbfdca94811ae02461bd2cf5f60b666e"> 7535</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#acbfdca94811ae02461bd2cf5f60b666e">next</a>() {</div>
|
|
<div class="line"><a id="l07536" name="l07536"></a><span class="lineno"> 7536</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">m_generator</a>->countedNext();</div>
|
|
<div class="line"><a id="l07537" name="l07537"></a><span class="lineno"> 7537</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07538" name="l07538"></a><span class="lineno"> 7538</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07539" name="l07539"></a><span class="lineno"> 7539</span> </div>
|
|
<div class="line"><a id="l07540" name="l07540"></a><span class="lineno"> 7540</span> </div>
|
|
<div class="line"><a id="l07541" name="l07541"></a><span class="lineno"> 7541</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07542" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07542" name="l07542"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html"> 7542</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a4bed2ad14ffe04102d8135e2c82b3ace">SingleValueGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07543" name="l07543"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938"> 7543</a></span> T <a class="code hl_variable" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938">m_value</a>;</div>
|
|
<div class="line"><a id="l07544" name="l07544"></a><span class="lineno"> 7544</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07545" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07545" name="l07545"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a4bed2ad14ffe04102d8135e2c82b3ace"> 7545</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a4bed2ad14ffe04102d8135e2c82b3ace">SingleValueGenerator</a>(T <span class="keyword">const</span>& <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>) :</div>
|
|
<div class="line"><a id="l07546" name="l07546"></a><span class="lineno"> 7546</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938">m_value</a>(<a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>)</div>
|
|
<div class="line"><a id="l07547" name="l07547"></a><span class="lineno"> 7547</span> {}</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07548" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07548" name="l07548"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a532140dd2d1a673692271bb76a661ebe"> 7548</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a532140dd2d1a673692271bb76a661ebe">SingleValueGenerator</a>(T&& <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>):</div>
|
|
<div class="line"><a id="l07549" name="l07549"></a><span class="lineno"> 7549</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938">m_value</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(<a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>))</div>
|
|
<div class="line"><a id="l07550" name="l07550"></a><span class="lineno"> 7550</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07551" name="l07551"></a><span class="lineno"> 7551</span> </div>
|
|
<div class="foldopen" id="foldopen07552" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07552" name="l07552"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#af1ed1913c9c73687fd74378fe5394382"> 7552</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#af1ed1913c9c73687fd74378fe5394382">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07553" name="l07553"></a><span class="lineno"> 7553</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938">m_value</a>;</div>
|
|
<div class="line"><a id="l07554" name="l07554"></a><span class="lineno"> 7554</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07555" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07555" name="l07555"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a10833b34e3ccbc484624185712eb8b6e"> 7555</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a10833b34e3ccbc484624185712eb8b6e">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07556" name="l07556"></a><span class="lineno"> 7556</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07557" name="l07557"></a><span class="lineno"> 7557</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07558" name="l07558"></a><span class="lineno"> 7558</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07559" name="l07559"></a><span class="lineno"> 7559</span> </div>
|
|
<div class="line"><a id="l07560" name="l07560"></a><span class="lineno"> 7560</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07561" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07561" name="l07561"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html"> 7561</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6e9f473655413c1cb15f079890f06b86">FixedValuesGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07562" name="l07562"></a><span class="lineno"> 7562</span> <span class="keyword">static_assert</span>(!std::is_same<T, bool>::value,</div>
|
|
<div class="line"><a id="l07563" name="l07563"></a><span class="lineno"> 7563</span> <span class="stringliteral">"FixedValuesGenerator does not support bools because of std::vector<bool>"</span></div>
|
|
<div class="line"><a id="l07564" name="l07564"></a><span class="lineno"> 7564</span> <span class="stringliteral">"specialization, use SingleValue Generator instead."</span>);</div>
|
|
<div class="line"><a id="l07565" name="l07565"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6"> 7565</a></span> std::vector<T> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6">m_values</a>;</div>
|
|
<div class="line"><a id="l07566" name="l07566"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33"> 7566</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33">m_idx</a> = 0;</div>
|
|
<div class="line"><a id="l07567" name="l07567"></a><span class="lineno"> 7567</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07568" name="l07568"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6e9f473655413c1cb15f079890f06b86"> 7568</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6e9f473655413c1cb15f079890f06b86">FixedValuesGenerator</a>( std::initializer_list<T> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a> ) : <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6">m_values</a>( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a> ) {}</div>
|
|
<div class="line"><a id="l07569" name="l07569"></a><span class="lineno"> 7569</span> </div>
|
|
<div class="foldopen" id="foldopen07570" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07570" name="l07570"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a8d64d3d943f3029d1669ae3cf91cc493"> 7570</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a8d64d3d943f3029d1669ae3cf91cc493">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07571" name="l07571"></a><span class="lineno"> 7571</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6">m_values</a>[<a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33">m_idx</a>];</div>
|
|
<div class="line"><a id="l07572" name="l07572"></a><span class="lineno"> 7572</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07573" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07573" name="l07573"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6ce9e3ed045239c7b82873f24bd9cd3b"> 7573</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6ce9e3ed045239c7b82873f24bd9cd3b">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07574" name="l07574"></a><span class="lineno"> 7574</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33">m_idx</a>;</div>
|
|
<div class="line"><a id="l07575" name="l07575"></a><span class="lineno"> 7575</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33">m_idx</a> < <a class="code hl_variable" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6">m_values</a>.size();</div>
|
|
<div class="line"><a id="l07576" name="l07576"></a><span class="lineno"> 7576</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07577" name="l07577"></a><span class="lineno"> 7577</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07578" name="l07578"></a><span class="lineno"> 7578</span> </div>
|
|
<div class="line"><a id="l07579" name="l07579"></a><span class="lineno"> 7579</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> DecayedT = std::decay_t<T>></div>
|
|
<div class="foldopen" id="foldopen07580" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07580" name="l07580"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b"> 7580</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<DecayedT></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( T&& <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a> ) {</div>
|
|
<div class="line"><a id="l07581" name="l07581"></a><span class="lineno"> 7581</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<DecayedT></a>(</div>
|
|
<div class="line"><a id="l07582" name="l07582"></a><span class="lineno"> 7582</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1SingleValueGenerator.html">SingleValueGenerator<DecayedT></a>>(</div>
|
|
<div class="line"><a id="l07583" name="l07583"></a><span class="lineno"> 7583</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a> ) ) );</div>
|
|
<div class="line"><a id="l07584" name="l07584"></a><span class="lineno"> 7584</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07585" name="l07585"></a><span class="lineno"> 7585</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07586" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07586" name="l07586"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f"> 7586</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a>(std::initializer_list<T> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a>) {</div>
|
|
<div class="line"><a id="l07587" name="l07587"></a><span class="lineno"> 7587</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1FixedValuesGenerator.html">FixedValuesGenerator<T></a>>(<a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a>));</div>
|
|
<div class="line"><a id="l07588" name="l07588"></a><span class="lineno"> 7588</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07589" name="l07589"></a><span class="lineno"> 7589</span> </div>
|
|
<div class="line"><a id="l07590" name="l07590"></a><span class="lineno"> 7590</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07591" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07591" name="l07591"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html"> 7591</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a2bcb50c42a8729cbac079b3b61699a61">Generators</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07592" name="l07592"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de"> 7592</a></span> std::vector<GeneratorWrapper<T>> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>;</div>
|
|
<div class="line"><a id="l07593" name="l07593"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c"> 7593</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a> = 0;</div>
|
|
<div class="line"><a id="l07594" name="l07594"></a><span class="lineno"> 7594</span> </div>
|
|
<div class="foldopen" id="foldopen07595" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07595" name="l07595"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b"> 7595</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b">add_generator</a>( <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator ) {</div>
|
|
<div class="line"><a id="l07596" name="l07596"></a><span class="lineno"> 7596</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.emplace_back( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( generator ) );</div>
|
|
<div class="line"><a id="l07597" name="l07597"></a><span class="lineno"> 7597</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07598" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07598" name="l07598"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#aafe58f12805e3f9e54a0c0ec233d17aa"> 7598</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#aafe58f12805e3f9e54a0c0ec233d17aa">add_generator</a>( T <span class="keyword">const</span>& val ) {</div>
|
|
<div class="line"><a id="l07599" name="l07599"></a><span class="lineno"> 7599</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.emplace_back( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( val ) );</div>
|
|
<div class="line"><a id="l07600" name="l07600"></a><span class="lineno"> 7600</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07601" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07601" name="l07601"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#adf8cc578226ac198a3efa08f742e1b09"> 7601</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#adf8cc578226ac198a3efa08f742e1b09">add_generator</a>( T&& val ) {</div>
|
|
<div class="line"><a id="l07602" name="l07602"></a><span class="lineno"> 7602</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.emplace_back( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( val ) ) );</div>
|
|
<div class="line"><a id="l07603" name="l07603"></a><span class="lineno"> 7603</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07604" name="l07604"></a><span class="lineno"> 7604</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
|
|
<div class="line"><a id="l07605" name="l07605"></a><span class="lineno"> 7605</span> std::enable_if_t<!std::is_same<std::decay_t<U>, T><a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">::value</a>></div>
|
|
<div class="foldopen" id="foldopen07606" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07606" name="l07606"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#adeef65a4c2a9d1926567c2e7409f7f19"> 7606</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#adeef65a4c2a9d1926567c2e7409f7f19">add_generator</a>( U&& val ) {</div>
|
|
<div class="line"><a id="l07607" name="l07607"></a><span class="lineno"> 7607</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b">add_generator</a>( T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( val ) ) );</div>
|
|
<div class="line"><a id="l07608" name="l07608"></a><span class="lineno"> 7608</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07609" name="l07609"></a><span class="lineno"> 7609</span> </div>
|
|
<div class="foldopen" id="foldopen07610" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07610" name="l07610"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#aac3b0e4ab4488979af0ffcfa70d9af0c"> 7610</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#aac3b0e4ab4488979af0ffcfa70d9af0c">add_generators</a>( U&& valueOrGenerator ) {</div>
|
|
<div class="line"><a id="l07611" name="l07611"></a><span class="lineno"> 7611</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b">add_generator</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( valueOrGenerator ) );</div>
|
|
<div class="line"><a id="l07612" name="l07612"></a><span class="lineno"> 7612</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07613" name="l07613"></a><span class="lineno"> 7613</span> </div>
|
|
<div class="line"><a id="l07614" name="l07614"></a><span class="lineno"> 7614</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, <span class="keyword">typename</span>... Gs></div>
|
|
<div class="foldopen" id="foldopen07615" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07615" name="l07615"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#ae41374dc7e65437321c54d979e8df45a"> 7615</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#ae41374dc7e65437321c54d979e8df45a">add_generators</a>( U&& valueOrGenerator, Gs&&... moreGenerators ) {</div>
|
|
<div class="line"><a id="l07616" name="l07616"></a><span class="lineno"> 7616</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b">add_generator</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( valueOrGenerator ) );</div>
|
|
<div class="line"><a id="l07617" name="l07617"></a><span class="lineno"> 7617</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#aac3b0e4ab4488979af0ffcfa70d9af0c">add_generators</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( moreGenerators )... );</div>
|
|
<div class="line"><a id="l07618" name="l07618"></a><span class="lineno"> 7618</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07619" name="l07619"></a><span class="lineno"> 7619</span> </div>
|
|
<div class="line"><a id="l07620" name="l07620"></a><span class="lineno"> 7620</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07621" name="l07621"></a><span class="lineno"> 7621</span> <span class="keyword">template</span> <<span class="keyword">typename</span>... Gs></div>
|
|
<div class="foldopen" id="foldopen07622" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07622" name="l07622"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#a2bcb50c42a8729cbac079b3b61699a61"> 7622</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#a2bcb50c42a8729cbac079b3b61699a61">Generators</a>(Gs &&... moreGenerators) {</div>
|
|
<div class="line"><a id="l07623" name="l07623"></a><span class="lineno"> 7623</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.reserve(<span class="keyword">sizeof</span>...(Gs));</div>
|
|
<div class="line"><a id="l07624" name="l07624"></a><span class="lineno"> 7624</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#aac3b0e4ab4488979af0ffcfa70d9af0c">add_generators</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(moreGenerators)...);</div>
|
|
<div class="line"><a id="l07625" name="l07625"></a><span class="lineno"> 7625</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07626" name="l07626"></a><span class="lineno"> 7626</span> </div>
|
|
<div class="foldopen" id="foldopen07627" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07627" name="l07627"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#ad86b343eac34f6771358507dd8ea98c4"> 7627</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#ad86b343eac34f6771358507dd8ea98c4">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07628" name="l07628"></a><span class="lineno"> 7628</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>[<a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a>].get();</div>
|
|
<div class="line"><a id="l07629" name="l07629"></a><span class="lineno"> 7629</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07630" name="l07630"></a><span class="lineno"> 7630</span> </div>
|
|
<div class="foldopen" id="foldopen07631" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07631" name="l07631"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1Generators.html#ad127fd2a07347b527f79ab3b78bd40fb"> 7631</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1Generators.html#ad127fd2a07347b527f79ab3b78bd40fb">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07632" name="l07632"></a><span class="lineno"> 7632</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a> >= <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.size()) {</div>
|
|
<div class="line"><a id="l07633" name="l07633"></a><span class="lineno"> 7633</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07634" name="l07634"></a><span class="lineno"> 7634</span> }</div>
|
|
<div class="line"><a id="l07635" name="l07635"></a><span class="lineno"> 7635</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> current_status = <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>[<a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a>].next();</div>
|
|
<div class="line"><a id="l07636" name="l07636"></a><span class="lineno"> 7636</span> <span class="keywordflow">if</span> (!current_status) {</div>
|
|
<div class="line"><a id="l07637" name="l07637"></a><span class="lineno"> 7637</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a>;</div>
|
|
<div class="line"><a id="l07638" name="l07638"></a><span class="lineno"> 7638</span> }</div>
|
|
<div class="line"><a id="l07639" name="l07639"></a><span class="lineno"> 7639</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">m_current</a> < <a class="code hl_variable" href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">m_generators</a>.size();</div>
|
|
<div class="line"><a id="l07640" name="l07640"></a><span class="lineno"> 7640</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07641" name="l07641"></a><span class="lineno"> 7641</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07642" name="l07642"></a><span class="lineno"> 7642</span> </div>
|
|
<div class="line"><a id="l07643" name="l07643"></a><span class="lineno"> 7643</span> </div>
|
|
<div class="line"><a id="l07644" name="l07644"></a><span class="lineno"> 7644</span> <span class="keyword">template</span> <<span class="keyword">typename</span>... Ts></div>
|
|
<div class="line"><a id="l07645" name="l07645"></a><span class="lineno"> 7645</span> GeneratorWrapper<std::tuple<std::decay_t<Ts>...>></div>
|
|
<div class="foldopen" id="foldopen07646" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07646" name="l07646"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a2fa425101893564ec8e95b0813077257"> 7646</a></span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a2fa425101893564ec8e95b0813077257">table</a>( std::initializer_list<std::tuple<std::decay_t<Ts>...>> tuples ) {</div>
|
|
<div class="line"><a id="l07647" name="l07647"></a><span class="lineno"> 7647</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">values</a><std::tuple<Ts...>>( tuples );</div>
|
|
<div class="line"><a id="l07648" name="l07648"></a><span class="lineno"> 7648</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07649" name="l07649"></a><span class="lineno"> 7649</span> </div>
|
|
<div class="line"><a id="l07650" name="l07650"></a><span class="lineno"> 7650</span> <span class="comment">// Tag type to signal that a generator sequence should convert arguments to a specific type</span></div>
|
|
<div class="line"><a id="l07651" name="l07651"></a><span class="lineno"> 7651</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l07652" name="l07652"></a><span class="lineno"><a class="line" href="structCatch_1_1Generators_1_1as.html"> 7652</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structCatch_1_1Generators_1_1as.html">as</a> {};</div>
|
|
<div class="line"><a id="l07653" name="l07653"></a><span class="lineno"> 7653</span> </div>
|
|
<div class="line"><a id="l07654" name="l07654"></a><span class="lineno"> 7654</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Gs></div>
|
|
<div class="foldopen" id="foldopen07655" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07655" name="l07655"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b"> 7655</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator, Gs &&... moreGenerators ) -> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<T></a> {</div>
|
|
<div class="line"><a id="l07656" name="l07656"></a><span class="lineno"> 7656</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<T></a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(moreGenerators)...);</div>
|
|
<div class="line"><a id="l07657" name="l07657"></a><span class="lineno"> 7657</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07658" name="l07658"></a><span class="lineno"> 7658</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07659" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07659" name="l07659"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#abefb1a0fab3c669b98a53037b3286d22"> 7659</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator ) -> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<T></a> {</div>
|
|
<div class="line"><a id="l07660" name="l07660"></a><span class="lineno"> 7660</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<T></a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator));</div>
|
|
<div class="line"><a id="l07661" name="l07661"></a><span class="lineno"> 7661</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07662" name="l07662"></a><span class="lineno"> 7662</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Gs></div>
|
|
<div class="foldopen" id="foldopen07663" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07663" name="l07663"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#abde22ab68f2348d7e03ca09df3b74e8d"> 7663</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( T&& val, Gs &&... moreGenerators ) -> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<std::decay_t<T></a>> {</div>
|
|
<div class="line"><a id="l07664" name="l07664"></a><span class="lineno"> 7664</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( val ) ), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( moreGenerators )... );</div>
|
|
<div class="line"><a id="l07665" name="l07665"></a><span class="lineno"> 7665</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07666" name="l07666"></a><span class="lineno"> 7666</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keyword">typename</span>... Gs></div>
|
|
<div class="foldopen" id="foldopen07667" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07667" name="l07667"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#aac8c5682b95d3467b013de492f21e7e2"> 7667</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( <a class="code hl_struct" href="structCatch_1_1Generators_1_1as.html">as<T></a>, U&& val, Gs &&... moreGenerators ) -> <a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<T></a> {</div>
|
|
<div class="line"><a id="l07668" name="l07668"></a><span class="lineno"> 7668</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">makeGenerators</a>( <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( T( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( val ) ) ), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( moreGenerators )... );</div>
|
|
<div class="line"><a id="l07669" name="l07669"></a><span class="lineno"> 7669</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07670" name="l07670"></a><span class="lineno"> 7670</span> </div>
|
|
<div class="line"><a id="l07671" name="l07671"></a><span class="lineno"> 7671</span> <a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>* acquireGeneratorTracker( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> generatorName,</div>
|
|
<div class="line"><a id="l07672" name="l07672"></a><span class="lineno"> 7672</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo );</div>
|
|
<div class="line"><a id="l07673" name="l07673"></a><span class="lineno"> 7673</span> <a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>* createGeneratorTracker( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> generatorName,</div>
|
|
<div class="line"><a id="l07674" name="l07674"></a><span class="lineno"> 7674</span> <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> lineInfo,</div>
|
|
<div class="line"><a id="l07675" name="l07675"></a><span class="lineno"> 7675</span> GeneratorBasePtr&& generator );</div>
|
|
<div class="line"><a id="l07676" name="l07676"></a><span class="lineno"> 7676</span> </div>
|
|
<div class="line"><a id="l07677" name="l07677"></a><span class="lineno"> 7677</span> <span class="keyword">template</span><<span class="keyword">typename</span> L></div>
|
|
<div class="foldopen" id="foldopen07678" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07678" name="l07678"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a118b852de3ec020b428ad43245dda9c8"> 7678</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a118b852de3ec020b428ad43245dda9c8">generate</a>( <a class="code hl_class" href="classCatch_1_1StringRef.html">StringRef</a> generatorName, <a class="code hl_struct" href="structCatch_1_1SourceLineInfo.html">SourceLineInfo</a> <span class="keyword">const</span>& lineInfo, L <span class="keyword">const</span>& generatorExpression ) -> <span class="keyword">typename</span> <span class="keyword">decltype</span>(generatorExpression())::type {</div>
|
|
<div class="line"><a id="l07679" name="l07679"></a><span class="lineno"> 7679</span> <span class="keyword">using </span>UnderlyingType = <span class="keyword">typename</span> <span class="keyword">decltype</span>(generatorExpression())::type;</div>
|
|
<div class="line"><a id="l07680" name="l07680"></a><span class="lineno"> 7680</span> </div>
|
|
<div class="line"><a id="l07681" name="l07681"></a><span class="lineno"> 7681</span> <a class="code hl_class" href="classCatch_1_1IGeneratorTracker.html">IGeneratorTracker</a>* tracker = <a class="code hl_function" href="namespaceCatch_1_1Generators.html#ab0ad55177ac1e5f00b123909b191f436">acquireGeneratorTracker</a>( generatorName, lineInfo );</div>
|
|
<div class="line"><a id="l07682" name="l07682"></a><span class="lineno"> 7682</span> <span class="comment">// Creation of tracker is delayed after generator creation, so</span></div>
|
|
<div class="line"><a id="l07683" name="l07683"></a><span class="lineno"> 7683</span> <span class="comment">// that constructing generator can fail without breaking everything.</span></div>
|
|
<div class="line"><a id="l07684" name="l07684"></a><span class="lineno"> 7684</span> <span class="keywordflow">if</span> (!tracker) {</div>
|
|
<div class="line"><a id="l07685" name="l07685"></a><span class="lineno"> 7685</span> tracker = <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a24e1bac2be5e078f26c395a96470b706">createGeneratorTracker</a>(</div>
|
|
<div class="line"><a id="l07686" name="l07686"></a><span class="lineno"> 7686</span> generatorName,</div>
|
|
<div class="line"><a id="l07687" name="l07687"></a><span class="lineno"> 7687</span> lineInfo,</div>
|
|
<div class="line"><a id="l07688" name="l07688"></a><span class="lineno"> 7688</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1Generators.html">Generators<UnderlyingType></a>>(</div>
|
|
<div class="line"><a id="l07689" name="l07689"></a><span class="lineno"> 7689</span> generatorExpression() ) );</div>
|
|
<div class="line"><a id="l07690" name="l07690"></a><span class="lineno"> 7690</span> }</div>
|
|
<div class="line"><a id="l07691" name="l07691"></a><span class="lineno"> 7691</span> </div>
|
|
<div class="line"><a id="l07692" name="l07692"></a><span class="lineno"> 7692</span> <span class="keyword">auto</span> <span class="keyword">const</span>& generator = <span class="keyword">static_cast<</span><a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator<UnderlyingType></a> const&<span class="keyword">></span>( *tracker-><a class="code hl_function" href="classCatch_1_1IGeneratorTracker.html#a23be942fc51672598bfa02c678c3078a">getGenerator</a>() );</div>
|
|
<div class="line"><a id="l07693" name="l07693"></a><span class="lineno"> 7693</span> <span class="keywordflow">return</span> generator.get();</div>
|
|
<div class="line"><a id="l07694" name="l07694"></a><span class="lineno"> 7694</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07695" name="l07695"></a><span class="lineno"> 7695</span> </div>
|
|
<div class="line"><a id="l07696" name="l07696"></a><span class="lineno"> 7696</span>} <span class="comment">// namespace Generators</span></div>
|
|
<div class="line"><a id="l07697" name="l07697"></a><span class="lineno"> 7697</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l07698" name="l07698"></a><span class="lineno"> 7698</span> </div>
|
|
<div class="line"><a id="l07699" name="l07699"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3b9c703ad56c22a8fb5a69644e177c24"> 7699</a></span><span class="preprocessor">#define CATCH_INTERNAL_GENERATOR_STRINGIZE_IMPL( ... ) #__VA_ARGS__##_catch_sr</span></div>
|
|
<div class="line"><a id="l07700" name="l07700"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ac5b7c22ab9441d8059c77ca66cc91578"> 7700</a></span><span class="preprocessor">#define CATCH_INTERNAL_GENERATOR_STRINGIZE(...) CATCH_INTERNAL_GENERATOR_STRINGIZE_IMPL(__VA_ARGS__)</span></div>
|
|
<div class="line"><a id="l07701" name="l07701"></a><span class="lineno"> 7701</span> </div>
|
|
<div class="foldopen" id="foldopen07702" data-start="" data-end="">
|
|
<div class="line"><a id="l07702" name="l07702"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a4941c6427cfa36ee7c52d734e460f9df"> 7702</a></span><span class="preprocessor">#define GENERATE( ... ) \</span></div>
|
|
<div class="line"><a id="l07703" name="l07703"></a><span class="lineno"> 7703</span><span class="preprocessor"> Catch::Generators::generate( CATCH_INTERNAL_GENERATOR_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \</span></div>
|
|
<div class="line"><a id="l07704" name="l07704"></a><span class="lineno"> 7704</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l07705" name="l07705"></a><span class="lineno"> 7705</span><span class="preprocessor"> [ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) </span><span class="comment">//NOLINT(google-build-using-namespace)</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07706" data-start="" data-end="">
|
|
<div class="line"><a id="l07706" name="l07706"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a44e2fff00253a218f0a392ad6abac624"> 7706</a></span><span class="preprocessor">#define GENERATE_COPY( ... ) \</span></div>
|
|
<div class="line"><a id="l07707" name="l07707"></a><span class="lineno"> 7707</span><span class="preprocessor"> Catch::Generators::generate( CATCH_INTERNAL_GENERATOR_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \</span></div>
|
|
<div class="line"><a id="l07708" name="l07708"></a><span class="lineno"> 7708</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l07709" name="l07709"></a><span class="lineno"> 7709</span><span class="preprocessor"> [=]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) </span><span class="comment">//NOLINT(google-build-using-namespace)</span></div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07710" data-start="" data-end="">
|
|
<div class="line"><a id="l07710" name="l07710"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aebcb76dcf5cbbbd3dca153a21d6f78fe"> 7710</a></span><span class="preprocessor">#define GENERATE_REF( ... ) \</span></div>
|
|
<div class="line"><a id="l07711" name="l07711"></a><span class="lineno"> 7711</span><span class="preprocessor"> Catch::Generators::generate( CATCH_INTERNAL_GENERATOR_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \</span></div>
|
|
<div class="line"><a id="l07712" name="l07712"></a><span class="lineno"> 7712</span><span class="preprocessor"> CATCH_INTERNAL_LINEINFO, \</span></div>
|
|
<div class="line"><a id="l07713" name="l07713"></a><span class="lineno"> 7713</span><span class="preprocessor"> [&]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) </span><span class="comment">//NOLINT(google-build-using-namespace)</span></div>
|
|
</div>
|
|
<div class="line"><a id="l07714" name="l07714"></a><span class="lineno"> 7714</span> </div>
|
|
<div class="line"><a id="l07715" name="l07715"></a><span class="lineno"> 7715</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATORS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07716" name="l07716"></a><span class="lineno"> 7716</span> </div>
|
|
<div class="line"><a id="l07717" name="l07717"></a><span class="lineno"> 7717</span> </div>
|
|
<div class="line"><a id="l07718" name="l07718"></a><span class="lineno"> 7718</span><span class="preprocessor">#ifndef CATCH_GENERATORS_ADAPTERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07719" name="l07719"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a3a5e13e0773a88dbc1cc1e815a7529e1"> 7719</a></span><span class="preprocessor">#define CATCH_GENERATORS_ADAPTERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07720" name="l07720"></a><span class="lineno"> 7720</span> </div>
|
|
<div class="line"><a id="l07721" name="l07721"></a><span class="lineno"> 7721</span> </div>
|
|
<div class="line"><a id="l07722" name="l07722"></a><span class="lineno"> 7722</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l07723" name="l07723"></a><span class="lineno"> 7723</span> </div>
|
|
<div class="line"><a id="l07724" name="l07724"></a><span class="lineno"> 7724</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07725" name="l07725"></a><span class="lineno"> 7725</span><span class="keyword">namespace </span>Generators {</div>
|
|
<div class="line"><a id="l07726" name="l07726"></a><span class="lineno"> 7726</span> </div>
|
|
<div class="line"><a id="l07727" name="l07727"></a><span class="lineno"> 7727</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07728" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07728" name="l07728"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html"> 7728</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1TakeGenerator.html#aacef789c01a86246249c88a184268c65">TakeGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07729" name="l07729"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89"> 7729</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89">m_generator</a>;</div>
|
|
<div class="line"><a id="l07730" name="l07730"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978"> 7730</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978">m_returned</a> = 0;</div>
|
|
<div class="line"><a id="l07731" name="l07731"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7"> 7731</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7">m_target</a>;</div>
|
|
<div class="line"><a id="l07732" name="l07732"></a><span class="lineno"> 7732</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07733" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07733" name="l07733"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#aacef789c01a86246249c88a184268c65"> 7733</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1TakeGenerator.html#aacef789c01a86246249c88a184268c65">TakeGenerator</a>(<span class="keywordtype">size_t</span> target, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator):</div>
|
|
<div class="line"><a id="l07734" name="l07734"></a><span class="lineno"> 7734</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)),</div>
|
|
<div class="line"><a id="l07735" name="l07735"></a><span class="lineno"> 7735</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7">m_target</a>(target)</div>
|
|
<div class="line"><a id="l07736" name="l07736"></a><span class="lineno"> 7736</span> {</div>
|
|
<div class="line"><a id="l07737" name="l07737"></a><span class="lineno"> 7737</span> assert(target != 0 && <span class="stringliteral">"Empty generators are not allowed"</span>);</div>
|
|
<div class="line"><a id="l07738" name="l07738"></a><span class="lineno"> 7738</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07739" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07739" name="l07739"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#a7240fb96c311b7d7fde32d1fb5bb67c6"> 7739</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1TakeGenerator.html#a7240fb96c311b7d7fde32d1fb5bb67c6">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07740" name="l07740"></a><span class="lineno"> 7740</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89">m_generator</a>.get();</div>
|
|
<div class="line"><a id="l07741" name="l07741"></a><span class="lineno"> 7741</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07742" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07742" name="l07742"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1TakeGenerator.html#ae343f3e28fe04e0a20d6fdf69bfb4c78"> 7742</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1TakeGenerator.html#ae343f3e28fe04e0a20d6fdf69bfb4c78">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07743" name="l07743"></a><span class="lineno"> 7743</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978">m_returned</a>;</div>
|
|
<div class="line"><a id="l07744" name="l07744"></a><span class="lineno"> 7744</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978">m_returned</a> >= <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7">m_target</a>) {</div>
|
|
<div class="line"><a id="l07745" name="l07745"></a><span class="lineno"> 7745</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07746" name="l07746"></a><span class="lineno"> 7746</span> }</div>
|
|
<div class="line"><a id="l07747" name="l07747"></a><span class="lineno"> 7747</span> </div>
|
|
<div class="line"><a id="l07748" name="l07748"></a><span class="lineno"> 7748</span> <span class="keyword">const</span> <span class="keyword">auto</span> success = <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89">m_generator</a>.next();</div>
|
|
<div class="line"><a id="l07749" name="l07749"></a><span class="lineno"> 7749</span> <span class="comment">// If the underlying generator does not contain enough values</span></div>
|
|
<div class="line"><a id="l07750" name="l07750"></a><span class="lineno"> 7750</span> <span class="comment">// then we cut short as well</span></div>
|
|
<div class="line"><a id="l07751" name="l07751"></a><span class="lineno"> 7751</span> <span class="keywordflow">if</span> (!success) {</div>
|
|
<div class="line"><a id="l07752" name="l07752"></a><span class="lineno"> 7752</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978">m_returned</a> = <a class="code hl_variable" href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7">m_target</a>;</div>
|
|
<div class="line"><a id="l07753" name="l07753"></a><span class="lineno"> 7753</span> }</div>
|
|
<div class="line"><a id="l07754" name="l07754"></a><span class="lineno"> 7754</span> <span class="keywordflow">return</span> success;</div>
|
|
<div class="line"><a id="l07755" name="l07755"></a><span class="lineno"> 7755</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07756" name="l07756"></a><span class="lineno"> 7756</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07757" name="l07757"></a><span class="lineno"> 7757</span> </div>
|
|
<div class="line"><a id="l07758" name="l07758"></a><span class="lineno"> 7758</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07759" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07759" name="l07759"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#adedfdb318219078ce9107690745d2f2f"> 7759</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#adedfdb318219078ce9107690745d2f2f">take</a>(<span class="keywordtype">size_t</span> target, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator) {</div>
|
|
<div class="line"><a id="l07760" name="l07760"></a><span class="lineno"> 7760</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1TakeGenerator.html">TakeGenerator<T></a>>(target, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)));</div>
|
|
<div class="line"><a id="l07761" name="l07761"></a><span class="lineno"> 7761</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07762" name="l07762"></a><span class="lineno"> 7762</span> </div>
|
|
<div class="line"><a id="l07763" name="l07763"></a><span class="lineno"> 7763</span> </div>
|
|
<div class="line"><a id="l07764" name="l07764"></a><span class="lineno"> 7764</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Predicate></div>
|
|
<div class="foldopen" id="foldopen07765" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07765" name="l07765"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html"> 7765</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1FilterGenerator.html#aa16886a5e41cbd3b6ffa3dd52388a3a1">FilterGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07766" name="l07766"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf"> 7766</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>;</div>
|
|
<div class="line"><a id="l07767" name="l07767"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1"> 7767</a></span> Predicate <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1">m_predicate</a>;</div>
|
|
<div class="line"><a id="l07768" name="l07768"></a><span class="lineno"> 7768</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07769" name="l07769"></a><span class="lineno"> 7769</span> <span class="keyword">template</span> <<span class="keyword">typename</span> P = Predicate></div>
|
|
<div class="foldopen" id="foldopen07770" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07770" name="l07770"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html#aa16886a5e41cbd3b6ffa3dd52388a3a1"> 7770</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1FilterGenerator.html#aa16886a5e41cbd3b6ffa3dd52388a3a1">FilterGenerator</a>(P&& pred, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator):</div>
|
|
<div class="line"><a id="l07771" name="l07771"></a><span class="lineno"> 7771</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)),</div>
|
|
<div class="line"><a id="l07772" name="l07772"></a><span class="lineno"> 7772</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1">m_predicate</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(pred))</div>
|
|
<div class="line"><a id="l07773" name="l07773"></a><span class="lineno"> 7773</span> {</div>
|
|
<div class="line"><a id="l07774" name="l07774"></a><span class="lineno"> 7774</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1">m_predicate</a>(<a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>.get())) {</div>
|
|
<div class="line"><a id="l07775" name="l07775"></a><span class="lineno"> 7775</span> <span class="comment">// It might happen that there are no values that pass the</span></div>
|
|
<div class="line"><a id="l07776" name="l07776"></a><span class="lineno"> 7776</span> <span class="comment">// filter. In that case we throw an exception.</span></div>
|
|
<div class="line"><a id="l07777" name="l07777"></a><span class="lineno"> 7777</span> auto has_initial_value = next();</div>
|
|
<div class="line"><a id="l07778" name="l07778"></a><span class="lineno"> 7778</span> if (!has_initial_value) {</div>
|
|
<div class="line"><a id="l07779" name="l07779"></a><span class="lineno"> 7779</span> Detail::throw_generator_exception(<span class="stringliteral">"No valid value found in filtered generator"</span>);</div>
|
|
<div class="line"><a id="l07780" name="l07780"></a><span class="lineno"> 7780</span> }</div>
|
|
<div class="line"><a id="l07781" name="l07781"></a><span class="lineno"> 7781</span> }</div>
|
|
<div class="line"><a id="l07782" name="l07782"></a><span class="lineno"> 7782</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07783" name="l07783"></a><span class="lineno"> 7783</span> </div>
|
|
<div class="foldopen" id="foldopen07784" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07784" name="l07784"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html#a903396f7cf5f1a04379b7c917351e6da"> 7784</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1FilterGenerator.html#a903396f7cf5f1a04379b7c917351e6da">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07785" name="l07785"></a><span class="lineno"> 7785</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>.get();</div>
|
|
<div class="line"><a id="l07786" name="l07786"></a><span class="lineno"> 7786</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07787" name="l07787"></a><span class="lineno"> 7787</span> </div>
|
|
<div class="foldopen" id="foldopen07788" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07788" name="l07788"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1FilterGenerator.html#a02ce0839dcaa7545c55d0fe70cc50e84"> 7788</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1FilterGenerator.html#a02ce0839dcaa7545c55d0fe70cc50e84">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07789" name="l07789"></a><span class="lineno"> 7789</span> <span class="keywordtype">bool</span> success = <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>.next();</div>
|
|
<div class="line"><a id="l07790" name="l07790"></a><span class="lineno"> 7790</span> <span class="keywordflow">if</span> (!success) {</div>
|
|
<div class="line"><a id="l07791" name="l07791"></a><span class="lineno"> 7791</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07792" name="l07792"></a><span class="lineno"> 7792</span> }</div>
|
|
<div class="line"><a id="l07793" name="l07793"></a><span class="lineno"> 7793</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1">m_predicate</a>(<a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>.get()) && (success = <a class="code hl_variable" href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">m_generator</a>.next()) == <span class="keyword">true</span>);</div>
|
|
<div class="line"><a id="l07794" name="l07794"></a><span class="lineno"> 7794</span> <span class="keywordflow">return</span> success;</div>
|
|
<div class="line"><a id="l07795" name="l07795"></a><span class="lineno"> 7795</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07796" name="l07796"></a><span class="lineno"> 7796</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07797" name="l07797"></a><span class="lineno"> 7797</span> </div>
|
|
<div class="line"><a id="l07798" name="l07798"></a><span class="lineno"> 7798</span> </div>
|
|
<div class="line"><a id="l07799" name="l07799"></a><span class="lineno"> 7799</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Predicate></div>
|
|
<div class="foldopen" id="foldopen07800" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07800" name="l07800"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a4df89be8072a9685ee89b6776a54bb93"> 7800</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a4df89be8072a9685ee89b6776a54bb93">filter</a>(Predicate&& pred, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator) {</div>
|
|
<div class="line"><a id="l07801" name="l07801"></a><span class="lineno"> 7801</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1FilterGenerator.html">FilterGenerator<T, Predicate></a>>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(pred), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)));</div>
|
|
<div class="line"><a id="l07802" name="l07802"></a><span class="lineno"> 7802</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07803" name="l07803"></a><span class="lineno"> 7803</span> </div>
|
|
<div class="line"><a id="l07804" name="l07804"></a><span class="lineno"> 7804</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07805" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07805" name="l07805"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html"> 7805</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a3aee12c4f9c2c04823ca3c75a20f234f">RepeatGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07806" name="l07806"></a><span class="lineno"> 7806</span> <span class="keyword">static_assert</span>(!std::is_same<T, bool>::value,</div>
|
|
<div class="line"><a id="l07807" name="l07807"></a><span class="lineno"> 7807</span> <span class="stringliteral">"RepeatGenerator currently does not support bools"</span></div>
|
|
<div class="line"><a id="l07808" name="l07808"></a><span class="lineno"> 7808</span> <span class="stringliteral">"because of std::vector<bool> specialization"</span>);</div>
|
|
<div class="line"><a id="l07809" name="l07809"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154"> 7809</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154">m_generator</a>;</div>
|
|
<div class="line"><a id="l07810" name="l07810"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e"> 7810</a></span> <span class="keyword">mutable</span> std::vector<T> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">m_returned</a>;</div>
|
|
<div class="line"><a id="l07811" name="l07811"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf"> 7811</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">m_target_repeats</a>;</div>
|
|
<div class="line"><a id="l07812" name="l07812"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf"> 7812</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a> = 0;</div>
|
|
<div class="line"><a id="l07813" name="l07813"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6"> 7813</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">m_repeat_index</a> = 0;</div>
|
|
<div class="line"><a id="l07814" name="l07814"></a><span class="lineno"> 7814</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07815" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07815" name="l07815"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a3aee12c4f9c2c04823ca3c75a20f234f"> 7815</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a3aee12c4f9c2c04823ca3c75a20f234f">RepeatGenerator</a>(<span class="keywordtype">size_t</span> repeats, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator):</div>
|
|
<div class="line"><a id="l07816" name="l07816"></a><span class="lineno"> 7816</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)),</div>
|
|
<div class="line"><a id="l07817" name="l07817"></a><span class="lineno"> 7817</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">m_target_repeats</a>(repeats)</div>
|
|
<div class="line"><a id="l07818" name="l07818"></a><span class="lineno"> 7818</span> {</div>
|
|
<div class="line"><a id="l07819" name="l07819"></a><span class="lineno"> 7819</span> assert(<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">m_target_repeats</a> > 0 && <span class="stringliteral">"Repeat generator must repeat at least once"</span>);</div>
|
|
<div class="line"><a id="l07820" name="l07820"></a><span class="lineno"> 7820</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07821" name="l07821"></a><span class="lineno"> 7821</span> </div>
|
|
<div class="foldopen" id="foldopen07822" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07822" name="l07822"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a1b5a4018df276b05dc48e5fa0bcd3d28"> 7822</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a1b5a4018df276b05dc48e5fa0bcd3d28">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07823" name="l07823"></a><span class="lineno"> 7823</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a> == 0) {</div>
|
|
<div class="line"><a id="l07824" name="l07824"></a><span class="lineno"> 7824</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">m_returned</a>.push_back(<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154">m_generator</a>.get());</div>
|
|
<div class="line"><a id="l07825" name="l07825"></a><span class="lineno"> 7825</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">m_returned</a>.back();</div>
|
|
<div class="line"><a id="l07826" name="l07826"></a><span class="lineno"> 7826</span> }</div>
|
|
<div class="line"><a id="l07827" name="l07827"></a><span class="lineno"> 7827</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">m_returned</a>[<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">m_repeat_index</a>];</div>
|
|
<div class="line"><a id="l07828" name="l07828"></a><span class="lineno"> 7828</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07829" name="l07829"></a><span class="lineno"> 7829</span> </div>
|
|
<div class="foldopen" id="foldopen07830" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07830" name="l07830"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a24d5c2b1c09d6d220d4bd4c83f222dcb"> 7830</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1RepeatGenerator.html#a24d5c2b1c09d6d220d4bd4c83f222dcb">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07831" name="l07831"></a><span class="lineno"> 7831</span> <span class="comment">// There are 2 basic cases:</span></div>
|
|
<div class="line"><a id="l07832" name="l07832"></a><span class="lineno"> 7832</span> <span class="comment">// 1) We are still reading the generator</span></div>
|
|
<div class="line"><a id="l07833" name="l07833"></a><span class="lineno"> 7833</span> <span class="comment">// 2) We are reading our own cache</span></div>
|
|
<div class="line"><a id="l07834" name="l07834"></a><span class="lineno"> 7834</span> </div>
|
|
<div class="line"><a id="l07835" name="l07835"></a><span class="lineno"> 7835</span> <span class="comment">// In the first case, we need to poke the underlying generator.</span></div>
|
|
<div class="line"><a id="l07836" name="l07836"></a><span class="lineno"> 7836</span> <span class="comment">// If it happily moves, we are left in that state, otherwise it is time to start reading from our cache</span></div>
|
|
<div class="line"><a id="l07837" name="l07837"></a><span class="lineno"> 7837</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a> == 0) {</div>
|
|
<div class="line"><a id="l07838" name="l07838"></a><span class="lineno"> 7838</span> <span class="keyword">const</span> <span class="keyword">auto</span> success = <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154">m_generator</a>.next();</div>
|
|
<div class="line"><a id="l07839" name="l07839"></a><span class="lineno"> 7839</span> <span class="keywordflow">if</span> (!success) {</div>
|
|
<div class="line"><a id="l07840" name="l07840"></a><span class="lineno"> 7840</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a>;</div>
|
|
<div class="line"><a id="l07841" name="l07841"></a><span class="lineno"> 7841</span> }</div>
|
|
<div class="line"><a id="l07842" name="l07842"></a><span class="lineno"> 7842</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a> < <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">m_target_repeats</a>;</div>
|
|
<div class="line"><a id="l07843" name="l07843"></a><span class="lineno"> 7843</span> }</div>
|
|
<div class="line"><a id="l07844" name="l07844"></a><span class="lineno"> 7844</span> </div>
|
|
<div class="line"><a id="l07845" name="l07845"></a><span class="lineno"> 7845</span> <span class="comment">// In the second case, we need to move indices forward and check that we haven't run up against the end</span></div>
|
|
<div class="line"><a id="l07846" name="l07846"></a><span class="lineno"> 7846</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">m_repeat_index</a>;</div>
|
|
<div class="line"><a id="l07847" name="l07847"></a><span class="lineno"> 7847</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">m_repeat_index</a> == <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">m_returned</a>.size()) {</div>
|
|
<div class="line"><a id="l07848" name="l07848"></a><span class="lineno"> 7848</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">m_repeat_index</a> = 0;</div>
|
|
<div class="line"><a id="l07849" name="l07849"></a><span class="lineno"> 7849</span> ++<a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a>;</div>
|
|
<div class="line"><a id="l07850" name="l07850"></a><span class="lineno"> 7850</span> }</div>
|
|
<div class="line"><a id="l07851" name="l07851"></a><span class="lineno"> 7851</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">m_current_repeat</a> < <a class="code hl_variable" href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">m_target_repeats</a>;</div>
|
|
<div class="line"><a id="l07852" name="l07852"></a><span class="lineno"> 7852</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07853" name="l07853"></a><span class="lineno"> 7853</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07854" name="l07854"></a><span class="lineno"> 7854</span> </div>
|
|
<div class="line"><a id="l07855" name="l07855"></a><span class="lineno"> 7855</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07856" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07856" name="l07856"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#a510cc0d72a7bab8f967827e695b981ba"> 7856</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a510cc0d72a7bab8f967827e695b981ba">repeat</a>(<span class="keywordtype">size_t</span> repeats, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator) {</div>
|
|
<div class="line"><a id="l07857" name="l07857"></a><span class="lineno"> 7857</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1RepeatGenerator.html">RepeatGenerator<T></a>>(repeats, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)));</div>
|
|
<div class="line"><a id="l07858" name="l07858"></a><span class="lineno"> 7858</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07859" name="l07859"></a><span class="lineno"> 7859</span> </div>
|
|
<div class="line"><a id="l07860" name="l07860"></a><span class="lineno"> 7860</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keyword">typename</span> Func></div>
|
|
<div class="foldopen" id="foldopen07861" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07861" name="l07861"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html"> 7861</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1MapGenerator.html#a525c7eaf53ad220ee7add534aff2522c">MapGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><T> {</div>
|
|
<div class="line"><a id="l07862" name="l07862"></a><span class="lineno"> 7862</span> <span class="comment">// TBD: provide static assert for mapping function, for friendly error message</span></div>
|
|
<div class="line"><a id="l07863" name="l07863"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66"> 7863</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<U></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">m_generator</a>;</div>
|
|
<div class="line"><a id="l07864" name="l07864"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff"> 7864</a></span> Func <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff">m_function</a>;</div>
|
|
<div class="line"><a id="l07865" name="l07865"></a><span class="lineno"> 7865</span> <span class="comment">// To avoid returning dangling reference, we have to save the values</span></div>
|
|
<div class="line"><a id="l07866" name="l07866"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42"> 7866</a></span> T <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42">m_cache</a>;</div>
|
|
<div class="line"><a id="l07867" name="l07867"></a><span class="lineno"> 7867</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07868" name="l07868"></a><span class="lineno"> 7868</span> <span class="keyword">template</span> <<span class="keyword">typename</span> F2 = Func></div>
|
|
<div class="foldopen" id="foldopen07869" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07869" name="l07869"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#a525c7eaf53ad220ee7add534aff2522c"> 7869</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1MapGenerator.html#a525c7eaf53ad220ee7add534aff2522c">MapGenerator</a>(F2&& function, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<U></a>&& generator) :</div>
|
|
<div class="line"><a id="l07870" name="l07870"></a><span class="lineno"> 7870</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator)),</div>
|
|
<div class="line"><a id="l07871" name="l07871"></a><span class="lineno"> 7871</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff">m_function</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(function)),</div>
|
|
<div class="line"><a id="l07872" name="l07872"></a><span class="lineno"> 7872</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42">m_cache</a>(<a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff">m_function</a>(<a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">m_generator</a>.<a class="code hl_function" href="classCatch_1_1Generators_1_1MapGenerator.html#abd7ffdef7f7c8575331146c4a95141ad">get</a>()))</div>
|
|
<div class="line"><a id="l07873" name="l07873"></a><span class="lineno"> 7873</span> {}</div>
|
|
</div>
|
|
<div class="line"><a id="l07874" name="l07874"></a><span class="lineno"> 7874</span> </div>
|
|
<div class="foldopen" id="foldopen07875" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07875" name="l07875"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#abd7ffdef7f7c8575331146c4a95141ad"> 7875</a></span> T <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1MapGenerator.html#abd7ffdef7f7c8575331146c4a95141ad">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07876" name="l07876"></a><span class="lineno"> 7876</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42">m_cache</a>;</div>
|
|
<div class="line"><a id="l07877" name="l07877"></a><span class="lineno"> 7877</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07878" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07878" name="l07878"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1MapGenerator.html#aa07e2f12d38ae060c30cc30d9dc236c5"> 7878</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1MapGenerator.html#aa07e2f12d38ae060c30cc30d9dc236c5">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07879" name="l07879"></a><span class="lineno"> 7879</span> <span class="keyword">const</span> <span class="keyword">auto</span> success = <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">m_generator</a>.next();</div>
|
|
<div class="line"><a id="l07880" name="l07880"></a><span class="lineno"> 7880</span> <span class="keywordflow">if</span> (success) {</div>
|
|
<div class="line"><a id="l07881" name="l07881"></a><span class="lineno"> 7881</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42">m_cache</a> = <a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff">m_function</a>(<a class="code hl_variable" href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">m_generator</a>.get());</div>
|
|
<div class="line"><a id="l07882" name="l07882"></a><span class="lineno"> 7882</span> }</div>
|
|
<div class="line"><a id="l07883" name="l07883"></a><span class="lineno"> 7883</span> <span class="keywordflow">return</span> success;</div>
|
|
<div class="line"><a id="l07884" name="l07884"></a><span class="lineno"> 7884</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07885" name="l07885"></a><span class="lineno"> 7885</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07886" name="l07886"></a><span class="lineno"> 7886</span> </div>
|
|
<div class="line"><a id="l07887" name="l07887"></a><span class="lineno"> 7887</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Func, <span class="keyword">typename</span> U, <span class="keyword">typename</span> T = FunctionReturnType<Func, U>></div>
|
|
<div class="foldopen" id="foldopen07888" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07888" name="l07888"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#af33fd06c51ac9173c3bee2ddee2559a6"> 7888</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#af33fd06c51ac9173c3bee2ddee2559a6">map</a>(Func&& function, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<U></a>&& generator) {</div>
|
|
<div class="line"><a id="l07889" name="l07889"></a><span class="lineno"> 7889</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>(</div>
|
|
<div class="line"><a id="l07890" name="l07890"></a><span class="lineno"> 7890</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><<a class="code hl_class" href="classCatch_1_1Generators_1_1MapGenerator.html">MapGenerator<T, U, Func></a>>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(function), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator))</div>
|
|
<div class="line"><a id="l07891" name="l07891"></a><span class="lineno"> 7891</span> );</div>
|
|
<div class="line"><a id="l07892" name="l07892"></a><span class="lineno"> 7892</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07893" name="l07893"></a><span class="lineno"> 7893</span> </div>
|
|
<div class="line"><a id="l07894" name="l07894"></a><span class="lineno"> 7894</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keyword">typename</span> Func></div>
|
|
<div class="line"><a id="l07895" name="l07895"></a><span class="lineno"> 7895</span> GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator) {</div>
|
|
<div class="line"><a id="l07896" name="l07896"></a><span class="lineno"> 7896</span> <span class="keywordflow">return</span> GeneratorWrapper<T>(</div>
|
|
<div class="line"><a id="l07897" name="l07897"></a><span class="lineno"> 7897</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><MapGenerator<T, U, Func>>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(function), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator))</div>
|
|
<div class="line"><a id="l07898" name="l07898"></a><span class="lineno"> 7898</span> );</div>
|
|
<div class="line"><a id="l07899" name="l07899"></a><span class="lineno"> 7899</span> }</div>
|
|
<div class="line"><a id="l07900" name="l07900"></a><span class="lineno"> 7900</span> </div>
|
|
<div class="line"><a id="l07901" name="l07901"></a><span class="lineno"> 7901</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07902" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07902" name="l07902"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html"> 7902</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a50c334d00cde3166d71e9b90ebc2d2e3">ChunkGenerator</a> final : <span class="keyword">public</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1IGenerator.html">IGenerator</a><std::vector<T>> {</div>
|
|
<div class="line"><a id="l07903" name="l07903"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827"> 7903</a></span> std::vector<T> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>;</div>
|
|
<div class="line"><a id="l07904" name="l07904"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb"> 7904</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a>;</div>
|
|
<div class="line"><a id="l07905" name="l07905"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb"> 7905</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>;</div>
|
|
<div class="line"><a id="l07906" name="l07906"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a4a5f14d8f6c7a94e5771eb999c1ffe5a"> 7906</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a4a5f14d8f6c7a94e5771eb999c1ffe5a">m_used_up</a> = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07907" name="l07907"></a><span class="lineno"> 7907</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen07908" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07908" name="l07908"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a50c334d00cde3166d71e9b90ebc2d2e3"> 7908</a></span> <a class="code hl_function" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a50c334d00cde3166d71e9b90ebc2d2e3">ChunkGenerator</a>(<span class="keywordtype">size_t</span> size, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a> generator) :</div>
|
|
<div class="line"><a id="l07909" name="l07909"></a><span class="lineno"> 7909</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a>(size), <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator))</div>
|
|
<div class="line"><a id="l07910" name="l07910"></a><span class="lineno"> 7910</span> {</div>
|
|
<div class="line"><a id="l07911" name="l07911"></a><span class="lineno"> 7911</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>.reserve(<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a>);</div>
|
|
<div class="line"><a id="l07912" name="l07912"></a><span class="lineno"> 7912</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a> != 0) {</div>
|
|
<div class="line"><a id="l07913" name="l07913"></a><span class="lineno"> 7913</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>.push_back(<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>.get());</div>
|
|
<div class="line"><a id="l07914" name="l07914"></a><span class="lineno"> 7914</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i < <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a>; ++i) {</div>
|
|
<div class="line"><a id="l07915" name="l07915"></a><span class="lineno"> 7915</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>.next()) {</div>
|
|
<div class="line"><a id="l07916" name="l07916"></a><span class="lineno"> 7916</span> <a class="code hl_function" href="namespaceCatch_1_1Generators_1_1Detail.html#ab6e4736f7a2b0501a13c4dc4adfe5bb6">Detail::throw_generator_exception</a>(<span class="stringliteral">"Not enough values to initialize the first chunk"</span>);</div>
|
|
<div class="line"><a id="l07917" name="l07917"></a><span class="lineno"> 7917</span> }</div>
|
|
<div class="line"><a id="l07918" name="l07918"></a><span class="lineno"> 7918</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>.push_back(<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>.get());</div>
|
|
<div class="line"><a id="l07919" name="l07919"></a><span class="lineno"> 7919</span> }</div>
|
|
<div class="line"><a id="l07920" name="l07920"></a><span class="lineno"> 7920</span> }</div>
|
|
<div class="line"><a id="l07921" name="l07921"></a><span class="lineno"> 7921</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07922" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07922" name="l07922"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#afab9d06c84aa469b3af60eb3e8f10597"> 7922</a></span> std::vector<T> <span class="keyword">const</span>& <a class="code hl_function" href="classCatch_1_1Generators_1_1ChunkGenerator.html#afab9d06c84aa469b3af60eb3e8f10597">get</a>()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l07923" name="l07923"></a><span class="lineno"> 7923</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>;</div>
|
|
<div class="line"><a id="l07924" name="l07924"></a><span class="lineno"> 7924</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07925" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07925" name="l07925"></a><span class="lineno"><a class="line" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a545e89f80eb1e3c953491541ea083f86"> 7925</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a545e89f80eb1e3c953491541ea083f86">next</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l07926" name="l07926"></a><span class="lineno"> 7926</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>.clear();</div>
|
|
<div class="line"><a id="l07927" name="l07927"></a><span class="lineno"> 7927</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> idx = 0; idx < <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">m_chunk_size</a>; ++idx) {</div>
|
|
<div class="line"><a id="l07928" name="l07928"></a><span class="lineno"> 7928</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>.next()) {</div>
|
|
<div class="line"><a id="l07929" name="l07929"></a><span class="lineno"> 7929</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l07930" name="l07930"></a><span class="lineno"> 7930</span> }</div>
|
|
<div class="line"><a id="l07931" name="l07931"></a><span class="lineno"> 7931</span> <a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">m_chunk</a>.push_back(<a class="code hl_variable" href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">m_generator</a>.get());</div>
|
|
<div class="line"><a id="l07932" name="l07932"></a><span class="lineno"> 7932</span> }</div>
|
|
<div class="line"><a id="l07933" name="l07933"></a><span class="lineno"> 7933</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l07934" name="l07934"></a><span class="lineno"> 7934</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07935" name="l07935"></a><span class="lineno"> 7935</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l07936" name="l07936"></a><span class="lineno"> 7936</span> </div>
|
|
<div class="line"><a id="l07937" name="l07937"></a><span class="lineno"> 7937</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="foldopen" id="foldopen07938" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07938" name="l07938"></a><span class="lineno"><a class="line" href="namespaceCatch_1_1Generators.html#acb4654b4e840e438e3bc204ac4d8e157"> 7938</a></span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<std::vector<T></a>> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#acb4654b4e840e438e3bc204ac4d8e157">chunk</a>(<span class="keywordtype">size_t</span> size, <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<T></a>&& generator) {</div>
|
|
<div class="line"><a id="l07939" name="l07939"></a><span class="lineno"> 7939</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classCatch_1_1Generators_1_1GeneratorWrapper.html">GeneratorWrapper<std::vector<T></a>>(</div>
|
|
<div class="line"><a id="l07940" name="l07940"></a><span class="lineno"> 7940</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique<ChunkGenerator<T></a>>(size, <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(generator))</div>
|
|
<div class="line"><a id="l07941" name="l07941"></a><span class="lineno"> 7941</span> );</div>
|
|
<div class="line"><a id="l07942" name="l07942"></a><span class="lineno"> 7942</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07943" name="l07943"></a><span class="lineno"> 7943</span> </div>
|
|
<div class="line"><a id="l07944" name="l07944"></a><span class="lineno"> 7944</span>} <span class="comment">// namespace Generators</span></div>
|
|
<div class="line"><a id="l07945" name="l07945"></a><span class="lineno"> 7945</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l07946" name="l07946"></a><span class="lineno"> 7946</span> </div>
|
|
<div class="line"><a id="l07947" name="l07947"></a><span class="lineno"> 7947</span> </div>
|
|
<div class="line"><a id="l07948" name="l07948"></a><span class="lineno"> 7948</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATORS_ADAPTERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07949" name="l07949"></a><span class="lineno"> 7949</span> </div>
|
|
<div class="line"><a id="l07950" name="l07950"></a><span class="lineno"> 7950</span> </div>
|
|
<div class="line"><a id="l07951" name="l07951"></a><span class="lineno"> 7951</span><span class="preprocessor">#ifndef CATCH_GENERATORS_RANDOM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07952" name="l07952"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a138d63686a72951a45a7d7fc4179e1e2"> 7952</a></span><span class="preprocessor">#define CATCH_GENERATORS_RANDOM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07953" name="l07953"></a><span class="lineno"> 7953</span> </div>
|
|
<div class="line"><a id="l07954" name="l07954"></a><span class="lineno"> 7954</span> </div>
|
|
<div class="line"><a id="l07955" name="l07955"></a><span class="lineno"> 7955</span> </div>
|
|
<div class="line"><a id="l07956" name="l07956"></a><span class="lineno"> 7956</span><span class="preprocessor">#ifndef CATCH_RANDOM_NUMBER_GENERATOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07957" name="l07957"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#ab8bffae2453530671b9ce53d50414219"> 7957</a></span><span class="preprocessor">#define CATCH_RANDOM_NUMBER_GENERATOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l07958" name="l07958"></a><span class="lineno"> 7958</span> </div>
|
|
<div class="line"><a id="l07959" name="l07959"></a><span class="lineno"> 7959</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l07960" name="l07960"></a><span class="lineno"> 7960</span> </div>
|
|
<div class="line"><a id="l07961" name="l07961"></a><span class="lineno"> 7961</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l07962" name="l07962"></a><span class="lineno"> 7962</span> </div>
|
|
<div class="line"><a id="l07963" name="l07963"></a><span class="lineno"> 7963</span> <span class="comment">// This is a simple implementation of C++11 Uniform Random Number</span></div>
|
|
<div class="line"><a id="l07964" name="l07964"></a><span class="lineno"> 7964</span> <span class="comment">// Generator. It does not provide all operators, because Catch2</span></div>
|
|
<div class="line"><a id="l07965" name="l07965"></a><span class="lineno"> 7965</span> <span class="comment">// does not use it, but it should behave as expected inside stdlib's</span></div>
|
|
<div class="line"><a id="l07966" name="l07966"></a><span class="lineno"> 7966</span> <span class="comment">// distributions.</span></div>
|
|
<div class="line"><a id="l07967" name="l07967"></a><span class="lineno"> 7967</span> <span class="comment">// The implementation is based on the PCG family (http://pcg-random.org)</span></div>
|
|
<div class="foldopen" id="foldopen07968" data-start="{" data-end="};">
|
|
<div class="line"><a id="l07968" name="l07968"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html"> 7968</a></span> <span class="keyword">class </span><a class="code hl_function" href="classCatch_1_1SimplePcg32.html#a045c99a96f9b0faf384e22f871576282">SimplePcg32</a> {</div>
|
|
<div class="line"><a id="l07969" name="l07969"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a87e58661dd1fa2994b6b9c38c4efafdb"> 7969</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1SimplePcg32.html#a87e58661dd1fa2994b6b9c38c4efafdb">state_type</a> = std::uint64_t;</div>
|
|
<div class="line"><a id="l07970" name="l07970"></a><span class="lineno"> 7970</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l07971" name="l07971"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff"> 7971</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff">result_type</a> = std::uint32_t;</div>
|
|
<div class="foldopen" id="foldopen07972" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07972" name="l07972"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a3a5dd5385309d3999943697c33f57715"> 7972</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff">result_type</a> (<a class="code hl_function" href="classCatch_1_1SimplePcg32.html#a3a5dd5385309d3999943697c33f57715">min</a>)() {</div>
|
|
<div class="line"><a id="l07973" name="l07973"></a><span class="lineno"> 7973</span> <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line"><a id="l07974" name="l07974"></a><span class="lineno"> 7974</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen07975" data-start="{" data-end="}">
|
|
<div class="line"><a id="l07975" name="l07975"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a6eb0691cc730376d80ab49ba6f4e47d6"> 7975</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff">result_type</a> (<a class="code hl_function" href="classCatch_1_1SimplePcg32.html#a6eb0691cc730376d80ab49ba6f4e47d6">max</a>)() {</div>
|
|
<div class="line"><a id="l07976" name="l07976"></a><span class="lineno"> 7976</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code hl_typedef" href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff">result_type</a><span class="keyword">></span>(-1);</div>
|
|
<div class="line"><a id="l07977" name="l07977"></a><span class="lineno"> 7977</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l07978" name="l07978"></a><span class="lineno"> 7978</span> </div>
|
|
<div class="line"><a id="l07979" name="l07979"></a><span class="lineno"> 7979</span> <span class="comment">// Provide some default initial state for the default constructor</span></div>
|
|
<div class="line"><a id="l07980" name="l07980"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a045c99a96f9b0faf384e22f871576282"> 7980</a></span> <a class="code hl_function" href="classCatch_1_1SimplePcg32.html#a045c99a96f9b0faf384e22f871576282">SimplePcg32</a>():<a class="code hl_function" href="classCatch_1_1SimplePcg32.html#a045c99a96f9b0faf384e22f871576282">SimplePcg32</a>(0xed743cc4U) {}</div>
|
|
<div class="line"><a id="l07981" name="l07981"></a><span class="lineno"> 7981</span> </div>
|
|
<div class="line"><a id="l07982" name="l07982"></a><span class="lineno"> 7982</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a>(result_type seed_);</div>
|
|
<div class="line"><a id="l07983" name="l07983"></a><span class="lineno"> 7983</span> </div>
|
|
<div class="line"><a id="l07984" name="l07984"></a><span class="lineno"> 7984</span> <span class="keywordtype">void</span> seed(result_type seed_);</div>
|
|
<div class="line"><a id="l07985" name="l07985"></a><span class="lineno"> 7985</span> <span class="keywordtype">void</span> discard(uint64_t skip);</div>
|
|
<div class="line"><a id="l07986" name="l07986"></a><span class="lineno"> 7986</span> </div>
|
|
<div class="line"><a id="l07987" name="l07987"></a><span class="lineno"> 7987</span> result_type operator()();</div>
|
|
<div class="line"><a id="l07988" name="l07988"></a><span class="lineno"> 7988</span> </div>
|
|
<div class="line"><a id="l07989" name="l07989"></a><span class="lineno"> 7989</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l07990" name="l07990"></a><span class="lineno"> 7990</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>(<a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a> <span class="keyword">const</span>& lhs, <a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a> <span class="keyword">const</span>& rhs);</div>
|
|
<div class="line"><a id="l07991" name="l07991"></a><span class="lineno"> 7991</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">operator!=</a>(<a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a> <span class="keyword">const</span>& lhs, <a class="code hl_class" href="classCatch_1_1SimplePcg32.html">SimplePcg32</a> <span class="keyword">const</span>& rhs);</div>
|
|
<div class="line"><a id="l07992" name="l07992"></a><span class="lineno"> 7992</span> </div>
|
|
<div class="line"><a id="l07993" name="l07993"></a><span class="lineno"> 7993</span> <span class="comment">// In theory we also need operator<< and operator>></span></div>
|
|
<div class="line"><a id="l07994" name="l07994"></a><span class="lineno"> 7994</span> <span class="comment">// In practice we do not use them, so we will skip them for now</span></div>
|
|
<div class="line"><a id="l07995" name="l07995"></a><span class="lineno"> 7995</span> </div>
|
|
<div class="line"><a id="l07996" name="l07996"></a><span class="lineno"> 7996</span> </div>
|
|
<div class="line"><a id="l07997" name="l07997"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a830bb20e51776b605910f4a00dde46ad"> 7997</a></span> std::uint64_t <a class="code hl_variable" href="classCatch_1_1SimplePcg32.html#a830bb20e51776b605910f4a00dde46ad">m_state</a>;</div>
|
|
<div class="line"><a id="l07998" name="l07998"></a><span class="lineno"> 7998</span> <span class="comment">// This part of the state determines which "stream" of the numbers</span></div>
|
|
<div class="line"><a id="l07999" name="l07999"></a><span class="lineno"> 7999</span> <span class="comment">// is chosen -- we take it as a constant for Catch2, so we only</span></div>
|
|
<div class="line"><a id="l08000" name="l08000"></a><span class="lineno"> 8000</span> <span class="comment">// need to deal with seeding the main state.</span></div>
|
|
<div class="line"><a id="l08001" name="l08001"></a><span class="lineno"> 8001</span> <span class="comment">// Picked by reading 8 bytes from `/dev/random` :-)</span></div>
|
|
<div class="line"><a id="l08002" name="l08002"></a><span class="lineno"><a class="line" href="classCatch_1_1SimplePcg32.html#a34f89a8ee054db204c8cf17632ac4c03"> 8002</a></span> <span class="keyword">static</span> <span class="keyword">const</span> std::uint64_t <a class="code hl_variable" href="classCatch_1_1SimplePcg32.html#a34f89a8ee054db204c8cf17632ac4c03">s_inc</a> = (0x13ed0cc53f939476ULL << 1ULL) | 1ULL;</div>
|
|
<div class="line"><a id="l08003" name="l08003"></a><span class="lineno"> 8003</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l08004" name="l08004"></a><span class="lineno"> 8004</span> </div>
|
|
<div class="line"><a id="l08005" name="l08005"></a><span class="lineno"> 8005</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08006" name="l08006"></a><span class="lineno"> 8006</span> </div>
|
|
<div class="line"><a id="l08007" name="l08007"></a><span class="lineno"> 8007</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RANDOM_NUMBER_GENERATOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08008" name="l08008"></a><span class="lineno"> 8008</span> </div>
|
|
<div class="line"><a id="l08009" name="l08009"></a><span class="lineno"> 8009</span> </div>
|
|
<div class="line"><a id="l08010" name="l08010"></a><span class="lineno"> 8010</span> </div>
|
|
<div class="line"><a id="l08011" name="l08011"></a><span class="lineno"> 8011</span><span class="preprocessor">#ifndef CATCH_UNIFORM_INTEGER_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08012" name="l08012"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#a62d237e50a3e459b6ab48e5d78d507f1"> 8012</a></span><span class="preprocessor">#define CATCH_UNIFORM_INTEGER_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08013" name="l08013"></a><span class="lineno"> 8013</span> </div>
|
|
<div class="line"><a id="l08014" name="l08014"></a><span class="lineno"> 8014</span> </div>
|
|
<div class="line"><a id="l08015" name="l08015"></a><span class="lineno"> 8015</span> </div>
|
|
<div class="line"><a id="l08016" name="l08016"></a><span class="lineno"> 8016</span> </div>
|
|
<div class="line"><a id="l08017" name="l08017"></a><span class="lineno"> 8017</span><span class="preprocessor">#ifndef CATCH_RANDOM_INTEGER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08018" name="l08018"></a><span class="lineno"><a class="line" href="catch__amalgamated_8hpp.html#aa1f35cd81088ab05b810d3f1c510170a"> 8018</a></span><span class="preprocessor">#define CATCH_RANDOM_INTEGER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08019" name="l08019"></a><span class="lineno"> 8019</span> </div>
|
|
<div class="line"><a id="l08020" name="l08020"></a><span class="lineno"> 8020</span><span class="preprocessor">#include <climits></span></div>
|
|
<div class="line"><a id="l08021" name="l08021"></a><span class="lineno"> 8021</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l08022" name="l08022"></a><span class="lineno"> 8022</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l08023" name="l08023"></a><span class="lineno"> 8023</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l08024" name="l08024"></a><span class="lineno"> 8024</span> </div>
|
|
<div class="line"><a id="l08025" name="l08025"></a><span class="lineno"> 8025</span><span class="comment">// Note: We use the usual enable-disable-autodetect dance here even though</span></div>
|
|
<div class="line"><a id="l08026" name="l08026"></a><span class="lineno"> 8026</span><span class="comment">// we do not support these in CMake configuration options (yet?).</span></div>
|
|
<div class="line"><a id="l08027" name="l08027"></a><span class="lineno"> 8027</span><span class="comment">// It is highly unlikely that we will need to make these actually</span></div>
|
|
<div class="line"><a id="l08028" name="l08028"></a><span class="lineno"> 8028</span><span class="comment">// user-configurable, but this will make it simpler if weend up needing</span></div>
|
|
<div class="line"><a id="l08029" name="l08029"></a><span class="lineno"> 8029</span><span class="comment">// it, and it provides an escape hatch to the users who need it.</span></div>
|
|
<div class="line"><a id="l08030" name="l08030"></a><span class="lineno"> 8030</span><span class="preprocessor">#if defined( __SIZEOF_INT128__ )</span></div>
|
|
<div class="line"><a id="l08031" name="l08031"></a><span class="lineno"> 8031</span><span class="preprocessor"># define CATCH_CONFIG_INTERNAL_UINT128</span></div>
|
|
<div class="line"><a id="l08032" name="l08032"></a><span class="lineno"> 8032</span><span class="comment">// Unlike GCC, MSVC does not polyfill umul as mulh + mul pair on ARM machines.</span></div>
|
|
<div class="line"><a id="l08033" name="l08033"></a><span class="lineno"> 8033</span><span class="comment">// Currently we do not bother doing this ourselves, but we could if it became</span></div>
|
|
<div class="line"><a id="l08034" name="l08034"></a><span class="lineno"> 8034</span><span class="comment">// important for perf.</span></div>
|
|
<div class="line"><a id="l08035" name="l08035"></a><span class="lineno"> 8035</span><span class="preprocessor">#elif defined( _MSC_VER ) && defined( _M_X64 )</span></div>
|
|
<div class="line"><a id="l08036" name="l08036"></a><span class="lineno"> 8036</span><span class="preprocessor"># define CATCH_CONFIG_INTERNAL_MSVC_UMUL128</span></div>
|
|
<div class="line"><a id="l08037" name="l08037"></a><span class="lineno"> 8037</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08038" name="l08038"></a><span class="lineno"> 8038</span> </div>
|
|
<div class="line"><a id="l08039" name="l08039"></a><span class="lineno"> 8039</span><span class="preprocessor">#if defined( CATCH_CONFIG_INTERNAL_UINT128 ) && \</span></div>
|
|
<div class="line"><a id="l08040" name="l08040"></a><span class="lineno"> 8040</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_UINT128 ) && \</span></div>
|
|
<div class="line"><a id="l08041" name="l08041"></a><span class="lineno"> 8041</span><span class="preprocessor"> !defined( CATCH_CONFIG_UINT128 )</span></div>
|
|
<div class="line"><a id="l08042" name="l08042"></a><span class="lineno"> 8042</span><span class="preprocessor">#define CATCH_CONFIG_UINT128</span></div>
|
|
<div class="line"><a id="l08043" name="l08043"></a><span class="lineno"> 8043</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08044" name="l08044"></a><span class="lineno"> 8044</span> </div>
|
|
<div class="line"><a id="l08045" name="l08045"></a><span class="lineno"> 8045</span><span class="preprocessor">#if defined( CATCH_CONFIG_INTERNAL_MSVC_UMUL128 ) && \</span></div>
|
|
<div class="line"><a id="l08046" name="l08046"></a><span class="lineno"> 8046</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_MSVC_UMUL128 ) && \</span></div>
|
|
<div class="line"><a id="l08047" name="l08047"></a><span class="lineno"> 8047</span><span class="preprocessor"> !defined( CATCH_CONFIG_MSVC_UMUL128 )</span></div>
|
|
<div class="line"><a id="l08048" name="l08048"></a><span class="lineno"> 8048</span><span class="preprocessor"># define CATCH_CONFIG_MSVC_UMUL128</span></div>
|
|
<div class="line"><a id="l08049" name="l08049"></a><span class="lineno"> 8049</span><span class="preprocessor"># include <intrin.h></span></div>
|
|
<div class="line"><a id="l08050" name="l08050"></a><span class="lineno"> 8050</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08051" name="l08051"></a><span class="lineno"> 8051</span> </div>
|
|
<div class="line"><a id="l08052" name="l08052"></a><span class="lineno"> 8052</span> </div>
|
|
<div class="line"><a id="l08053" name="l08053"></a><span class="lineno"> 8053</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceCatch.html">Catch</a> {</div>
|
|
<div class="line"><a id="l08054" name="l08054"></a><span class="lineno"> 8054</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l08055" name="l08055"></a><span class="lineno"> 8055</span> </div>
|
|
<div class="line"><a id="l08056" name="l08056"></a><span class="lineno"> 8056</span> <span class="keyword">template</span> <std::<span class="keywordtype">size_t</span>></div>
|
|
<div class="line"><a id="l08057" name="l08057"></a><span class="lineno"> 8057</span> <span class="keyword">struct </span>SizedUnsignedType;</div>
|
|
<div class="line"><a id="l08058" name="l08058"></a><span class="lineno"> 8058</span><span class="preprocessor">#define SizedUnsignedTypeHelper( TYPE ) \</span></div>
|
|
<div class="line"><a id="l08059" name="l08059"></a><span class="lineno"> 8059</span><span class="preprocessor"> template <> \</span></div>
|
|
<div class="line"><a id="l08060" name="l08060"></a><span class="lineno"> 8060</span><span class="preprocessor"> struct SizedUnsignedType<sizeof( TYPE )> { \</span></div>
|
|
<div class="line"><a id="l08061" name="l08061"></a><span class="lineno"> 8061</span><span class="preprocessor"> using type = TYPE; \</span></div>
|
|
<div class="line"><a id="l08062" name="l08062"></a><span class="lineno"> 8062</span><span class="preprocessor"> }</span></div>
|
|
<div class="line"><a id="l08063" name="l08063"></a><span class="lineno"> 8063</span> </div>
|
|
<div class="line"><a id="l08064" name="l08064"></a><span class="lineno"> 8064</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#ab1d9cd725d9c9eab17a8e9e1c6af1785">SizedUnsignedTypeHelper</a>( std::uint8_t );</div>
|
|
<div class="line"><a id="l08065" name="l08065"></a><span class="lineno"> 8065</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#ab1d9cd725d9c9eab17a8e9e1c6af1785">SizedUnsignedTypeHelper</a>( std::uint16_t );</div>
|
|
<div class="line"><a id="l08066" name="l08066"></a><span class="lineno"> 8066</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#ab1d9cd725d9c9eab17a8e9e1c6af1785">SizedUnsignedTypeHelper</a>( std::uint32_t );</div>
|
|
<div class="line"><a id="l08067" name="l08067"></a><span class="lineno"> 8067</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#ab1d9cd725d9c9eab17a8e9e1c6af1785">SizedUnsignedTypeHelper</a>( std::uint64_t );</div>
|
|
<div class="line"><a id="l08068" name="l08068"></a><span class="lineno"> 8068</span><span class="preprocessor">#undef SizedUnsignedTypeHelper</span></div>
|
|
<div class="line"><a id="l08069" name="l08069"></a><span class="lineno"> 8069</span> </div>
|
|
<div class="line"><a id="l08070" name="l08070"></a><span class="lineno"> 8070</span> <span class="keyword">template</span> <std::<span class="keywordtype">size_t</span> sz></div>
|
|
<div class="line"><a id="l08071" name="l08071"></a><span class="lineno"> 8071</span> <span class="keyword">using </span>SizedUnsignedType_t = <span class="keyword">typename</span> SizedUnsignedType<sz>::type;</div>
|
|
<div class="line"><a id="l08072" name="l08072"></a><span class="lineno"> 8072</span> </div>
|
|
<div class="line"><a id="l08073" name="l08073"></a><span class="lineno"> 8073</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08074" name="l08074"></a><span class="lineno"> 8074</span> <span class="keyword">using </span>DoubleWidthUnsignedType_t = SizedUnsignedType_t<2 * <span class="keyword">sizeof</span>( T )>;</div>
|
|
<div class="line"><a id="l08075" name="l08075"></a><span class="lineno"> 8075</span> </div>
|
|
<div class="line"><a id="l08076" name="l08076"></a><span class="lineno"> 8076</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08077" name="l08077"></a><span class="lineno"> 8077</span> <span class="keyword">struct </span>ExtendedMultResult {</div>
|
|
<div class="line"><a id="l08078" name="l08078"></a><span class="lineno"> 8078</span> T upper;</div>
|
|
<div class="line"><a id="l08079" name="l08079"></a><span class="lineno"> 8079</span> T lower;</div>
|
|
<div class="line"><a id="l08080" name="l08080"></a><span class="lineno"> 8080</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> operator==( ExtendedMultResult <span class="keyword">const</span>& rhs )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l08081" name="l08081"></a><span class="lineno"> 8081</span> <span class="keywordflow">return</span> upper == rhs.upper && lower == rhs.lower;</div>
|
|
<div class="line"><a id="l08082" name="l08082"></a><span class="lineno"> 8082</span> }</div>
|
|
<div class="line"><a id="l08083" name="l08083"></a><span class="lineno"> 8083</span> };</div>
|
|
<div class="line"><a id="l08084" name="l08084"></a><span class="lineno"> 8084</span></div>
|
|
<div class="line"><a id="l08091" name="l08091"></a><span class="lineno"> 8091</span> <span class="keyword">constexpr</span> ExtendedMultResult<std::uint64_t></div>
|
|
<div class="line"><a id="l08092" name="l08092"></a><span class="lineno"> 8092</span> extendedMultPortable(std::uint64_t lhs, std::uint64_t rhs) {</div>
|
|
<div class="line"><a id="l08093" name="l08093"></a><span class="lineno"> 8093</span><span class="preprocessor">#define CarryBits( x ) ( x >> 32 )</span></div>
|
|
<div class="line"><a id="l08094" name="l08094"></a><span class="lineno"> 8094</span><span class="preprocessor">#define Digits( x ) ( x & 0xFF'FF'FF'FF )</span></div>
|
|
<div class="line"><a id="l08095" name="l08095"></a><span class="lineno"> 8095</span> std::uint64_t lhs_low = Digits( lhs );</div>
|
|
<div class="line"><a id="l08096" name="l08096"></a><span class="lineno"> 8096</span> std::uint64_t rhs_low = Digits( rhs );</div>
|
|
<div class="line"><a id="l08097" name="l08097"></a><span class="lineno"> 8097</span> std::uint64_t low_low = ( lhs_low * rhs_low );</div>
|
|
<div class="line"><a id="l08098" name="l08098"></a><span class="lineno"> 8098</span> std::uint64_t high_high = <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( lhs ) * <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( rhs );</div>
|
|
<div class="line"><a id="l08099" name="l08099"></a><span class="lineno"> 8099</span> </div>
|
|
<div class="line"><a id="l08100" name="l08100"></a><span class="lineno"> 8100</span> <span class="comment">// We add in carry bits from low-low already</span></div>
|
|
<div class="line"><a id="l08101" name="l08101"></a><span class="lineno"> 8101</span> std::uint64_t high_low =</div>
|
|
<div class="line"><a id="l08102" name="l08102"></a><span class="lineno"> 8102</span> ( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( lhs ) * rhs_low ) + <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( low_low );</div>
|
|
<div class="line"><a id="l08103" name="l08103"></a><span class="lineno"> 8103</span> <span class="comment">// Note that we can add only low bits from high_low, to avoid</span></div>
|
|
<div class="line"><a id="l08104" name="l08104"></a><span class="lineno"> 8104</span> <span class="comment">// overflow with large inputs</span></div>
|
|
<div class="line"><a id="l08105" name="l08105"></a><span class="lineno"> 8105</span> std::uint64_t low_high =</div>
|
|
<div class="line"><a id="l08106" name="l08106"></a><span class="lineno"> 8106</span> ( lhs_low * <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( rhs ) ) + Digits( high_low );</div>
|
|
<div class="line"><a id="l08107" name="l08107"></a><span class="lineno"> 8107</span> </div>
|
|
<div class="line"><a id="l08108" name="l08108"></a><span class="lineno"> 8108</span> <span class="keywordflow">return</span> { high_high + <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( high_low ) + <a class="code hl_define" href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a>( low_high ),</div>
|
|
<div class="line"><a id="l08109" name="l08109"></a><span class="lineno"> 8109</span> ( low_high << 32 ) | Digits( low_low ) };</div>
|
|
<div class="line"><a id="l08110" name="l08110"></a><span class="lineno"> 8110</span><span class="preprocessor">#undef CarryBits</span></div>
|
|
<div class="line"><a id="l08111" name="l08111"></a><span class="lineno"> 8111</span><span class="preprocessor">#undef Digits</span></div>
|
|
<div class="line"><a id="l08112" name="l08112"></a><span class="lineno"> 8112</span> }</div>
|
|
<div class="line"><a id="l08113" name="l08113"></a><span class="lineno"> 8113</span></div>
|
|
<div class="line"><a id="l08115" name="l08115"></a><span class="lineno"> 8115</span> <span class="keyword">inline</span> ExtendedMultResult<std::uint64_t></div>
|
|
<div class="line"><a id="l08116" name="l08116"></a><span class="lineno"> 8116</span> extendedMult( std::uint64_t lhs, std::uint64_t rhs ) {</div>
|
|
<div class="line"><a id="l08117" name="l08117"></a><span class="lineno"> 8117</span><span class="preprocessor">#if defined( CATCH_CONFIG_UINT128 )</span></div>
|
|
<div class="line"><a id="l08118" name="l08118"></a><span class="lineno"> 8118</span> <span class="keyword">auto</span> result = __uint128_t( lhs ) * __uint128_t( rhs );</div>
|
|
<div class="line"><a id="l08119" name="l08119"></a><span class="lineno"> 8119</span> <span class="keywordflow">return</span> { <span class="keyword">static_cast<</span>std::uint64_t<span class="keyword">></span>( result >> 64 ),</div>
|
|
<div class="line"><a id="l08120" name="l08120"></a><span class="lineno"> 8120</span> <span class="keyword">static_cast<</span>std::uint64_t<span class="keyword">></span>( result ) };</div>
|
|
<div class="line"><a id="l08121" name="l08121"></a><span class="lineno"> 8121</span><span class="preprocessor">#elif defined( CATCH_CONFIG_MSVC_UMUL128 )</span></div>
|
|
<div class="line"><a id="l08122" name="l08122"></a><span class="lineno"> 8122</span> std::uint64_t high;</div>
|
|
<div class="line"><a id="l08123" name="l08123"></a><span class="lineno"> 8123</span> std::uint64_t low = _umul128( lhs, rhs, &high );</div>
|
|
<div class="line"><a id="l08124" name="l08124"></a><span class="lineno"> 8124</span> <span class="keywordflow">return</span> { high, low };</div>
|
|
<div class="line"><a id="l08125" name="l08125"></a><span class="lineno"> 8125</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l08126" name="l08126"></a><span class="lineno"> 8126</span> <span class="keywordflow">return</span> extendedMultPortable( lhs, rhs );</div>
|
|
<div class="line"><a id="l08127" name="l08127"></a><span class="lineno"> 8127</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08128" name="l08128"></a><span class="lineno"> 8128</span> }</div>
|
|
<div class="line"><a id="l08129" name="l08129"></a><span class="lineno"> 8129</span> </div>
|
|
<div class="line"><a id="l08130" name="l08130"></a><span class="lineno"> 8130</span> </div>
|
|
<div class="line"><a id="l08131" name="l08131"></a><span class="lineno"> 8131</span> <span class="keyword">template</span> <<span class="keyword">typename</span> UInt></div>
|
|
<div class="line"><a id="l08132" name="l08132"></a><span class="lineno"> 8132</span> <span class="keyword">constexpr</span> ExtendedMultResult<UInt> extendedMult( UInt lhs, UInt rhs ) {</div>
|
|
<div class="line"><a id="l08133" name="l08133"></a><span class="lineno"> 8133</span> <span class="keyword">static_assert</span>( std::is_unsigned<UInt>::value,</div>
|
|
<div class="line"><a id="l08134" name="l08134"></a><span class="lineno"> 8134</span> <span class="stringliteral">"extendedMult can only handle unsigned integers"</span> );</div>
|
|
<div class="line"><a id="l08135" name="l08135"></a><span class="lineno"> 8135</span> <span class="keyword">static_assert</span>( <span class="keyword">sizeof</span>( UInt ) < <span class="keyword">sizeof</span>( std::uint64_t ),</div>
|
|
<div class="line"><a id="l08136" name="l08136"></a><span class="lineno"> 8136</span> <span class="stringliteral">"Generic extendedMult can only handle types smaller "</span></div>
|
|
<div class="line"><a id="l08137" name="l08137"></a><span class="lineno"> 8137</span> <span class="stringliteral">"than uint64_t"</span> );</div>
|
|
<div class="line"><a id="l08138" name="l08138"></a><span class="lineno"> 8138</span> <span class="keyword">using </span>WideType = DoubleWidthUnsignedType_t<UInt>;</div>
|
|
<div class="line"><a id="l08139" name="l08139"></a><span class="lineno"> 8139</span> </div>
|
|
<div class="line"><a id="l08140" name="l08140"></a><span class="lineno"> 8140</span> <span class="keyword">auto</span> result = WideType( lhs ) * WideType( rhs );</div>
|
|
<div class="line"><a id="l08141" name="l08141"></a><span class="lineno"> 8141</span> <span class="keywordflow">return</span> {</div>
|
|
<div class="line"><a id="l08142" name="l08142"></a><span class="lineno"> 8142</span> <span class="keyword">static_cast<</span>UInt<span class="keyword">></span>( result >> ( CHAR_BIT * <span class="keyword">sizeof</span>( UInt ) ) ),</div>
|
|
<div class="line"><a id="l08143" name="l08143"></a><span class="lineno"> 8143</span> <span class="keyword">static_cast<</span>UInt<span class="keyword">></span>( result & UInt( -1 ) ) };</div>
|
|
<div class="line"><a id="l08144" name="l08144"></a><span class="lineno"> 8144</span> }</div>
|
|
<div class="line"><a id="l08145" name="l08145"></a><span class="lineno"> 8145</span> </div>
|
|
<div class="line"><a id="l08146" name="l08146"></a><span class="lineno"> 8146</span> </div>
|
|
<div class="line"><a id="l08147" name="l08147"></a><span class="lineno"> 8147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetType,</div>
|
|
<div class="line"><a id="l08148" name="l08148"></a><span class="lineno"> 8148</span> <span class="keyword">typename</span> Generator></div>
|
|
<div class="line"><a id="l08149" name="l08149"></a><span class="lineno"> 8149</span> std::enable_if_t<<span class="keyword">sizeof</span>(<span class="keyword">typename</span> Generator::result_type) >= <span class="keyword">sizeof</span>(TargetType),</div>
|
|
<div class="line"><a id="l08150" name="l08150"></a><span class="lineno"> 8150</span> TargetType> fillBitsFrom(Generator& gen) {</div>
|
|
<div class="line"><a id="l08151" name="l08151"></a><span class="lineno"> 8151</span> <span class="keyword">using </span>gresult_type = <span class="keyword">typename</span> Generator::result_type;</div>
|
|
<div class="line"><a id="l08152" name="l08152"></a><span class="lineno"> 8152</span> <span class="keyword">static_assert</span>( std::is_unsigned<TargetType>::value, <span class="stringliteral">"Only unsigned integers are supported"</span> );</div>
|
|
<div class="line"><a id="l08153" name="l08153"></a><span class="lineno"> 8153</span> <span class="keyword">static_assert</span>( Generator::min() == 0 &&</div>
|
|
<div class="line"><a id="l08154" name="l08154"></a><span class="lineno"> 8154</span> Generator::max() == <span class="keyword">static_cast<</span>gresult_type<span class="keyword">></span>( -1 ),</div>
|
|
<div class="line"><a id="l08155" name="l08155"></a><span class="lineno"> 8155</span> <span class="stringliteral">"Generator must be able to output all numbers in its result type (effectively it must be a random bit generator)"</span> );</div>
|
|
<div class="line"><a id="l08156" name="l08156"></a><span class="lineno"> 8156</span> </div>
|
|
<div class="line"><a id="l08157" name="l08157"></a><span class="lineno"> 8157</span> <span class="comment">// We want to return the top bits from a generator, as they are</span></div>
|
|
<div class="line"><a id="l08158" name="l08158"></a><span class="lineno"> 8158</span> <span class="comment">// usually considered higher quality.</span></div>
|
|
<div class="line"><a id="l08159" name="l08159"></a><span class="lineno"> 8159</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> generated_bits = <span class="keyword">sizeof</span>( gresult_type ) * CHAR_BIT;</div>
|
|
<div class="line"><a id="l08160" name="l08160"></a><span class="lineno"> 8160</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> return_bits = <span class="keyword">sizeof</span>( TargetType ) * CHAR_BIT;</div>
|
|
<div class="line"><a id="l08161" name="l08161"></a><span class="lineno"> 8161</span> </div>
|
|
<div class="line"><a id="l08162" name="l08162"></a><span class="lineno"> 8162</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>TargetType<span class="keyword">></span>( gen() >></div>
|
|
<div class="line"><a id="l08163" name="l08163"></a><span class="lineno"> 8163</span> ( generated_bits - return_bits) );</div>
|
|
<div class="line"><a id="l08164" name="l08164"></a><span class="lineno"> 8164</span> }</div>
|
|
<div class="line"><a id="l08165" name="l08165"></a><span class="lineno"> 8165</span> </div>
|
|
<div class="line"><a id="l08166" name="l08166"></a><span class="lineno"> 8166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetType,</div>
|
|
<div class="line"><a id="l08167" name="l08167"></a><span class="lineno"> 8167</span> <span class="keyword">typename</span> Generator></div>
|
|
<div class="line"><a id="l08168" name="l08168"></a><span class="lineno"> 8168</span> std::enable_if_t<<span class="keyword">sizeof</span>(<span class="keyword">typename</span> Generator::result_type) < <span class="keyword">sizeof</span>(TargetType),</div>
|
|
<div class="line"><a id="l08169" name="l08169"></a><span class="lineno"> 8169</span> TargetType> fillBitsFrom(Generator& gen) {</div>
|
|
<div class="line"><a id="l08170" name="l08170"></a><span class="lineno"> 8170</span> <span class="keyword">using </span>gresult_type = <span class="keyword">typename</span> Generator::result_type;</div>
|
|
<div class="line"><a id="l08171" name="l08171"></a><span class="lineno"> 8171</span> <span class="keyword">static_assert</span>( std::is_unsigned<TargetType>::value,</div>
|
|
<div class="line"><a id="l08172" name="l08172"></a><span class="lineno"> 8172</span> <span class="stringliteral">"Only unsigned integers are supported"</span> );</div>
|
|
<div class="line"><a id="l08173" name="l08173"></a><span class="lineno"> 8173</span> <span class="keyword">static_assert</span>( Generator::min() == 0 &&</div>
|
|
<div class="line"><a id="l08174" name="l08174"></a><span class="lineno"> 8174</span> Generator::max() == <span class="keyword">static_cast<</span>gresult_type<span class="keyword">></span>( -1 ),</div>
|
|
<div class="line"><a id="l08175" name="l08175"></a><span class="lineno"> 8175</span> <span class="stringliteral">"Generator must be able to output all numbers in its result type (effectively it must be a random bit generator)"</span> );</div>
|
|
<div class="line"><a id="l08176" name="l08176"></a><span class="lineno"> 8176</span> </div>
|
|
<div class="line"><a id="l08177" name="l08177"></a><span class="lineno"> 8177</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> generated_bits = <span class="keyword">sizeof</span>( gresult_type ) * CHAR_BIT;</div>
|
|
<div class="line"><a id="l08178" name="l08178"></a><span class="lineno"> 8178</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> return_bits = <span class="keyword">sizeof</span>( TargetType ) * CHAR_BIT;</div>
|
|
<div class="line"><a id="l08179" name="l08179"></a><span class="lineno"> 8179</span> std::size_t filled_bits = 0;</div>
|
|
<div class="line"><a id="l08180" name="l08180"></a><span class="lineno"> 8180</span> TargetType ret = 0;</div>
|
|
<div class="line"><a id="l08181" name="l08181"></a><span class="lineno"> 8181</span> <span class="keywordflow">do</span> {</div>
|
|
<div class="line"><a id="l08182" name="l08182"></a><span class="lineno"> 8182</span> ret <<= generated_bits;</div>
|
|
<div class="line"><a id="l08183" name="l08183"></a><span class="lineno"> 8183</span> ret |= gen();</div>
|
|
<div class="line"><a id="l08184" name="l08184"></a><span class="lineno"> 8184</span> filled_bits += generated_bits;</div>
|
|
<div class="line"><a id="l08185" name="l08185"></a><span class="lineno"> 8185</span> } <span class="keywordflow">while</span> ( filled_bits < return_bits );</div>
|
|
<div class="line"><a id="l08186" name="l08186"></a><span class="lineno"> 8186</span> </div>
|
|
<div class="line"><a id="l08187" name="l08187"></a><span class="lineno"> 8187</span> <span class="keywordflow">return</span> ret;</div>
|
|
<div class="line"><a id="l08188" name="l08188"></a><span class="lineno"> 8188</span> }</div>
|
|
<div class="line"><a id="l08189" name="l08189"></a><span class="lineno"> 8189</span> </div>
|
|
<div class="line"><a id="l08190" name="l08190"></a><span class="lineno"> 8190</span> <span class="comment">/*</span></div>
|
|
<div class="line"><a id="l08191" name="l08191"></a><span class="lineno"> 8191</span><span class="comment"> * Transposes numbers into unsigned type while keeping their ordering</span></div>
|
|
<div class="line"><a id="l08192" name="l08192"></a><span class="lineno"> 8192</span><span class="comment"> *</span></div>
|
|
<div class="line"><a id="l08193" name="l08193"></a><span class="lineno"> 8193</span><span class="comment"> * This means that signed types are changed so that the ordering is</span></div>
|
|
<div class="line"><a id="l08194" name="l08194"></a><span class="lineno"> 8194</span><span class="comment"> * [INT_MIN, ..., -1, 0, ..., INT_MAX], rather than order we would</span></div>
|
|
<div class="line"><a id="l08195" name="l08195"></a><span class="lineno"> 8195</span><span class="comment"> * get by simple casting ([0, ..., INT_MAX, INT_MIN, ..., -1])</span></div>
|
|
<div class="line"><a id="l08196" name="l08196"></a><span class="lineno"> 8196</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l08197" name="l08197"></a><span class="lineno"> 8197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> OriginalType, <span class="keyword">typename</span> Un<span class="keywordtype">signed</span>Type></div>
|
|
<div class="line"><a id="l08198" name="l08198"></a><span class="lineno"> 8198</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l08199" name="l08199"></a><span class="lineno"> 8199</span> std::enable_if_t<std::is_signed<OriginalType>::value, UnsignedType></div>
|
|
<div class="line"><a id="l08200" name="l08200"></a><span class="lineno"> 8200</span> transposeToNaturalOrder( UnsignedType in ) {</div>
|
|
<div class="line"><a id="l08201" name="l08201"></a><span class="lineno"> 8201</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l08202" name="l08202"></a><span class="lineno"> 8202</span> <span class="keyword">sizeof</span>( OriginalType ) == <span class="keyword">sizeof</span>( UnsignedType ),</div>
|
|
<div class="line"><a id="l08203" name="l08203"></a><span class="lineno"> 8203</span> <span class="stringliteral">"reordering requires the same sized types on both sides"</span> );</div>
|
|
<div class="line"><a id="l08204" name="l08204"></a><span class="lineno"> 8204</span> <span class="keyword">static_assert</span>( std::is_unsigned<UnsignedType>::value,</div>
|
|
<div class="line"><a id="l08205" name="l08205"></a><span class="lineno"> 8205</span> <span class="stringliteral">"Input type must be unsigned"</span> );</div>
|
|
<div class="line"><a id="l08206" name="l08206"></a><span class="lineno"> 8206</span> <span class="comment">// Assuming 2s complement (standardized in current C++), the</span></div>
|
|
<div class="line"><a id="l08207" name="l08207"></a><span class="lineno"> 8207</span> <span class="comment">// positive and negative numbers are already internally ordered,</span></div>
|
|
<div class="line"><a id="l08208" name="l08208"></a><span class="lineno"> 8208</span> <span class="comment">// and their difference is in the top bit. Swapping it orders</span></div>
|
|
<div class="line"><a id="l08209" name="l08209"></a><span class="lineno"> 8209</span> <span class="comment">// them the desired way.</span></div>
|
|
<div class="line"><a id="l08210" name="l08210"></a><span class="lineno"> 8210</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> highest_bit =</div>
|
|
<div class="line"><a id="l08211" name="l08211"></a><span class="lineno"> 8211</span> UnsignedType( 1 ) << ( <span class="keyword">sizeof</span>( UnsignedType ) * CHAR_BIT - 1 );</div>
|
|
<div class="line"><a id="l08212" name="l08212"></a><span class="lineno"> 8212</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>UnsignedType<span class="keyword">></span>( in ^ highest_bit );</div>
|
|
<div class="line"><a id="l08213" name="l08213"></a><span class="lineno"> 8213</span> }</div>
|
|
<div class="line"><a id="l08214" name="l08214"></a><span class="lineno"> 8214</span> </div>
|
|
<div class="line"><a id="l08215" name="l08215"></a><span class="lineno"> 8215</span> </div>
|
|
<div class="line"><a id="l08216" name="l08216"></a><span class="lineno"> 8216</span> </div>
|
|
<div class="line"><a id="l08217" name="l08217"></a><span class="lineno"> 8217</span> <span class="keyword">template</span> <<span class="keyword">typename</span> OriginalType,</div>
|
|
<div class="line"><a id="l08218" name="l08218"></a><span class="lineno"> 8218</span> <span class="keyword">typename</span> UnsignedType></div>
|
|
<div class="line"><a id="l08219" name="l08219"></a><span class="lineno"> 8219</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l08220" name="l08220"></a><span class="lineno"> 8220</span> std::enable_if_t<std::is_unsigned<OriginalType>::value, UnsignedType></div>
|
|
<div class="line"><a id="l08221" name="l08221"></a><span class="lineno"> 8221</span> transposeToNaturalOrder(UnsignedType in) {</div>
|
|
<div class="line"><a id="l08222" name="l08222"></a><span class="lineno"> 8222</span> <span class="keyword">static_assert</span>(</div>
|
|
<div class="line"><a id="l08223" name="l08223"></a><span class="lineno"> 8223</span> <span class="keyword">sizeof</span>( OriginalType ) == <span class="keyword">sizeof</span>( UnsignedType ),</div>
|
|
<div class="line"><a id="l08224" name="l08224"></a><span class="lineno"> 8224</span> <span class="stringliteral">"reordering requires the same sized types on both sides"</span> );</div>
|
|
<div class="line"><a id="l08225" name="l08225"></a><span class="lineno"> 8225</span> <span class="keyword">static_assert</span>( std::is_unsigned<UnsignedType>::value, <span class="stringliteral">"Input type must be unsigned"</span> );</div>
|
|
<div class="line"><a id="l08226" name="l08226"></a><span class="lineno"> 8226</span> <span class="comment">// No reordering is needed for unsigned -> unsigned</span></div>
|
|
<div class="line"><a id="l08227" name="l08227"></a><span class="lineno"> 8227</span> <span class="keywordflow">return</span> in;</div>
|
|
<div class="line"><a id="l08228" name="l08228"></a><span class="lineno"> 8228</span> }</div>
|
|
<div class="line"><a id="l08229" name="l08229"></a><span class="lineno"> 8229</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l08230" name="l08230"></a><span class="lineno"> 8230</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l08231" name="l08231"></a><span class="lineno"> 8231</span> </div>
|
|
<div class="line"><a id="l08232" name="l08232"></a><span class="lineno"> 8232</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RANDOM_INTEGER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08233" name="l08233"></a><span class="lineno"> 8233</span> </div>
|
|
<div class="line"><a id="l08234" name="l08234"></a><span class="lineno"> 8234</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08235" name="l08235"></a><span class="lineno"> 8235</span></div>
|
|
<div class="line"><a id="l08247" name="l08247"></a><span class="lineno"> 8247</span><span class="keyword">template</span> <<span class="keyword">typename</span> IntegerType></div>
|
|
<div class="line"><a id="l08248" name="l08248"></a><span class="lineno"> 8248</span><span class="keyword">class </span>uniform_integer_distribution {</div>
|
|
<div class="line"><a id="l08249" name="l08249"></a><span class="lineno"> 8249</span> <span class="keyword">static_assert</span>(std::is_integral<IntegerType>::value, <span class="stringliteral">"..."</span>);</div>
|
|
<div class="line"><a id="l08250" name="l08250"></a><span class="lineno"> 8250</span> </div>
|
|
<div class="line"><a id="l08251" name="l08251"></a><span class="lineno"> 8251</span> <span class="keyword">using </span>UnsignedIntegerType = Detail::SizedUnsignedType_t<<span class="keyword">sizeof</span>(IntegerType)>;</div>
|
|
<div class="line"><a id="l08252" name="l08252"></a><span class="lineno"> 8252</span> </div>
|
|
<div class="line"><a id="l08253" name="l08253"></a><span class="lineno"> 8253</span> <span class="comment">// Only the left bound is stored, and we store it converted to its</span></div>
|
|
<div class="line"><a id="l08254" name="l08254"></a><span class="lineno"> 8254</span> <span class="comment">// unsigned image. This avoids having to do the conversions inside</span></div>
|
|
<div class="line"><a id="l08255" name="l08255"></a><span class="lineno"> 8255</span> <span class="comment">// the operator(), at the cost of having to do the conversion in</span></div>
|
|
<div class="line"><a id="l08256" name="l08256"></a><span class="lineno"> 8256</span> <span class="comment">// the a() getter. The right bound is only needed in the b() getter,</span></div>
|
|
<div class="line"><a id="l08257" name="l08257"></a><span class="lineno"> 8257</span> <span class="comment">// so we recompute it there from other stored data.</span></div>
|
|
<div class="line"><a id="l08258" name="l08258"></a><span class="lineno"> 8258</span> UnsignedIntegerType m_a;</div>
|
|
<div class="line"><a id="l08259" name="l08259"></a><span class="lineno"> 8259</span> </div>
|
|
<div class="line"><a id="l08260" name="l08260"></a><span class="lineno"> 8260</span> <span class="comment">// How many different values are there in [a, b]. a == b => 1, can be 0 for distribution over all values in the type.</span></div>
|
|
<div class="line"><a id="l08261" name="l08261"></a><span class="lineno"> 8261</span> UnsignedIntegerType m_ab_distance;</div>
|
|
<div class="line"><a id="l08262" name="l08262"></a><span class="lineno"> 8262</span> </div>
|
|
<div class="line"><a id="l08263" name="l08263"></a><span class="lineno"> 8263</span> <span class="comment">// We hoisted this out of the main generation function. Technically,</span></div>
|
|
<div class="line"><a id="l08264" name="l08264"></a><span class="lineno"> 8264</span> <span class="comment">// this means that using this distribution will be slower than Lemire's</span></div>
|
|
<div class="line"><a id="l08265" name="l08265"></a><span class="lineno"> 8265</span> <span class="comment">// algorithm if this distribution instance will be used only few times,</span></div>
|
|
<div class="line"><a id="l08266" name="l08266"></a><span class="lineno"> 8266</span> <span class="comment">// but it will be faster if it is used many times. Since Catch2 uses</span></div>
|
|
<div class="line"><a id="l08267" name="l08267"></a><span class="lineno"> 8267</span> <span class="comment">// distributions only to implement random generators, we assume that each</span></div>
|
|
<div class="line"><a id="l08268" name="l08268"></a><span class="lineno"> 8268</span> <span class="comment">// distribution will be reused many times and this is an optimization.</span></div>
|
|
<div class="line"><a id="l08269" name="l08269"></a><span class="lineno"> 8269</span> UnsignedIntegerType m_rejection_threshold = 0;</div>
|
|
<div class="line"><a id="l08270" name="l08270"></a><span class="lineno"> 8270</span> </div>
|
|
<div class="line"><a id="l08271" name="l08271"></a><span class="lineno"> 8271</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> UnsignedIntegerType computeDistance(IntegerType a, IntegerType b) {</div>
|
|
<div class="line"><a id="l08272" name="l08272"></a><span class="lineno"> 8272</span> <span class="comment">// This overflows and returns 0 if a == 0 and b == TYPE_MAX.</span></div>
|
|
<div class="line"><a id="l08273" name="l08273"></a><span class="lineno"> 8273</span> <span class="comment">// We handle that later when generating the number.</span></div>
|
|
<div class="line"><a id="l08274" name="l08274"></a><span class="lineno"> 8274</span> <span class="keywordflow">return</span> transposeTo(b) - transposeTo(a) + 1;</div>
|
|
<div class="line"><a id="l08275" name="l08275"></a><span class="lineno"> 8275</span> }</div>
|
|
<div class="line"><a id="l08276" name="l08276"></a><span class="lineno"> 8276</span> </div>
|
|
<div class="line"><a id="l08277" name="l08277"></a><span class="lineno"> 8277</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> UnsignedIntegerType computeRejectionThreshold(UnsignedIntegerType ab_distance) {</div>
|
|
<div class="line"><a id="l08278" name="l08278"></a><span class="lineno"> 8278</span> <span class="comment">// distance == 0 means that we will return all possible values from</span></div>
|
|
<div class="line"><a id="l08279" name="l08279"></a><span class="lineno"> 8279</span> <span class="comment">// the type's range, and that we shouldn't reject anything.</span></div>
|
|
<div class="line"><a id="l08280" name="l08280"></a><span class="lineno"> 8280</span> <span class="keywordflow">if</span> ( ab_distance == 0 ) { <span class="keywordflow">return</span> 0; }</div>
|
|
<div class="line"><a id="l08281" name="l08281"></a><span class="lineno"> 8281</span> <span class="keywordflow">return</span> ( ~ab_distance + 1 ) % ab_distance;</div>
|
|
<div class="line"><a id="l08282" name="l08282"></a><span class="lineno"> 8282</span> }</div>
|
|
<div class="line"><a id="l08283" name="l08283"></a><span class="lineno"> 8283</span> </div>
|
|
<div class="line"><a id="l08284" name="l08284"></a><span class="lineno"> 8284</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> UnsignedIntegerType transposeTo(IntegerType in) {</div>
|
|
<div class="line"><a id="l08285" name="l08285"></a><span class="lineno"> 8285</span> <span class="keywordflow">return</span> Detail::transposeToNaturalOrder<IntegerType>(</div>
|
|
<div class="line"><a id="l08286" name="l08286"></a><span class="lineno"> 8286</span> <span class="keyword">static_cast<</span>UnsignedIntegerType<span class="keyword">></span>( in ) );</div>
|
|
<div class="line"><a id="l08287" name="l08287"></a><span class="lineno"> 8287</span> }</div>
|
|
<div class="line"><a id="l08288" name="l08288"></a><span class="lineno"> 8288</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> IntegerType transposeBack(UnsignedIntegerType in) {</div>
|
|
<div class="line"><a id="l08289" name="l08289"></a><span class="lineno"> 8289</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>IntegerType<span class="keyword">></span>(</div>
|
|
<div class="line"><a id="l08290" name="l08290"></a><span class="lineno"> 8290</span> Detail::transposeToNaturalOrder<IntegerType>(in) );</div>
|
|
<div class="line"><a id="l08291" name="l08291"></a><span class="lineno"> 8291</span> }</div>
|
|
<div class="line"><a id="l08292" name="l08292"></a><span class="lineno"> 8292</span> </div>
|
|
<div class="line"><a id="l08293" name="l08293"></a><span class="lineno"> 8293</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08294" name="l08294"></a><span class="lineno"> 8294</span> <span class="keyword">using </span>result_type = IntegerType;</div>
|
|
<div class="line"><a id="l08295" name="l08295"></a><span class="lineno"> 8295</span> </div>
|
|
<div class="line"><a id="l08296" name="l08296"></a><span class="lineno"> 8296</span> <span class="keyword">constexpr</span> uniform_integer_distribution( IntegerType a, IntegerType b ):</div>
|
|
<div class="line"><a id="l08297" name="l08297"></a><span class="lineno"> 8297</span> m_a( transposeTo(a) ),</div>
|
|
<div class="line"><a id="l08298" name="l08298"></a><span class="lineno"> 8298</span> m_ab_distance( computeDistance(a, b) ),</div>
|
|
<div class="line"><a id="l08299" name="l08299"></a><span class="lineno"> 8299</span> m_rejection_threshold( computeRejectionThreshold(m_ab_distance) ) {</div>
|
|
<div class="line"><a id="l08300" name="l08300"></a><span class="lineno"> 8300</span> assert( a <= b );</div>
|
|
<div class="line"><a id="l08301" name="l08301"></a><span class="lineno"> 8301</span> }</div>
|
|
<div class="line"><a id="l08302" name="l08302"></a><span class="lineno"> 8302</span> </div>
|
|
<div class="line"><a id="l08303" name="l08303"></a><span class="lineno"> 8303</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Generator></div>
|
|
<div class="line"><a id="l08304" name="l08304"></a><span class="lineno"> 8304</span> <span class="keyword">constexpr</span> result_type operator()( Generator& g ) {</div>
|
|
<div class="line"><a id="l08305" name="l08305"></a><span class="lineno"> 8305</span> <span class="comment">// All possible values of result_type are valid.</span></div>
|
|
<div class="line"><a id="l08306" name="l08306"></a><span class="lineno"> 8306</span> <span class="keywordflow">if</span> ( m_ab_distance == 0 ) {</div>
|
|
<div class="line"><a id="l08307" name="l08307"></a><span class="lineno"> 8307</span> <span class="keywordflow">return</span> transposeBack( Detail::fillBitsFrom<UnsignedIntegerType>( g ) );</div>
|
|
<div class="line"><a id="l08308" name="l08308"></a><span class="lineno"> 8308</span> }</div>
|
|
<div class="line"><a id="l08309" name="l08309"></a><span class="lineno"> 8309</span> </div>
|
|
<div class="line"><a id="l08310" name="l08310"></a><span class="lineno"> 8310</span> <span class="keyword">auto</span> random_number = Detail::fillBitsFrom<UnsignedIntegerType>( g );</div>
|
|
<div class="line"><a id="l08311" name="l08311"></a><span class="lineno"> 8311</span> <span class="keyword">auto</span> emul = Detail::extendedMult( random_number, m_ab_distance );</div>
|
|
<div class="line"><a id="l08312" name="l08312"></a><span class="lineno"> 8312</span> <span class="comment">// Unlike Lemire's algorithm we skip the ab_distance check, since</span></div>
|
|
<div class="line"><a id="l08313" name="l08313"></a><span class="lineno"> 8313</span> <span class="comment">// we precomputed the rejection threshold, which is always tighter.</span></div>
|
|
<div class="line"><a id="l08314" name="l08314"></a><span class="lineno"> 8314</span> <span class="keywordflow">while</span> (emul.lower < m_rejection_threshold) {</div>
|
|
<div class="line"><a id="l08315" name="l08315"></a><span class="lineno"> 8315</span> random_number = Detail::fillBitsFrom<UnsignedIntegerType>( g );</div>
|
|
<div class="line"><a id="l08316" name="l08316"></a><span class="lineno"> 8316</span> emul = Detail::extendedMult( random_number, m_ab_distance );</div>
|
|
<div class="line"><a id="l08317" name="l08317"></a><span class="lineno"> 8317</span> }</div>
|
|
<div class="line"><a id="l08318" name="l08318"></a><span class="lineno"> 8318</span> </div>
|
|
<div class="line"><a id="l08319" name="l08319"></a><span class="lineno"> 8319</span> <span class="keywordflow">return</span> transposeBack(m_a + emul.upper);</div>
|
|
<div class="line"><a id="l08320" name="l08320"></a><span class="lineno"> 8320</span> }</div>
|
|
<div class="line"><a id="l08321" name="l08321"></a><span class="lineno"> 8321</span> </div>
|
|
<div class="line"><a id="l08322" name="l08322"></a><span class="lineno"> 8322</span> <span class="keyword">constexpr</span> result_type a()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> transposeBack(m_a); }</div>
|
|
<div class="line"><a id="l08323" name="l08323"></a><span class="lineno"> 8323</span> <span class="keyword">constexpr</span> result_type b()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> transposeBack(m_ab_distance + m_a - 1); }</div>
|
|
<div class="line"><a id="l08324" name="l08324"></a><span class="lineno"> 8324</span>};</div>
|
|
<div class="line"><a id="l08325" name="l08325"></a><span class="lineno"> 8325</span> </div>
|
|
<div class="line"><a id="l08326" name="l08326"></a><span class="lineno"> 8326</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08327" name="l08327"></a><span class="lineno"> 8327</span> </div>
|
|
<div class="line"><a id="l08328" name="l08328"></a><span class="lineno"> 8328</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_UNIFORM_INTEGER_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08329" name="l08329"></a><span class="lineno"> 8329</span> </div>
|
|
<div class="line"><a id="l08330" name="l08330"></a><span class="lineno"> 8330</span> </div>
|
|
<div class="line"><a id="l08331" name="l08331"></a><span class="lineno"> 8331</span> </div>
|
|
<div class="line"><a id="l08332" name="l08332"></a><span class="lineno"> 8332</span><span class="preprocessor">#ifndef CATCH_UNIFORM_FLOATING_POINT_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08333" name="l08333"></a><span class="lineno"> 8333</span><span class="preprocessor">#define CATCH_UNIFORM_FLOATING_POINT_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08334" name="l08334"></a><span class="lineno"> 8334</span> </div>
|
|
<div class="line"><a id="l08335" name="l08335"></a><span class="lineno"> 8335</span> </div>
|
|
<div class="line"><a id="l08336" name="l08336"></a><span class="lineno"> 8336</span> </div>
|
|
<div class="line"><a id="l08337" name="l08337"></a><span class="lineno"> 8337</span> </div>
|
|
<div class="line"><a id="l08338" name="l08338"></a><span class="lineno"> 8338</span><span class="preprocessor">#ifndef CATCH_RANDOM_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08339" name="l08339"></a><span class="lineno"> 8339</span><span class="preprocessor">#define CATCH_RANDOM_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08340" name="l08340"></a><span class="lineno"> 8340</span> </div>
|
|
<div class="line"><a id="l08341" name="l08341"></a><span class="lineno"> 8341</span> </div>
|
|
<div class="line"><a id="l08342" name="l08342"></a><span class="lineno"> 8342</span> </div>
|
|
<div class="line"><a id="l08343" name="l08343"></a><span class="lineno"> 8343</span><span class="preprocessor">#ifndef CATCH_POLYFILLS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08344" name="l08344"></a><span class="lineno"> 8344</span><span class="preprocessor">#define CATCH_POLYFILLS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08345" name="l08345"></a><span class="lineno"> 8345</span> </div>
|
|
<div class="line"><a id="l08346" name="l08346"></a><span class="lineno"> 8346</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08347" name="l08347"></a><span class="lineno"> 8347</span> </div>
|
|
<div class="line"><a id="l08348" name="l08348"></a><span class="lineno"> 8348</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#aff37796f0f578c2816f74267e641c5f7">isnan</a>(<span class="keywordtype">float</span> f);</div>
|
|
<div class="line"><a id="l08349" name="l08349"></a><span class="lineno"> 8349</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#aff37796f0f578c2816f74267e641c5f7">isnan</a>(<span class="keywordtype">double</span> d);</div>
|
|
<div class="line"><a id="l08350" name="l08350"></a><span class="lineno"> 8350</span> </div>
|
|
<div class="line"><a id="l08351" name="l08351"></a><span class="lineno"> 8351</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespaceCatch.html#ae65d074e6c60320640a500d302b83bb2">nextafter</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);</div>
|
|
<div class="line"><a id="l08352" name="l08352"></a><span class="lineno"> 8352</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespaceCatch.html#ae65d074e6c60320640a500d302b83bb2">nextafter</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y);</div>
|
|
<div class="line"><a id="l08353" name="l08353"></a><span class="lineno"> 8353</span> </div>
|
|
<div class="line"><a id="l08354" name="l08354"></a><span class="lineno"> 8354</span>}</div>
|
|
<div class="line"><a id="l08355" name="l08355"></a><span class="lineno"> 8355</span> </div>
|
|
<div class="line"><a id="l08356" name="l08356"></a><span class="lineno"> 8356</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_POLYFILLS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08357" name="l08357"></a><span class="lineno"> 8357</span> </div>
|
|
<div class="line"><a id="l08358" name="l08358"></a><span class="lineno"> 8358</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l08359" name="l08359"></a><span class="lineno"> 8359</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l08360" name="l08360"></a><span class="lineno"> 8360</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l08361" name="l08361"></a><span class="lineno"> 8361</span><span class="preprocessor">#include <limits></span></div>
|
|
<div class="line"><a id="l08362" name="l08362"></a><span class="lineno"> 8362</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l08363" name="l08363"></a><span class="lineno"> 8363</span> </div>
|
|
<div class="line"><a id="l08364" name="l08364"></a><span class="lineno"> 8364</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08365" name="l08365"></a><span class="lineno"> 8365</span> </div>
|
|
<div class="line"><a id="l08366" name="l08366"></a><span class="lineno"> 8366</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l08372" name="l08372"></a><span class="lineno"> 8372</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FloatType></div>
|
|
<div class="line"><a id="l08373" name="l08373"></a><span class="lineno"> 8373</span> FloatType gamma(FloatType a, FloatType b) {</div>
|
|
<div class="line"><a id="l08374" name="l08374"></a><span class="lineno"> 8374</span> <span class="keyword">static_assert</span>( std::is_floating_point<FloatType>::value,</div>
|
|
<div class="line"><a id="l08375" name="l08375"></a><span class="lineno"> 8375</span> <span class="stringliteral">"gamma returns the largest ULP magnitude within "</span></div>
|
|
<div class="line"><a id="l08376" name="l08376"></a><span class="lineno"> 8376</span> <span class="stringliteral">"floating point range [a, b]. This only makes sense "</span></div>
|
|
<div class="line"><a id="l08377" name="l08377"></a><span class="lineno"> 8377</span> <span class="stringliteral">"for floating point types"</span> );</div>
|
|
<div class="line"><a id="l08378" name="l08378"></a><span class="lineno"> 8378</span> assert( a <= b );</div>
|
|
<div class="line"><a id="l08379" name="l08379"></a><span class="lineno"> 8379</span> </div>
|
|
<div class="line"><a id="l08380" name="l08380"></a><span class="lineno"> 8380</span> <span class="keyword">const</span> <span class="keyword">auto</span> gamma_up = <a class="code hl_function" href="namespaceCatch.html#ae65d074e6c60320640a500d302b83bb2">Catch::nextafter</a>( a, std::numeric_limits<FloatType>::infinity() ) - a;</div>
|
|
<div class="line"><a id="l08381" name="l08381"></a><span class="lineno"> 8381</span> <span class="keyword">const</span> <span class="keyword">auto</span> gamma_down = b - <a class="code hl_function" href="namespaceCatch.html#ae65d074e6c60320640a500d302b83bb2">Catch::nextafter</a>( b, -std::numeric_limits<FloatType>::infinity() );</div>
|
|
<div class="line"><a id="l08382" name="l08382"></a><span class="lineno"> 8382</span> </div>
|
|
<div class="line"><a id="l08383" name="l08383"></a><span class="lineno"> 8383</span> <span class="keywordflow">return</span> gamma_up < gamma_down ? gamma_down : gamma_up;</div>
|
|
<div class="line"><a id="l08384" name="l08384"></a><span class="lineno"> 8384</span> }</div>
|
|
<div class="line"><a id="l08385" name="l08385"></a><span class="lineno"> 8385</span> </div>
|
|
<div class="line"><a id="l08386" name="l08386"></a><span class="lineno"> 8386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FloatingPo<span class="keywordtype">int</span>></div>
|
|
<div class="line"><a id="l08387" name="l08387"></a><span class="lineno"> 8387</span> <span class="keyword">struct </span>DistanceTypePicker;</div>
|
|
<div class="line"><a id="l08388" name="l08388"></a><span class="lineno"> 8388</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l08389" name="l08389"></a><span class="lineno"> 8389</span> <span class="keyword">struct </span>DistanceTypePicker<float> {</div>
|
|
<div class="line"><a id="l08390" name="l08390"></a><span class="lineno"> 8390</span> <span class="keyword">using </span>type = std::uint32_t;</div>
|
|
<div class="line"><a id="l08391" name="l08391"></a><span class="lineno"> 8391</span> };</div>
|
|
<div class="line"><a id="l08392" name="l08392"></a><span class="lineno"> 8392</span> <span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l08393" name="l08393"></a><span class="lineno"> 8393</span> <span class="keyword">struct </span>DistanceTypePicker<double> {</div>
|
|
<div class="line"><a id="l08394" name="l08394"></a><span class="lineno"> 8394</span> <span class="keyword">using </span>type = std::uint64_t;</div>
|
|
<div class="line"><a id="l08395" name="l08395"></a><span class="lineno"> 8395</span> };</div>
|
|
<div class="line"><a id="l08396" name="l08396"></a><span class="lineno"> 8396</span> </div>
|
|
<div class="line"><a id="l08397" name="l08397"></a><span class="lineno"> 8397</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08398" name="l08398"></a><span class="lineno"> 8398</span> <span class="keyword">using </span>DistanceType = <span class="keyword">typename</span> DistanceTypePicker<T>::type;</div>
|
|
<div class="line"><a id="l08399" name="l08399"></a><span class="lineno"> 8399</span> </div>
|
|
<div class="line"><a id="l08400" name="l08400"></a><span class="lineno"> 8400</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l08401" name="l08401"></a><span class="lineno"> 8401</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l08402" name="l08402"></a><span class="lineno"> 8402</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wfloat-equal"</span></div>
|
|
<div class="line"><a id="l08403" name="l08403"></a><span class="lineno"> 8403</span><span class="preprocessor">#endif</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l08413" name="l08413"></a><span class="lineno"> 8413</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FloatType></div>
|
|
<div class="line"><a id="l08414" name="l08414"></a><span class="lineno"> 8414</span> DistanceType<FloatType></div>
|
|
<div class="line"><a id="l08415" name="l08415"></a><span class="lineno"> 8415</span> count_equidistant_floats( FloatType a, FloatType b, FloatType distance ) {</div>
|
|
<div class="line"><a id="l08416" name="l08416"></a><span class="lineno"> 8416</span> assert( a <= b );</div>
|
|
<div class="line"><a id="l08417" name="l08417"></a><span class="lineno"> 8417</span> <span class="comment">// We get distance as gamma for our uniform float distribution,</span></div>
|
|
<div class="line"><a id="l08418" name="l08418"></a><span class="lineno"> 8418</span> <span class="comment">// so this will round perfectly.</span></div>
|
|
<div class="line"><a id="l08419" name="l08419"></a><span class="lineno"> 8419</span> <span class="keyword">const</span> <span class="keyword">auto</span> ag = a / distance;</div>
|
|
<div class="line"><a id="l08420" name="l08420"></a><span class="lineno"> 8420</span> <span class="keyword">const</span> <span class="keyword">auto</span> bg = b / distance;</div>
|
|
<div class="line"><a id="l08421" name="l08421"></a><span class="lineno"> 8421</span> </div>
|
|
<div class="line"><a id="l08422" name="l08422"></a><span class="lineno"> 8422</span> <span class="keyword">const</span> <span class="keyword">auto</span> s = bg - ag;</div>
|
|
<div class="line"><a id="l08423" name="l08423"></a><span class="lineno"> 8423</span> <span class="keyword">const</span> <span class="keyword">auto</span> err = ( std::fabs( a ) <= std::fabs( b ) )</div>
|
|
<div class="line"><a id="l08424" name="l08424"></a><span class="lineno"> 8424</span> ? -ag - ( s - bg )</div>
|
|
<div class="line"><a id="l08425" name="l08425"></a><span class="lineno"> 8425</span> : bg - ( s + ag );</div>
|
|
<div class="line"><a id="l08426" name="l08426"></a><span class="lineno"> 8426</span> <span class="keyword">const</span> <span class="keyword">auto</span> ceil_s = <span class="keyword">static_cast<</span>DistanceType<FloatType><span class="keyword">></span>( std::ceil( s ) );</div>
|
|
<div class="line"><a id="l08427" name="l08427"></a><span class="lineno"> 8427</span> </div>
|
|
<div class="line"><a id="l08428" name="l08428"></a><span class="lineno"> 8428</span> <span class="keywordflow">return</span> ( ceil_s != s ) ? ceil_s : ceil_s + ( err > 0 );</div>
|
|
<div class="line"><a id="l08429" name="l08429"></a><span class="lineno"> 8429</span> }</div>
|
|
<div class="line"><a id="l08430" name="l08430"></a><span class="lineno"> 8430</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l08431" name="l08431"></a><span class="lineno"> 8431</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l08432" name="l08432"></a><span class="lineno"> 8432</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08433" name="l08433"></a><span class="lineno"> 8433</span> </div>
|
|
<div class="line"><a id="l08434" name="l08434"></a><span class="lineno"> 8434</span> }</div>
|
|
<div class="line"><a id="l08435" name="l08435"></a><span class="lineno"> 8435</span> </div>
|
|
<div class="line"><a id="l08436" name="l08436"></a><span class="lineno"> 8436</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08437" name="l08437"></a><span class="lineno"> 8437</span> </div>
|
|
<div class="line"><a id="l08438" name="l08438"></a><span class="lineno"> 8438</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RANDOM_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08439" name="l08439"></a><span class="lineno"> 8439</span> </div>
|
|
<div class="line"><a id="l08440" name="l08440"></a><span class="lineno"> 8440</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l08441" name="l08441"></a><span class="lineno"> 8441</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l08442" name="l08442"></a><span class="lineno"> 8442</span> </div>
|
|
<div class="line"><a id="l08443" name="l08443"></a><span class="lineno"> 8443</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08444" name="l08444"></a><span class="lineno"> 8444</span> </div>
|
|
<div class="line"><a id="l08445" name="l08445"></a><span class="lineno"> 8445</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l08446" name="l08446"></a><span class="lineno"> 8446</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l08447" name="l08447"></a><span class="lineno"> 8447</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l08448" name="l08448"></a><span class="lineno"> 8448</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wfloat-equal"</span></div>
|
|
<div class="line"><a id="l08449" name="l08449"></a><span class="lineno"> 8449</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08450" name="l08450"></a><span class="lineno"> 8450</span> <span class="comment">// The issue with overflow only happens with maximal ULP and HUGE</span></div>
|
|
<div class="line"><a id="l08451" name="l08451"></a><span class="lineno"> 8451</span> <span class="comment">// distance, e.g. when generating numbers in [-inf, inf] for given</span></div>
|
|
<div class="line"><a id="l08452" name="l08452"></a><span class="lineno"> 8452</span> <span class="comment">// type. So we only check for the largest possible ULP in the</span></div>
|
|
<div class="line"><a id="l08453" name="l08453"></a><span class="lineno"> 8453</span> <span class="comment">// type, and return something that does not overflow to inf in 1 mult.</span></div>
|
|
<div class="line"><a id="l08454" name="l08454"></a><span class="lineno"> 8454</span> <span class="keyword">constexpr</span> std::uint64_t calculate_max_steps_in_one_go(<span class="keywordtype">double</span> gamma) {</div>
|
|
<div class="line"><a id="l08455" name="l08455"></a><span class="lineno"> 8455</span> <span class="keywordflow">if</span> ( gamma == 1.99584030953472e+292 ) { <span class="keywordflow">return</span> 9007199254740991; }</div>
|
|
<div class="line"><a id="l08456" name="l08456"></a><span class="lineno"> 8456</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>std::uint64_t<span class="keyword">></span>( -1 );</div>
|
|
<div class="line"><a id="l08457" name="l08457"></a><span class="lineno"> 8457</span> }</div>
|
|
<div class="line"><a id="l08458" name="l08458"></a><span class="lineno"> 8458</span> <span class="keyword">constexpr</span> std::uint32_t calculate_max_steps_in_one_go(<span class="keywordtype">float</span> gamma) {</div>
|
|
<div class="line"><a id="l08459" name="l08459"></a><span class="lineno"> 8459</span> <span class="keywordflow">if</span> ( gamma == 2.028241e+31f ) { <span class="keywordflow">return</span> 16777215; }</div>
|
|
<div class="line"><a id="l08460" name="l08460"></a><span class="lineno"> 8460</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>std::uint32_t<span class="keyword">></span>( -1 );</div>
|
|
<div class="line"><a id="l08461" name="l08461"></a><span class="lineno"> 8461</span> }</div>
|
|
<div class="line"><a id="l08462" name="l08462"></a><span class="lineno"> 8462</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l08463" name="l08463"></a><span class="lineno"> 8463</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l08464" name="l08464"></a><span class="lineno"> 8464</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l08465" name="l08465"></a><span class="lineno"> 8465</span> }</div>
|
|
<div class="line"><a id="l08466" name="l08466"></a><span class="lineno"> 8466</span></div>
|
|
<div class="line"><a id="l08493" name="l08493"></a><span class="lineno"> 8493</span><span class="keyword">template</span> <<span class="keyword">typename</span> FloatType></div>
|
|
<div class="line"><a id="l08494" name="l08494"></a><span class="lineno"> 8494</span><span class="keyword">class </span>uniform_floating_point_distribution {</div>
|
|
<div class="line"><a id="l08495" name="l08495"></a><span class="lineno"> 8495</span> <span class="keyword">static_assert</span>(std::is_floating_point<FloatType>::value, <span class="stringliteral">"..."</span>);</div>
|
|
<div class="line"><a id="l08496" name="l08496"></a><span class="lineno"> 8496</span> <span class="keyword">static_assert</span>(!std::is_same<FloatType, long double>::value,</div>
|
|
<div class="line"><a id="l08497" name="l08497"></a><span class="lineno"> 8497</span> <span class="stringliteral">"We do not support long double due to inconsistent behaviour between platforms"</span>);</div>
|
|
<div class="line"><a id="l08498" name="l08498"></a><span class="lineno"> 8498</span> </div>
|
|
<div class="line"><a id="l08499" name="l08499"></a><span class="lineno"> 8499</span> <span class="keyword">using </span>WidthType = Detail::DistanceType<FloatType>;</div>
|
|
<div class="line"><a id="l08500" name="l08500"></a><span class="lineno"> 8500</span> </div>
|
|
<div class="line"><a id="l08501" name="l08501"></a><span class="lineno"> 8501</span> FloatType m_a, m_b;</div>
|
|
<div class="line"><a id="l08502" name="l08502"></a><span class="lineno"> 8502</span> FloatType m_ulp_magnitude;</div>
|
|
<div class="line"><a id="l08503" name="l08503"></a><span class="lineno"> 8503</span> WidthType m_floats_in_range;</div>
|
|
<div class="line"><a id="l08504" name="l08504"></a><span class="lineno"> 8504</span> uniform_integer_distribution<WidthType> m_int_dist;</div>
|
|
<div class="line"><a id="l08505" name="l08505"></a><span class="lineno"> 8505</span> </div>
|
|
<div class="line"><a id="l08506" name="l08506"></a><span class="lineno"> 8506</span> <span class="comment">// In specific cases, we can overflow into `inf` when computing the</span></div>
|
|
<div class="line"><a id="l08507" name="l08507"></a><span class="lineno"> 8507</span> <span class="comment">// `steps * g` offset. To avoid this, we don't offset by more than this</span></div>
|
|
<div class="line"><a id="l08508" name="l08508"></a><span class="lineno"> 8508</span> <span class="comment">// in one multiply + addition.</span></div>
|
|
<div class="line"><a id="l08509" name="l08509"></a><span class="lineno"> 8509</span> WidthType m_max_steps_in_one_go;</div>
|
|
<div class="line"><a id="l08510" name="l08510"></a><span class="lineno"> 8510</span> <span class="comment">// We don't want to do the magnitude check every call to `operator()`</span></div>
|
|
<div class="line"><a id="l08511" name="l08511"></a><span class="lineno"> 8511</span> <span class="keywordtype">bool</span> m_a_has_leq_magnitude;</div>
|
|
<div class="line"><a id="l08512" name="l08512"></a><span class="lineno"> 8512</span> </div>
|
|
<div class="line"><a id="l08513" name="l08513"></a><span class="lineno"> 8513</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08514" name="l08514"></a><span class="lineno"> 8514</span> <span class="keyword">using </span>result_type = FloatType;</div>
|
|
<div class="line"><a id="l08515" name="l08515"></a><span class="lineno"> 8515</span> </div>
|
|
<div class="line"><a id="l08516" name="l08516"></a><span class="lineno"> 8516</span> uniform_floating_point_distribution( FloatType a, FloatType b ):</div>
|
|
<div class="line"><a id="l08517" name="l08517"></a><span class="lineno"> 8517</span> m_a( a ),</div>
|
|
<div class="line"><a id="l08518" name="l08518"></a><span class="lineno"> 8518</span> m_b( b ),</div>
|
|
<div class="line"><a id="l08519" name="l08519"></a><span class="lineno"> 8519</span> m_ulp_magnitude( Detail::gamma( m_a, m_b ) ),</div>
|
|
<div class="line"><a id="l08520" name="l08520"></a><span class="lineno"> 8520</span> m_floats_in_range( Detail::count_equidistant_floats( m_a, m_b, m_ulp_magnitude ) ),</div>
|
|
<div class="line"><a id="l08521" name="l08521"></a><span class="lineno"> 8521</span> m_int_dist(0, m_floats_in_range),</div>
|
|
<div class="line"><a id="l08522" name="l08522"></a><span class="lineno"> 8522</span> m_max_steps_in_one_go( Detail::calculate_max_steps_in_one_go(m_ulp_magnitude)),</div>
|
|
<div class="line"><a id="l08523" name="l08523"></a><span class="lineno"> 8523</span> m_a_has_leq_magnitude(std::fabs(m_a) <= std::fabs(m_b))</div>
|
|
<div class="line"><a id="l08524" name="l08524"></a><span class="lineno"> 8524</span> {</div>
|
|
<div class="line"><a id="l08525" name="l08525"></a><span class="lineno"> 8525</span> assert( a <= b );</div>
|
|
<div class="line"><a id="l08526" name="l08526"></a><span class="lineno"> 8526</span> }</div>
|
|
<div class="line"><a id="l08527" name="l08527"></a><span class="lineno"> 8527</span> </div>
|
|
<div class="line"><a id="l08528" name="l08528"></a><span class="lineno"> 8528</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Generator></div>
|
|
<div class="line"><a id="l08529" name="l08529"></a><span class="lineno"> 8529</span> result_type operator()( Generator& g ) {</div>
|
|
<div class="line"><a id="l08530" name="l08530"></a><span class="lineno"> 8530</span> WidthType steps = m_int_dist( g );</div>
|
|
<div class="line"><a id="l08531" name="l08531"></a><span class="lineno"> 8531</span> <span class="keywordflow">if</span> ( m_a_has_leq_magnitude ) {</div>
|
|
<div class="line"><a id="l08532" name="l08532"></a><span class="lineno"> 8532</span> <span class="keywordflow">if</span> ( steps == m_floats_in_range ) { <span class="keywordflow">return</span> m_a; }</div>
|
|
<div class="line"><a id="l08533" name="l08533"></a><span class="lineno"> 8533</span> <span class="keyword">auto</span> b = m_b;</div>
|
|
<div class="line"><a id="l08534" name="l08534"></a><span class="lineno"> 8534</span> <span class="keywordflow">while</span> (steps > m_max_steps_in_one_go) {</div>
|
|
<div class="line"><a id="l08535" name="l08535"></a><span class="lineno"> 8535</span> b -= m_max_steps_in_one_go * m_ulp_magnitude;</div>
|
|
<div class="line"><a id="l08536" name="l08536"></a><span class="lineno"> 8536</span> steps -= m_max_steps_in_one_go;</div>
|
|
<div class="line"><a id="l08537" name="l08537"></a><span class="lineno"> 8537</span> }</div>
|
|
<div class="line"><a id="l08538" name="l08538"></a><span class="lineno"> 8538</span> <span class="keywordflow">return</span> b - steps * m_ulp_magnitude;</div>
|
|
<div class="line"><a id="l08539" name="l08539"></a><span class="lineno"> 8539</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l08540" name="l08540"></a><span class="lineno"> 8540</span> <span class="keywordflow">if</span> ( steps == m_floats_in_range ) { <span class="keywordflow">return</span> m_b; }</div>
|
|
<div class="line"><a id="l08541" name="l08541"></a><span class="lineno"> 8541</span> <span class="keyword">auto</span> a = m_a;</div>
|
|
<div class="line"><a id="l08542" name="l08542"></a><span class="lineno"> 8542</span> <span class="keywordflow">while</span> (steps > m_max_steps_in_one_go) {</div>
|
|
<div class="line"><a id="l08543" name="l08543"></a><span class="lineno"> 8543</span> a += m_max_steps_in_one_go * m_ulp_magnitude;</div>
|
|
<div class="line"><a id="l08544" name="l08544"></a><span class="lineno"> 8544</span> steps -= m_max_steps_in_one_go;</div>
|
|
<div class="line"><a id="l08545" name="l08545"></a><span class="lineno"> 8545</span> }</div>
|
|
<div class="line"><a id="l08546" name="l08546"></a><span class="lineno"> 8546</span> <span class="keywordflow">return</span> a + steps * m_ulp_magnitude;</div>
|
|
<div class="line"><a id="l08547" name="l08547"></a><span class="lineno"> 8547</span> }</div>
|
|
<div class="line"><a id="l08548" name="l08548"></a><span class="lineno"> 8548</span> }</div>
|
|
<div class="line"><a id="l08549" name="l08549"></a><span class="lineno"> 8549</span> </div>
|
|
<div class="line"><a id="l08550" name="l08550"></a><span class="lineno"> 8550</span> result_type a()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_a; }</div>
|
|
<div class="line"><a id="l08551" name="l08551"></a><span class="lineno"> 8551</span> result_type b()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_b; }</div>
|
|
<div class="line"><a id="l08552" name="l08552"></a><span class="lineno"> 8552</span>};</div>
|
|
<div class="line"><a id="l08553" name="l08553"></a><span class="lineno"> 8553</span> </div>
|
|
<div class="line"><a id="l08554" name="l08554"></a><span class="lineno"> 8554</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08555" name="l08555"></a><span class="lineno"> 8555</span> </div>
|
|
<div class="line"><a id="l08556" name="l08556"></a><span class="lineno"> 8556</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_UNIFORM_FLOATING_POINT_DISTRIBUTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08557" name="l08557"></a><span class="lineno"> 8557</span> </div>
|
|
<div class="line"><a id="l08558" name="l08558"></a><span class="lineno"> 8558</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08559" name="l08559"></a><span class="lineno"> 8559</span><span class="keyword">namespace </span>Generators {</div>
|
|
<div class="line"><a id="l08560" name="l08560"></a><span class="lineno"> 8560</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l08561" name="l08561"></a><span class="lineno"> 8561</span> <span class="comment">// Returns a suitable seed for a random floating generator based off</span></div>
|
|
<div class="line"><a id="l08562" name="l08562"></a><span class="lineno"> 8562</span> <span class="comment">// the primary internal rng. It does so by taking current value from</span></div>
|
|
<div class="line"><a id="l08563" name="l08563"></a><span class="lineno"> 8563</span> <span class="comment">// the rng and returning it as the seed.</span></div>
|
|
<div class="line"><a id="l08564" name="l08564"></a><span class="lineno"> 8564</span> std::uint32_t <a class="code hl_function" href="namespaceCatch.html#aba921d5844aa120874480fe71d1c1ae3">getSeed</a>();</div>
|
|
<div class="line"><a id="l08565" name="l08565"></a><span class="lineno"> 8565</span>}</div>
|
|
<div class="line"><a id="l08566" name="l08566"></a><span class="lineno"> 8566</span> </div>
|
|
<div class="line"><a id="l08567" name="l08567"></a><span class="lineno"> 8567</span><span class="keyword">template</span> <<span class="keyword">typename</span> Float></div>
|
|
<div class="line"><a id="l08568" name="l08568"></a><span class="lineno"> 8568</span><span class="keyword">class </span>RandomFloatingGenerator final : <span class="keyword">public</span> IGenerator<Float> {</div>
|
|
<div class="line"><a id="l08569" name="l08569"></a><span class="lineno"> 8569</span> Catch::SimplePcg32 m_rng;</div>
|
|
<div class="line"><a id="l08570" name="l08570"></a><span class="lineno"> 8570</span> Catch::uniform_floating_point_distribution<Float> m_dist;</div>
|
|
<div class="line"><a id="l08571" name="l08571"></a><span class="lineno"> 8571</span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Matchers_1_1Detail.html#a65dcb4c6cc6803847848523398ae680ca22ae0e2b89e5e3d477f988cc36d3272b">Float</a> m_current_number;</div>
|
|
<div class="line"><a id="l08572" name="l08572"></a><span class="lineno"> 8572</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08573" name="l08573"></a><span class="lineno"> 8573</span> RandomFloatingGenerator( Float a, Float b, std::uint32_t seed ):</div>
|
|
<div class="line"><a id="l08574" name="l08574"></a><span class="lineno"> 8574</span> m_rng(seed),</div>
|
|
<div class="line"><a id="l08575" name="l08575"></a><span class="lineno"> 8575</span> m_dist(a, b) {</div>
|
|
<div class="line"><a id="l08576" name="l08576"></a><span class="lineno"> 8576</span> <span class="keyword">static_cast<</span><span class="keywordtype">void</span><span class="keyword">></span>(next());</div>
|
|
<div class="line"><a id="l08577" name="l08577"></a><span class="lineno"> 8577</span> }</div>
|
|
<div class="line"><a id="l08578" name="l08578"></a><span class="lineno"> 8578</span> </div>
|
|
<div class="line"><a id="l08579" name="l08579"></a><span class="lineno"> 8579</span> <a class="code hl_enumvalue" href="namespaceCatch_1_1Matchers_1_1Detail.html#a65dcb4c6cc6803847848523398ae680ca22ae0e2b89e5e3d477f988cc36d3272b">Float</a> <span class="keyword">const</span>& get()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l08580" name="l08580"></a><span class="lineno"> 8580</span> <span class="keywordflow">return</span> m_current_number;</div>
|
|
<div class="line"><a id="l08581" name="l08581"></a><span class="lineno"> 8581</span> }</div>
|
|
<div class="line"><a id="l08582" name="l08582"></a><span class="lineno"> 8582</span> <span class="keywordtype">bool</span> next()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l08583" name="l08583"></a><span class="lineno"> 8583</span> m_current_number = m_dist(m_rng);</div>
|
|
<div class="line"><a id="l08584" name="l08584"></a><span class="lineno"> 8584</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l08585" name="l08585"></a><span class="lineno"> 8585</span> }</div>
|
|
<div class="line"><a id="l08586" name="l08586"></a><span class="lineno"> 8586</span>};</div>
|
|
<div class="line"><a id="l08587" name="l08587"></a><span class="lineno"> 8587</span> </div>
|
|
<div class="line"><a id="l08588" name="l08588"></a><span class="lineno"> 8588</span><span class="keyword">template</span> <></div>
|
|
<div class="line"><a id="l08589" name="l08589"></a><span class="lineno"> 8589</span><span class="keyword">class </span>RandomFloatingGenerator<long double> final : <span class="keyword">public</span> IGenerator<long double> {</div>
|
|
<div class="line"><a id="l08590" name="l08590"></a><span class="lineno"> 8590</span> <span class="comment">// We still rely on <random> for this specialization, but we don't</span></div>
|
|
<div class="line"><a id="l08591" name="l08591"></a><span class="lineno"> 8591</span> <span class="comment">// want to drag it into the header.</span></div>
|
|
<div class="line"><a id="l08592" name="l08592"></a><span class="lineno"> 8592</span> <span class="keyword">struct </span>PImpl;</div>
|
|
<div class="line"><a id="l08593" name="l08593"></a><span class="lineno"> 8593</span> Catch::Detail::unique_ptr<PImpl> m_pimpl;</div>
|
|
<div class="line"><a id="l08594" name="l08594"></a><span class="lineno"> 8594</span> <span class="keywordtype">long</span> <span class="keywordtype">double</span> m_current_number;</div>
|
|
<div class="line"><a id="l08595" name="l08595"></a><span class="lineno"> 8595</span> </div>
|
|
<div class="line"><a id="l08596" name="l08596"></a><span class="lineno"> 8596</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08597" name="l08597"></a><span class="lineno"> 8597</span> RandomFloatingGenerator( <span class="keywordtype">long</span> <span class="keywordtype">double</span> a, <span class="keywordtype">long</span> <span class="keywordtype">double</span> b, std::uint32_t seed );</div>
|
|
<div class="line"><a id="l08598" name="l08598"></a><span class="lineno"> 8598</span> </div>
|
|
<div class="line"><a id="l08599" name="l08599"></a><span class="lineno"> 8599</span> <span class="keywordtype">long</span> <span class="keywordtype">double</span> <span class="keyword">const</span>& get()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> m_current_number; }</div>
|
|
<div class="line"><a id="l08600" name="l08600"></a><span class="lineno"> 8600</span> <span class="keywordtype">bool</span> next() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l08601" name="l08601"></a><span class="lineno"> 8601</span> </div>
|
|
<div class="line"><a id="l08602" name="l08602"></a><span class="lineno"> 8602</span> ~RandomFloatingGenerator() <span class="keyword">override</span>; <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l08603" name="l08603"></a><span class="lineno"> 8603</span>};</div>
|
|
<div class="line"><a id="l08604" name="l08604"></a><span class="lineno"> 8604</span> </div>
|
|
<div class="line"><a id="l08605" name="l08605"></a><span class="lineno"> 8605</span><span class="keyword">template</span> <<span class="keyword">typename</span> Integer></div>
|
|
<div class="line"><a id="l08606" name="l08606"></a><span class="lineno"> 8606</span><span class="keyword">class </span>RandomIntegerGenerator final : <span class="keyword">public</span> IGenerator<Integer> {</div>
|
|
<div class="line"><a id="l08607" name="l08607"></a><span class="lineno"> 8607</span> Catch::SimplePcg32 m_rng;</div>
|
|
<div class="line"><a id="l08608" name="l08608"></a><span class="lineno"> 8608</span> Catch::uniform_integer_distribution<Integer> m_dist;</div>
|
|
<div class="line"><a id="l08609" name="l08609"></a><span class="lineno"> 8609</span> Integer m_current_number;</div>
|
|
<div class="line"><a id="l08610" name="l08610"></a><span class="lineno"> 8610</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08611" name="l08611"></a><span class="lineno"> 8611</span> RandomIntegerGenerator( Integer a, Integer b, std::uint32_t seed ):</div>
|
|
<div class="line"><a id="l08612" name="l08612"></a><span class="lineno"> 8612</span> m_rng(seed),</div>
|
|
<div class="line"><a id="l08613" name="l08613"></a><span class="lineno"> 8613</span> m_dist(a, b) {</div>
|
|
<div class="line"><a id="l08614" name="l08614"></a><span class="lineno"> 8614</span> <span class="keyword">static_cast<</span><span class="keywordtype">void</span><span class="keyword">></span>(next());</div>
|
|
<div class="line"><a id="l08615" name="l08615"></a><span class="lineno"> 8615</span> }</div>
|
|
<div class="line"><a id="l08616" name="l08616"></a><span class="lineno"> 8616</span> </div>
|
|
<div class="line"><a id="l08617" name="l08617"></a><span class="lineno"> 8617</span> Integer <span class="keyword">const</span>& get()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l08618" name="l08618"></a><span class="lineno"> 8618</span> <span class="keywordflow">return</span> m_current_number;</div>
|
|
<div class="line"><a id="l08619" name="l08619"></a><span class="lineno"> 8619</span> }</div>
|
|
<div class="line"><a id="l08620" name="l08620"></a><span class="lineno"> 8620</span> <span class="keywordtype">bool</span> next()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l08621" name="l08621"></a><span class="lineno"> 8621</span> m_current_number = m_dist(m_rng);</div>
|
|
<div class="line"><a id="l08622" name="l08622"></a><span class="lineno"> 8622</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l08623" name="l08623"></a><span class="lineno"> 8623</span> }</div>
|
|
<div class="line"><a id="l08624" name="l08624"></a><span class="lineno"> 8624</span>};</div>
|
|
<div class="line"><a id="l08625" name="l08625"></a><span class="lineno"> 8625</span> </div>
|
|
<div class="line"><a id="l08626" name="l08626"></a><span class="lineno"> 8626</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08627" name="l08627"></a><span class="lineno"> 8627</span>std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>></div>
|
|
<div class="line"><a id="l08628" name="l08628"></a><span class="lineno"> 8628</span>random(T a, T b) {</div>
|
|
<div class="line"><a id="l08629" name="l08629"></a><span class="lineno"> 8629</span> <span class="keywordflow">return</span> GeneratorWrapper<T>(</div>
|
|
<div class="line"><a id="l08630" name="l08630"></a><span class="lineno"> 8630</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><RandomIntegerGenerator<T>>(a, b, Detail::getSeed())</div>
|
|
<div class="line"><a id="l08631" name="l08631"></a><span class="lineno"> 8631</span> );</div>
|
|
<div class="line"><a id="l08632" name="l08632"></a><span class="lineno"> 8632</span>}</div>
|
|
<div class="line"><a id="l08633" name="l08633"></a><span class="lineno"> 8633</span> </div>
|
|
<div class="line"><a id="l08634" name="l08634"></a><span class="lineno"> 8634</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08635" name="l08635"></a><span class="lineno"> 8635</span>std::enable_if_t<std::is_floating_point<T>::value,</div>
|
|
<div class="line"><a id="l08636" name="l08636"></a><span class="lineno"> 8636</span>GeneratorWrapper<T>></div>
|
|
<div class="line"><a id="l08637" name="l08637"></a><span class="lineno"> 8637</span>random(T a, T b) {</div>
|
|
<div class="line"><a id="l08638" name="l08638"></a><span class="lineno"> 8638</span> <span class="keywordflow">return</span> GeneratorWrapper<T>(</div>
|
|
<div class="line"><a id="l08639" name="l08639"></a><span class="lineno"> 8639</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><RandomFloatingGenerator<T>>(a, b, Detail::getSeed())</div>
|
|
<div class="line"><a id="l08640" name="l08640"></a><span class="lineno"> 8640</span> );</div>
|
|
<div class="line"><a id="l08641" name="l08641"></a><span class="lineno"> 8641</span>}</div>
|
|
<div class="line"><a id="l08642" name="l08642"></a><span class="lineno"> 8642</span> </div>
|
|
<div class="line"><a id="l08643" name="l08643"></a><span class="lineno"> 8643</span> </div>
|
|
<div class="line"><a id="l08644" name="l08644"></a><span class="lineno"> 8644</span>} <span class="comment">// namespace Generators</span></div>
|
|
<div class="line"><a id="l08645" name="l08645"></a><span class="lineno"> 8645</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l08646" name="l08646"></a><span class="lineno"> 8646</span> </div>
|
|
<div class="line"><a id="l08647" name="l08647"></a><span class="lineno"> 8647</span> </div>
|
|
<div class="line"><a id="l08648" name="l08648"></a><span class="lineno"> 8648</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATORS_RANDOM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08649" name="l08649"></a><span class="lineno"> 8649</span> </div>
|
|
<div class="line"><a id="l08650" name="l08650"></a><span class="lineno"> 8650</span> </div>
|
|
<div class="line"><a id="l08651" name="l08651"></a><span class="lineno"> 8651</span><span class="preprocessor">#ifndef CATCH_GENERATORS_RANGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08652" name="l08652"></a><span class="lineno"> 8652</span><span class="preprocessor">#define CATCH_GENERATORS_RANGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08653" name="l08653"></a><span class="lineno"> 8653</span> </div>
|
|
<div class="line"><a id="l08654" name="l08654"></a><span class="lineno"> 8654</span> </div>
|
|
<div class="line"><a id="l08655" name="l08655"></a><span class="lineno"> 8655</span><span class="preprocessor">#include <iterator></span></div>
|
|
<div class="line"><a id="l08656" name="l08656"></a><span class="lineno"> 8656</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l08657" name="l08657"></a><span class="lineno"> 8657</span> </div>
|
|
<div class="line"><a id="l08658" name="l08658"></a><span class="lineno"> 8658</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08659" name="l08659"></a><span class="lineno"> 8659</span><span class="keyword">namespace </span>Generators {</div>
|
|
<div class="line"><a id="l08660" name="l08660"></a><span class="lineno"> 8660</span> </div>
|
|
<div class="line"><a id="l08661" name="l08661"></a><span class="lineno"> 8661</span> </div>
|
|
<div class="line"><a id="l08662" name="l08662"></a><span class="lineno"> 8662</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08663" name="l08663"></a><span class="lineno"> 8663</span><span class="keyword">class </span>RangeGenerator final : <span class="keyword">public</span> IGenerator<T> {</div>
|
|
<div class="line"><a id="l08664" name="l08664"></a><span class="lineno"> 8664</span> T m_current;</div>
|
|
<div class="line"><a id="l08665" name="l08665"></a><span class="lineno"> 8665</span> T m_end;</div>
|
|
<div class="line"><a id="l08666" name="l08666"></a><span class="lineno"> 8666</span> T m_step;</div>
|
|
<div class="line"><a id="l08667" name="l08667"></a><span class="lineno"> 8667</span> <span class="keywordtype">bool</span> m_positive;</div>
|
|
<div class="line"><a id="l08668" name="l08668"></a><span class="lineno"> 8668</span> </div>
|
|
<div class="line"><a id="l08669" name="l08669"></a><span class="lineno"> 8669</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08670" name="l08670"></a><span class="lineno"> 8670</span> RangeGenerator(T <span class="keyword">const</span>& start, T <span class="keyword">const</span>& end, T <span class="keyword">const</span>& step):</div>
|
|
<div class="line"><a id="l08671" name="l08671"></a><span class="lineno"> 8671</span> m_current(start),</div>
|
|
<div class="line"><a id="l08672" name="l08672"></a><span class="lineno"> 8672</span> m_end(end),</div>
|
|
<div class="line"><a id="l08673" name="l08673"></a><span class="lineno"> 8673</span> m_step(step),</div>
|
|
<div class="line"><a id="l08674" name="l08674"></a><span class="lineno"> 8674</span> m_positive(m_step > T(0))</div>
|
|
<div class="line"><a id="l08675" name="l08675"></a><span class="lineno"> 8675</span> {</div>
|
|
<div class="line"><a id="l08676" name="l08676"></a><span class="lineno"> 8676</span> assert(m_current != m_end && <span class="stringliteral">"Range start and end cannot be equal"</span>);</div>
|
|
<div class="line"><a id="l08677" name="l08677"></a><span class="lineno"> 8677</span> assert(m_step != T(0) && <span class="stringliteral">"Step size cannot be zero"</span>);</div>
|
|
<div class="line"><a id="l08678" name="l08678"></a><span class="lineno"> 8678</span> assert(((m_positive && m_current <= m_end) || (!m_positive && m_current >= m_end)) && <span class="stringliteral">"Step moves away from end"</span>);</div>
|
|
<div class="line"><a id="l08679" name="l08679"></a><span class="lineno"> 8679</span> }</div>
|
|
<div class="line"><a id="l08680" name="l08680"></a><span class="lineno"> 8680</span> </div>
|
|
<div class="line"><a id="l08681" name="l08681"></a><span class="lineno"> 8681</span> RangeGenerator(T <span class="keyword">const</span>& start, T <span class="keyword">const</span>& end):</div>
|
|
<div class="line"><a id="l08682" name="l08682"></a><span class="lineno"> 8682</span> RangeGenerator(start, end, (start < end) ? T(1) : T(-1))</div>
|
|
<div class="line"><a id="l08683" name="l08683"></a><span class="lineno"> 8683</span> {}</div>
|
|
<div class="line"><a id="l08684" name="l08684"></a><span class="lineno"> 8684</span> </div>
|
|
<div class="line"><a id="l08685" name="l08685"></a><span class="lineno"> 8685</span> T <span class="keyword">const</span>& get()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l08686" name="l08686"></a><span class="lineno"> 8686</span> <span class="keywordflow">return</span> m_current;</div>
|
|
<div class="line"><a id="l08687" name="l08687"></a><span class="lineno"> 8687</span> }</div>
|
|
<div class="line"><a id="l08688" name="l08688"></a><span class="lineno"> 8688</span> </div>
|
|
<div class="line"><a id="l08689" name="l08689"></a><span class="lineno"> 8689</span> <span class="keywordtype">bool</span> next()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l08690" name="l08690"></a><span class="lineno"> 8690</span> m_current += m_step;</div>
|
|
<div class="line"><a id="l08691" name="l08691"></a><span class="lineno"> 8691</span> <span class="keywordflow">return</span> (m_positive) ? (m_current < m_end) : (m_current > m_end);</div>
|
|
<div class="line"><a id="l08692" name="l08692"></a><span class="lineno"> 8692</span> }</div>
|
|
<div class="line"><a id="l08693" name="l08693"></a><span class="lineno"> 8693</span>};</div>
|
|
<div class="line"><a id="l08694" name="l08694"></a><span class="lineno"> 8694</span> </div>
|
|
<div class="line"><a id="l08695" name="l08695"></a><span class="lineno"> 8695</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08696" name="l08696"></a><span class="lineno"> 8696</span>GeneratorWrapper<T> range(T <span class="keyword">const</span>& start, T <span class="keyword">const</span>& end, T <span class="keyword">const</span>& step) {</div>
|
|
<div class="line"><a id="l08697" name="l08697"></a><span class="lineno"> 8697</span> <span class="keyword">static_assert</span>(std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, <span class="stringliteral">"Type must be numeric"</span>);</div>
|
|
<div class="line"><a id="l08698" name="l08698"></a><span class="lineno"> 8698</span> <span class="keywordflow">return</span> GeneratorWrapper<T>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><RangeGenerator<T>>(start, end, step));</div>
|
|
<div class="line"><a id="l08699" name="l08699"></a><span class="lineno"> 8699</span>}</div>
|
|
<div class="line"><a id="l08700" name="l08700"></a><span class="lineno"> 8700</span> </div>
|
|
<div class="line"><a id="l08701" name="l08701"></a><span class="lineno"> 8701</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08702" name="l08702"></a><span class="lineno"> 8702</span>GeneratorWrapper<T> range(T <span class="keyword">const</span>& start, T <span class="keyword">const</span>& end) {</div>
|
|
<div class="line"><a id="l08703" name="l08703"></a><span class="lineno"> 8703</span> <span class="keyword">static_assert</span>(std::is_integral<T>::value && !std::is_same<T, bool>::value, <span class="stringliteral">"Type must be an integer"</span>);</div>
|
|
<div class="line"><a id="l08704" name="l08704"></a><span class="lineno"> 8704</span> <span class="keywordflow">return</span> GeneratorWrapper<T>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><RangeGenerator<T>>(start, end));</div>
|
|
<div class="line"><a id="l08705" name="l08705"></a><span class="lineno"> 8705</span>}</div>
|
|
<div class="line"><a id="l08706" name="l08706"></a><span class="lineno"> 8706</span> </div>
|
|
<div class="line"><a id="l08707" name="l08707"></a><span class="lineno"> 8707</span> </div>
|
|
<div class="line"><a id="l08708" name="l08708"></a><span class="lineno"> 8708</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l08709" name="l08709"></a><span class="lineno"> 8709</span><span class="keyword">class </span>IteratorGenerator final : <span class="keyword">public</span> IGenerator<T> {</div>
|
|
<div class="line"><a id="l08710" name="l08710"></a><span class="lineno"> 8710</span> <span class="keyword">static_assert</span>(!std::is_same<T, bool>::value,</div>
|
|
<div class="line"><a id="l08711" name="l08711"></a><span class="lineno"> 8711</span> <span class="stringliteral">"IteratorGenerator currently does not support bools"</span></div>
|
|
<div class="line"><a id="l08712" name="l08712"></a><span class="lineno"> 8712</span> <span class="stringliteral">"because of std::vector<bool> specialization"</span>);</div>
|
|
<div class="line"><a id="l08713" name="l08713"></a><span class="lineno"> 8713</span> </div>
|
|
<div class="line"><a id="l08714" name="l08714"></a><span class="lineno"> 8714</span> std::vector<T> m_elems;</div>
|
|
<div class="line"><a id="l08715" name="l08715"></a><span class="lineno"> 8715</span> <span class="keywordtype">size_t</span> m_current = 0;</div>
|
|
<div class="line"><a id="l08716" name="l08716"></a><span class="lineno"> 8716</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08717" name="l08717"></a><span class="lineno"> 8717</span> <span class="keyword">template</span> <<span class="keyword">typename</span> InputIterator, <span class="keyword">typename</span> InputSentinel></div>
|
|
<div class="line"><a id="l08718" name="l08718"></a><span class="lineno"> 8718</span> IteratorGenerator(InputIterator first, InputSentinel last):m_elems(first, last) {</div>
|
|
<div class="line"><a id="l08719" name="l08719"></a><span class="lineno"> 8719</span> <span class="keywordflow">if</span> (m_elems.empty()) {</div>
|
|
<div class="line"><a id="l08720" name="l08720"></a><span class="lineno"> 8720</span> Detail::throw_generator_exception(<span class="stringliteral">"IteratorGenerator received no valid values"</span>);</div>
|
|
<div class="line"><a id="l08721" name="l08721"></a><span class="lineno"> 8721</span> }</div>
|
|
<div class="line"><a id="l08722" name="l08722"></a><span class="lineno"> 8722</span> }</div>
|
|
<div class="line"><a id="l08723" name="l08723"></a><span class="lineno"> 8723</span> </div>
|
|
<div class="line"><a id="l08724" name="l08724"></a><span class="lineno"> 8724</span> T <span class="keyword">const</span>& get()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l08725" name="l08725"></a><span class="lineno"> 8725</span> <span class="keywordflow">return</span> m_elems[m_current];</div>
|
|
<div class="line"><a id="l08726" name="l08726"></a><span class="lineno"> 8726</span> }</div>
|
|
<div class="line"><a id="l08727" name="l08727"></a><span class="lineno"> 8727</span> </div>
|
|
<div class="line"><a id="l08728" name="l08728"></a><span class="lineno"> 8728</span> <span class="keywordtype">bool</span> next()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l08729" name="l08729"></a><span class="lineno"> 8729</span> ++m_current;</div>
|
|
<div class="line"><a id="l08730" name="l08730"></a><span class="lineno"> 8730</span> <span class="keywordflow">return</span> m_current != m_elems.size();</div>
|
|
<div class="line"><a id="l08731" name="l08731"></a><span class="lineno"> 8731</span> }</div>
|
|
<div class="line"><a id="l08732" name="l08732"></a><span class="lineno"> 8732</span>};</div>
|
|
<div class="line"><a id="l08733" name="l08733"></a><span class="lineno"> 8733</span> </div>
|
|
<div class="line"><a id="l08734" name="l08734"></a><span class="lineno"> 8734</span><span class="keyword">template</span> <<span class="keyword">typename</span> InputIterator,</div>
|
|
<div class="line"><a id="l08735" name="l08735"></a><span class="lineno"> 8735</span> <span class="keyword">typename</span> InputSentinel,</div>
|
|
<div class="line"><a id="l08736" name="l08736"></a><span class="lineno"> 8736</span> <span class="keyword">typename</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">ResultType</a> = std::remove_const_t<typename std::iterator_traits<InputIterator>::value_type>></div>
|
|
<div class="line"><a id="l08737" name="l08737"></a><span class="lineno"> 8737</span>GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel to) {</div>
|
|
<div class="line"><a id="l08738" name="l08738"></a><span class="lineno"> 8738</span> <span class="keywordflow">return</span> GeneratorWrapper<ResultType>(<a class="code hl_function" href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a><IteratorGenerator<ResultType>>(from, to));</div>
|
|
<div class="line"><a id="l08739" name="l08739"></a><span class="lineno"> 8739</span>}</div>
|
|
<div class="line"><a id="l08740" name="l08740"></a><span class="lineno"> 8740</span> </div>
|
|
<div class="line"><a id="l08741" name="l08741"></a><span class="lineno"> 8741</span><span class="keyword">template</span> <<span class="keyword">typename</span> Container></div>
|
|
<div class="line"><a id="l08742" name="l08742"></a><span class="lineno"> 8742</span><span class="keyword">auto</span> from_range(Container <span class="keyword">const</span>& cnt) {</div>
|
|
<div class="line"><a id="l08743" name="l08743"></a><span class="lineno"> 8743</span> <span class="keyword">using </span>std::begin;</div>
|
|
<div class="line"><a id="l08744" name="l08744"></a><span class="lineno"> 8744</span> <span class="keyword">using </span>std::end;</div>
|
|
<div class="line"><a id="l08745" name="l08745"></a><span class="lineno"> 8745</span> <span class="keywordflow">return</span> from_range( begin( cnt ), end( cnt ) );</div>
|
|
<div class="line"><a id="l08746" name="l08746"></a><span class="lineno"> 8746</span>}</div>
|
|
<div class="line"><a id="l08747" name="l08747"></a><span class="lineno"> 8747</span> </div>
|
|
<div class="line"><a id="l08748" name="l08748"></a><span class="lineno"> 8748</span> </div>
|
|
<div class="line"><a id="l08749" name="l08749"></a><span class="lineno"> 8749</span>} <span class="comment">// namespace Generators</span></div>
|
|
<div class="line"><a id="l08750" name="l08750"></a><span class="lineno"> 8750</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l08751" name="l08751"></a><span class="lineno"> 8751</span> </div>
|
|
<div class="line"><a id="l08752" name="l08752"></a><span class="lineno"> 8752</span> </div>
|
|
<div class="line"><a id="l08753" name="l08753"></a><span class="lineno"> 8753</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATORS_RANGE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08754" name="l08754"></a><span class="lineno"> 8754</span> </div>
|
|
<div class="line"><a id="l08755" name="l08755"></a><span class="lineno"> 8755</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GENERATORS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08756" name="l08756"></a><span class="lineno"> 8756</span> </div>
|
|
<div class="line"><a id="l08757" name="l08757"></a><span class="lineno"> 8757</span></div>
|
|
<div class="line"><a id="l08770" name="l08770"></a><span class="lineno"> 8770</span> </div>
|
|
<div class="line"><a id="l08771" name="l08771"></a><span class="lineno"> 8771</span> </div>
|
|
<div class="line"><a id="l08772" name="l08772"></a><span class="lineno"> 8772</span><span class="preprocessor">#ifndef CATCH_INTERFACES_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08773" name="l08773"></a><span class="lineno"> 8773</span><span class="preprocessor">#define CATCH_INTERFACES_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08774" name="l08774"></a><span class="lineno"> 8774</span> </div>
|
|
<div class="line"><a id="l08775" name="l08775"></a><span class="lineno"> 8775</span> </div>
|
|
<div class="line"><a id="l08776" name="l08776"></a><span class="lineno"> 8776</span> </div>
|
|
<div class="line"><a id="l08777" name="l08777"></a><span class="lineno"> 8777</span><span class="preprocessor">#ifndef CATCH_INTERFACES_REPORTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08778" name="l08778"></a><span class="lineno"> 8778</span><span class="preprocessor">#define CATCH_INTERFACES_REPORTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08779" name="l08779"></a><span class="lineno"> 8779</span> </div>
|
|
<div class="line"><a id="l08780" name="l08780"></a><span class="lineno"> 8780</span> </div>
|
|
<div class="line"><a id="l08781" name="l08781"></a><span class="lineno"> 8781</span> </div>
|
|
<div class="line"><a id="l08782" name="l08782"></a><span class="lineno"> 8782</span><span class="preprocessor">#ifndef CATCH_TEST_RUN_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08783" name="l08783"></a><span class="lineno"> 8783</span><span class="preprocessor">#define CATCH_TEST_RUN_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08784" name="l08784"></a><span class="lineno"> 8784</span> </div>
|
|
<div class="line"><a id="l08785" name="l08785"></a><span class="lineno"> 8785</span> </div>
|
|
<div class="line"><a id="l08786" name="l08786"></a><span class="lineno"> 8786</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08787" name="l08787"></a><span class="lineno"> 8787</span> </div>
|
|
<div class="line"><a id="l08788" name="l08788"></a><span class="lineno"> 8788</span> <span class="keyword">struct </span>TestRunInfo {</div>
|
|
<div class="line"><a id="l08789" name="l08789"></a><span class="lineno"> 8789</span> <span class="keyword">constexpr</span> TestRunInfo(StringRef _name) : name(_name) {}</div>
|
|
<div class="line"><a id="l08790" name="l08790"></a><span class="lineno"> 8790</span> StringRef name;</div>
|
|
<div class="line"><a id="l08791" name="l08791"></a><span class="lineno"> 8791</span> };</div>
|
|
<div class="line"><a id="l08792" name="l08792"></a><span class="lineno"> 8792</span> </div>
|
|
<div class="line"><a id="l08793" name="l08793"></a><span class="lineno"> 8793</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08794" name="l08794"></a><span class="lineno"> 8794</span> </div>
|
|
<div class="line"><a id="l08795" name="l08795"></a><span class="lineno"> 8795</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_RUN_INFO_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l08796" name="l08796"></a><span class="lineno"> 8796</span> </div>
|
|
<div class="line"><a id="l08797" name="l08797"></a><span class="lineno"> 8797</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l08798" name="l08798"></a><span class="lineno"> 8798</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l08799" name="l08799"></a><span class="lineno"> 8799</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l08800" name="l08800"></a><span class="lineno"> 8800</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l08801" name="l08801"></a><span class="lineno"> 8801</span> </div>
|
|
<div class="line"><a id="l08802" name="l08802"></a><span class="lineno"> 8802</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l08803" name="l08803"></a><span class="lineno"> 8803</span> </div>
|
|
<div class="line"><a id="l08804" name="l08804"></a><span class="lineno"> 8804</span> <span class="keyword">struct </span>ReporterDescription;</div>
|
|
<div class="line"><a id="l08805" name="l08805"></a><span class="lineno"> 8805</span> <span class="keyword">struct </span>ListenerDescription;</div>
|
|
<div class="line"><a id="l08806" name="l08806"></a><span class="lineno"> 8806</span> <span class="keyword">struct </span>TagInfo;</div>
|
|
<div class="line"><a id="l08807" name="l08807"></a><span class="lineno"> 8807</span> <span class="keyword">struct </span>TestCaseInfo;</div>
|
|
<div class="line"><a id="l08808" name="l08808"></a><span class="lineno"> 8808</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l08809" name="l08809"></a><span class="lineno"> 8809</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l08810" name="l08810"></a><span class="lineno"> 8810</span> <span class="keyword">class </span>IStream;</div>
|
|
<div class="line"><a id="l08811" name="l08811"></a><span class="lineno"> 8811</span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> : std::uint8_t;</div>
|
|
<div class="line"><a id="l08812" name="l08812"></a><span class="lineno"> 8812</span> </div>
|
|
<div class="line"><a id="l08813" name="l08813"></a><span class="lineno"> 8813</span> <span class="keyword">struct </span>ReporterConfig {</div>
|
|
<div class="line"><a id="l08814" name="l08814"></a><span class="lineno"> 8814</span> ReporterConfig( IConfig <span class="keyword">const</span>* _fullConfig,</div>
|
|
<div class="line"><a id="l08815" name="l08815"></a><span class="lineno"> 8815</span> Detail::unique_ptr<IStream> _stream,</div>
|
|
<div class="line"><a id="l08816" name="l08816"></a><span class="lineno"> 8816</span> ColourMode colourMode,</div>
|
|
<div class="line"><a id="l08817" name="l08817"></a><span class="lineno"> 8817</span> std::map<std::string, std::string> customOptions );</div>
|
|
<div class="line"><a id="l08818" name="l08818"></a><span class="lineno"> 8818</span> </div>
|
|
<div class="line"><a id="l08819" name="l08819"></a><span class="lineno"> 8819</span> ReporterConfig( ReporterConfig&& ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l08820" name="l08820"></a><span class="lineno"> 8820</span> ReporterConfig& operator=( ReporterConfig&& ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l08821" name="l08821"></a><span class="lineno"> 8821</span> ~ReporterConfig(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l08822" name="l08822"></a><span class="lineno"> 8822</span> </div>
|
|
<div class="line"><a id="l08823" name="l08823"></a><span class="lineno"> 8823</span> Detail::unique_ptr<IStream> takeStream() &&;</div>
|
|
<div class="line"><a id="l08824" name="l08824"></a><span class="lineno"> 8824</span> IConfig <span class="keyword">const</span>* fullConfig() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l08825" name="l08825"></a><span class="lineno"> 8825</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> colourMode() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l08826" name="l08826"></a><span class="lineno"> 8826</span> std::map<std::string, std::string> <span class="keyword">const</span>& customOptions() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l08827" name="l08827"></a><span class="lineno"> 8827</span> </div>
|
|
<div class="line"><a id="l08828" name="l08828"></a><span class="lineno"> 8828</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l08829" name="l08829"></a><span class="lineno"> 8829</span> Detail::unique_ptr<IStream> m_stream;</div>
|
|
<div class="line"><a id="l08830" name="l08830"></a><span class="lineno"> 8830</span> IConfig <span class="keyword">const</span>* m_fullConfig;</div>
|
|
<div class="line"><a id="l08831" name="l08831"></a><span class="lineno"> 8831</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> m_colourMode;</div>
|
|
<div class="line"><a id="l08832" name="l08832"></a><span class="lineno"> 8832</span> std::map<std::string, std::string> m_customOptions;</div>
|
|
<div class="line"><a id="l08833" name="l08833"></a><span class="lineno"> 8833</span> };</div>
|
|
<div class="line"><a id="l08834" name="l08834"></a><span class="lineno"> 8834</span> </div>
|
|
<div class="line"><a id="l08835" name="l08835"></a><span class="lineno"> 8835</span> <span class="keyword">struct </span>AssertionStats {</div>
|
|
<div class="line"><a id="l08836" name="l08836"></a><span class="lineno"> 8836</span> AssertionStats( AssertionResult <span class="keyword">const</span>& _assertionResult,</div>
|
|
<div class="line"><a id="l08837" name="l08837"></a><span class="lineno"> 8837</span> std::vector<MessageInfo> <span class="keyword">const</span>& _infoMessages,</div>
|
|
<div class="line"><a id="l08838" name="l08838"></a><span class="lineno"> 8838</span> Totals <span class="keyword">const</span>& _totals );</div>
|
|
<div class="line"><a id="l08839" name="l08839"></a><span class="lineno"> 8839</span> </div>
|
|
<div class="line"><a id="l08840" name="l08840"></a><span class="lineno"> 8840</span> AssertionStats( AssertionStats <span class="keyword">const</span>& ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l08841" name="l08841"></a><span class="lineno"> 8841</span> AssertionStats( AssertionStats && ) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l08842" name="l08842"></a><span class="lineno"> 8842</span> AssertionStats& operator = ( AssertionStats <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l08843" name="l08843"></a><span class="lineno"> 8843</span> AssertionStats& operator = ( AssertionStats && ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l08844" name="l08844"></a><span class="lineno"> 8844</span> </div>
|
|
<div class="line"><a id="l08845" name="l08845"></a><span class="lineno"> 8845</span> AssertionResult assertionResult;</div>
|
|
<div class="line"><a id="l08846" name="l08846"></a><span class="lineno"> 8846</span> std::vector<MessageInfo> infoMessages;</div>
|
|
<div class="line"><a id="l08847" name="l08847"></a><span class="lineno"> 8847</span> Totals totals;</div>
|
|
<div class="line"><a id="l08848" name="l08848"></a><span class="lineno"> 8848</span> };</div>
|
|
<div class="line"><a id="l08849" name="l08849"></a><span class="lineno"> 8849</span> </div>
|
|
<div class="line"><a id="l08850" name="l08850"></a><span class="lineno"> 8850</span> <span class="keyword">struct </span>SectionStats {</div>
|
|
<div class="line"><a id="l08851" name="l08851"></a><span class="lineno"> 8851</span> SectionStats( SectionInfo&& _sectionInfo,</div>
|
|
<div class="line"><a id="l08852" name="l08852"></a><span class="lineno"> 8852</span> Counts <span class="keyword">const</span>& _assertions,</div>
|
|
<div class="line"><a id="l08853" name="l08853"></a><span class="lineno"> 8853</span> <span class="keywordtype">double</span> _durationInSeconds,</div>
|
|
<div class="line"><a id="l08854" name="l08854"></a><span class="lineno"> 8854</span> <span class="keywordtype">bool</span> _missingAssertions );</div>
|
|
<div class="line"><a id="l08855" name="l08855"></a><span class="lineno"> 8855</span> </div>
|
|
<div class="line"><a id="l08856" name="l08856"></a><span class="lineno"> 8856</span> SectionInfo sectionInfo;</div>
|
|
<div class="line"><a id="l08857" name="l08857"></a><span class="lineno"> 8857</span> Counts assertions;</div>
|
|
<div class="line"><a id="l08858" name="l08858"></a><span class="lineno"> 8858</span> <span class="keywordtype">double</span> durationInSeconds;</div>
|
|
<div class="line"><a id="l08859" name="l08859"></a><span class="lineno"> 8859</span> <span class="keywordtype">bool</span> missingAssertions;</div>
|
|
<div class="line"><a id="l08860" name="l08860"></a><span class="lineno"> 8860</span> };</div>
|
|
<div class="line"><a id="l08861" name="l08861"></a><span class="lineno"> 8861</span> </div>
|
|
<div class="line"><a id="l08862" name="l08862"></a><span class="lineno"> 8862</span> <span class="keyword">struct </span>TestCaseStats {</div>
|
|
<div class="line"><a id="l08863" name="l08863"></a><span class="lineno"> 8863</span> TestCaseStats( TestCaseInfo <span class="keyword">const</span>& _testInfo,</div>
|
|
<div class="line"><a id="l08864" name="l08864"></a><span class="lineno"> 8864</span> Totals <span class="keyword">const</span>& _totals,</div>
|
|
<div class="line"><a id="l08865" name="l08865"></a><span class="lineno"> 8865</span> std::string&& _stdOut,</div>
|
|
<div class="line"><a id="l08866" name="l08866"></a><span class="lineno"> 8866</span> std::string&& _stdErr,</div>
|
|
<div class="line"><a id="l08867" name="l08867"></a><span class="lineno"> 8867</span> <span class="keywordtype">bool</span> _aborting );</div>
|
|
<div class="line"><a id="l08868" name="l08868"></a><span class="lineno"> 8868</span> </div>
|
|
<div class="line"><a id="l08869" name="l08869"></a><span class="lineno"> 8869</span> TestCaseInfo <span class="keyword">const</span> * testInfo;</div>
|
|
<div class="line"><a id="l08870" name="l08870"></a><span class="lineno"> 8870</span> Totals totals;</div>
|
|
<div class="line"><a id="l08871" name="l08871"></a><span class="lineno"> 8871</span> std::string stdOut;</div>
|
|
<div class="line"><a id="l08872" name="l08872"></a><span class="lineno"> 8872</span> std::string stdErr;</div>
|
|
<div class="line"><a id="l08873" name="l08873"></a><span class="lineno"> 8873</span> <span class="keywordtype">bool</span> aborting;</div>
|
|
<div class="line"><a id="l08874" name="l08874"></a><span class="lineno"> 8874</span> };</div>
|
|
<div class="line"><a id="l08875" name="l08875"></a><span class="lineno"> 8875</span> </div>
|
|
<div class="line"><a id="l08876" name="l08876"></a><span class="lineno"> 8876</span> <span class="keyword">struct </span>TestRunStats {</div>
|
|
<div class="line"><a id="l08877" name="l08877"></a><span class="lineno"> 8877</span> TestRunStats( TestRunInfo <span class="keyword">const</span>& _runInfo,</div>
|
|
<div class="line"><a id="l08878" name="l08878"></a><span class="lineno"> 8878</span> Totals <span class="keyword">const</span>& _totals,</div>
|
|
<div class="line"><a id="l08879" name="l08879"></a><span class="lineno"> 8879</span> <span class="keywordtype">bool</span> _aborting );</div>
|
|
<div class="line"><a id="l08880" name="l08880"></a><span class="lineno"> 8880</span> </div>
|
|
<div class="line"><a id="l08881" name="l08881"></a><span class="lineno"> 8881</span> TestRunInfo runInfo;</div>
|
|
<div class="line"><a id="l08882" name="l08882"></a><span class="lineno"> 8882</span> Totals totals;</div>
|
|
<div class="line"><a id="l08883" name="l08883"></a><span class="lineno"> 8883</span> <span class="keywordtype">bool</span> aborting;</div>
|
|
<div class="line"><a id="l08884" name="l08884"></a><span class="lineno"> 8884</span> };</div>
|
|
<div class="line"><a id="l08885" name="l08885"></a><span class="lineno"> 8885</span></div>
|
|
<div class="line"><a id="l08889" name="l08889"></a><span class="lineno"> 8889</span> <span class="keyword">struct </span>ReporterPreferences {</div>
|
|
<div class="line"><a id="l08892" name="l08892"></a><span class="lineno"> 8892</span> <span class="keywordtype">bool</span> shouldRedirectStdOut = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l08895" name="l08895"></a><span class="lineno"> 8895</span> <span class="keywordtype">bool</span> shouldReportAllAssertions = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l08896" name="l08896"></a><span class="lineno"> 8896</span> };</div>
|
|
<div class="line"><a id="l08897" name="l08897"></a><span class="lineno"> 8897</span></div>
|
|
<div class="line"><a id="l08910" name="l08910"></a><span class="lineno"> 8910</span> <span class="keyword">class </span>IEventListener {</div>
|
|
<div class="line"><a id="l08911" name="l08911"></a><span class="lineno"> 8911</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l08913" name="l08913"></a><span class="lineno"> 8913</span> ReporterPreferences m_preferences;</div>
|
|
<div class="line"><a id="l08915" name="l08915"></a><span class="lineno"> 8915</span> IConfig <span class="keyword">const</span>* m_config;</div>
|
|
<div class="line"><a id="l08916" name="l08916"></a><span class="lineno"> 8916</span> </div>
|
|
<div class="line"><a id="l08917" name="l08917"></a><span class="lineno"> 8917</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l08918" name="l08918"></a><span class="lineno"> 8918</span> IEventListener( IConfig <span class="keyword">const</span>* config ): m_config( config ) {}</div>
|
|
<div class="line"><a id="l08919" name="l08919"></a><span class="lineno"> 8919</span> </div>
|
|
<div class="line"><a id="l08920" name="l08920"></a><span class="lineno"> 8920</span> <span class="keyword">virtual</span> ~IEventListener(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l08921" name="l08921"></a><span class="lineno"> 8921</span> </div>
|
|
<div class="line"><a id="l08922" name="l08922"></a><span class="lineno"> 8922</span> <span class="comment">// Implementing class must also provide the following static methods:</span></div>
|
|
<div class="line"><a id="l08923" name="l08923"></a><span class="lineno"> 8923</span> <span class="comment">// static std::string getDescription();</span></div>
|
|
<div class="line"><a id="l08924" name="l08924"></a><span class="lineno"> 8924</span> </div>
|
|
<div class="line"><a id="l08925" name="l08925"></a><span class="lineno"> 8925</span> ReporterPreferences <span class="keyword">const</span>& getPreferences()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l08926" name="l08926"></a><span class="lineno"> 8926</span> <span class="keywordflow">return</span> m_preferences;</div>
|
|
<div class="line"><a id="l08927" name="l08927"></a><span class="lineno"> 8927</span> }</div>
|
|
<div class="line"><a id="l08928" name="l08928"></a><span class="lineno"> 8928</span></div>
|
|
<div class="line"><a id="l08930" name="l08930"></a><span class="lineno"> 8930</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) = 0;</div>
|
|
<div class="line"><a id="l08932" name="l08932"></a><span class="lineno"> 8932</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef invalidArgument ) = 0;</div>
|
|
<div class="line"><a id="l08933" name="l08933"></a><span class="lineno"> 8933</span></div>
|
|
<div class="line"><a id="l08939" name="l08939"></a><span class="lineno"> 8939</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& testRunInfo ) = 0;</div>
|
|
<div class="line"><a id="l08940" name="l08940"></a><span class="lineno"> 8940</span></div>
|
|
<div class="line"><a id="l08942" name="l08942"></a><span class="lineno"> 8942</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testCaseStarting( TestCaseInfo <span class="keyword">const</span>& testInfo ) = 0;</div>
|
|
<div class="line"><a id="l08944" name="l08944"></a><span class="lineno"> 8944</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testCasePartialStarting( TestCaseInfo <span class="keyword">const</span>& testInfo, uint64_t partNumber ) = 0;</div>
|
|
<div class="line"><a id="l08946" name="l08946"></a><span class="lineno"> 8946</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> sectionStarting( SectionInfo <span class="keyword">const</span>& sectionInfo ) = 0;</div>
|
|
<div class="line"><a id="l08947" name="l08947"></a><span class="lineno"> 8947</span></div>
|
|
<div class="line"><a id="l08949" name="l08949"></a><span class="lineno"> 8949</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef benchmarkName ) = 0;</div>
|
|
<div class="line"><a id="l08951" name="l08951"></a><span class="lineno"> 8951</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& benchmarkInfo ) = 0;</div>
|
|
<div class="line"><a id="l08953" name="l08953"></a><span class="lineno"> 8953</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& benchmarkStats ) = 0;</div>
|
|
<div class="line"><a id="l08955" name="l08955"></a><span class="lineno"> 8955</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef benchmarkName ) = 0;</div>
|
|
<div class="line"><a id="l08956" name="l08956"></a><span class="lineno"> 8956</span></div>
|
|
<div class="line"><a id="l08958" name="l08958"></a><span class="lineno"> 8958</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& assertionInfo ) = 0;</div>
|
|
<div class="line"><a id="l08959" name="l08959"></a><span class="lineno"> 8959</span></div>
|
|
<div class="line"><a id="l08961" name="l08961"></a><span class="lineno"> 8961</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& assertionStats ) = 0;</div>
|
|
<div class="line"><a id="l08962" name="l08962"></a><span class="lineno"> 8962</span></div>
|
|
<div class="line"><a id="l08964" name="l08964"></a><span class="lineno"> 8964</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> sectionEnded( SectionStats <span class="keyword">const</span>& sectionStats ) = 0;</div>
|
|
<div class="line"><a id="l08966" name="l08966"></a><span class="lineno"> 8966</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testCasePartialEnded(TestCaseStats <span class="keyword">const</span>& testCaseStats, uint64_t partNumber ) = 0;</div>
|
|
<div class="line"><a id="l08968" name="l08968"></a><span class="lineno"> 8968</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testCaseEnded( TestCaseStats <span class="keyword">const</span>& testCaseStats ) = 0;</div>
|
|
<div class="line"><a id="l08974" name="l08974"></a><span class="lineno"> 8974</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& testRunStats ) = 0;</div>
|
|
<div class="line"><a id="l08975" name="l08975"></a><span class="lineno"> 8975</span></div>
|
|
<div class="line"><a id="l08982" name="l08982"></a><span class="lineno"> 8982</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> skipTest( TestCaseInfo <span class="keyword">const</span>& testInfo ) = 0;</div>
|
|
<div class="line"><a id="l08983" name="l08983"></a><span class="lineno"> 8983</span></div>
|
|
<div class="line"><a id="l08985" name="l08985"></a><span class="lineno"> 8985</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fatalErrorEncountered( StringRef error ) = 0;</div>
|
|
<div class="line"><a id="l08986" name="l08986"></a><span class="lineno"> 8986</span></div>
|
|
<div class="line"><a id="l08988" name="l08988"></a><span class="lineno"> 8988</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> listReporters(std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions) = 0;</div>
|
|
<div class="line"><a id="l08990" name="l08990"></a><span class="lineno"> 8990</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> listListeners(std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions) = 0;</div>
|
|
<div class="line"><a id="l08992" name="l08992"></a><span class="lineno"> 8992</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> listTests(std::vector<TestCaseHandle> <span class="keyword">const</span>& tests) = 0;</div>
|
|
<div class="line"><a id="l08994" name="l08994"></a><span class="lineno"> 8994</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> listTags(std::vector<TagInfo> <span class="keyword">const</span>& tags) = 0;</div>
|
|
<div class="line"><a id="l08995" name="l08995"></a><span class="lineno"> 8995</span> };</div>
|
|
<div class="line"><a id="l08996" name="l08996"></a><span class="lineno"> 8996</span> <span class="keyword">using </span>IEventListenerPtr = Detail::unique_ptr<IEventListener>;</div>
|
|
<div class="line"><a id="l08997" name="l08997"></a><span class="lineno"> 8997</span> </div>
|
|
<div class="line"><a id="l08998" name="l08998"></a><span class="lineno"> 8998</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l08999" name="l08999"></a><span class="lineno"> 8999</span> </div>
|
|
<div class="line"><a id="l09000" name="l09000"></a><span class="lineno"> 9000</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_REPORTER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09001" name="l09001"></a><span class="lineno"> 9001</span> </div>
|
|
<div class="line"><a id="l09002" name="l09002"></a><span class="lineno"> 9002</span> </div>
|
|
<div class="line"><a id="l09003" name="l09003"></a><span class="lineno"> 9003</span><span class="preprocessor">#ifndef CATCH_INTERFACES_REPORTER_FACTORY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09004" name="l09004"></a><span class="lineno"> 9004</span><span class="preprocessor">#define CATCH_INTERFACES_REPORTER_FACTORY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09005" name="l09005"></a><span class="lineno"> 9005</span> </div>
|
|
<div class="line"><a id="l09006" name="l09006"></a><span class="lineno"> 9006</span> </div>
|
|
<div class="line"><a id="l09007" name="l09007"></a><span class="lineno"> 9007</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09008" name="l09008"></a><span class="lineno"> 9008</span> </div>
|
|
<div class="line"><a id="l09009" name="l09009"></a><span class="lineno"> 9009</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09010" name="l09010"></a><span class="lineno"> 9010</span> </div>
|
|
<div class="line"><a id="l09011" name="l09011"></a><span class="lineno"> 9011</span> <span class="keyword">struct </span>ReporterConfig;</div>
|
|
<div class="line"><a id="l09012" name="l09012"></a><span class="lineno"> 9012</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l09013" name="l09013"></a><span class="lineno"> 9013</span> <span class="keyword">class </span>IEventListener;</div>
|
|
<div class="line"><a id="l09014" name="l09014"></a><span class="lineno"> 9014</span> <span class="keyword">using </span>IEventListenerPtr = Detail::unique_ptr<IEventListener>;</div>
|
|
<div class="line"><a id="l09015" name="l09015"></a><span class="lineno"> 9015</span> </div>
|
|
<div class="line"><a id="l09016" name="l09016"></a><span class="lineno"> 9016</span> </div>
|
|
<div class="line"><a id="l09017" name="l09017"></a><span class="lineno"> 9017</span> <span class="keyword">class </span>IReporterFactory {</div>
|
|
<div class="line"><a id="l09018" name="l09018"></a><span class="lineno"> 9018</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09019" name="l09019"></a><span class="lineno"> 9019</span> <span class="keyword">virtual</span> ~IReporterFactory(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09020" name="l09020"></a><span class="lineno"> 9020</span> </div>
|
|
<div class="line"><a id="l09021" name="l09021"></a><span class="lineno"> 9021</span> <span class="keyword">virtual</span> IEventListenerPtr</div>
|
|
<div class="line"><a id="l09022" name="l09022"></a><span class="lineno"> 9022</span> create( ReporterConfig&& config ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09023" name="l09023"></a><span class="lineno"> 9023</span> <span class="keyword">virtual</span> std::string getDescription() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09024" name="l09024"></a><span class="lineno"> 9024</span> };</div>
|
|
<div class="line"><a id="l09025" name="l09025"></a><span class="lineno"> 9025</span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">IReporterFactoryPtr</a> = Detail::unique_ptr<IReporterFactory>;</div>
|
|
<div class="line"><a id="l09026" name="l09026"></a><span class="lineno"> 9026</span> </div>
|
|
<div class="line"><a id="l09027" name="l09027"></a><span class="lineno"> 9027</span> <span class="keyword">class </span>EventListenerFactory {</div>
|
|
<div class="line"><a id="l09028" name="l09028"></a><span class="lineno"> 9028</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09029" name="l09029"></a><span class="lineno"> 9029</span> <span class="keyword">virtual</span> ~EventListenerFactory(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09030" name="l09030"></a><span class="lineno"> 9030</span> <span class="keyword">virtual</span> IEventListenerPtr create( IConfig <span class="keyword">const</span>* config ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09032" name="l09032"></a><span class="lineno"> 9032</span> <span class="keyword">virtual</span> StringRef getName() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09034" name="l09034"></a><span class="lineno"> 9034</span> <span class="keyword">virtual</span> std::string getDescription() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09035" name="l09035"></a><span class="lineno"> 9035</span> };</div>
|
|
<div class="line"><a id="l09036" name="l09036"></a><span class="lineno"> 9036</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l09037" name="l09037"></a><span class="lineno"> 9037</span> </div>
|
|
<div class="line"><a id="l09038" name="l09038"></a><span class="lineno"> 9038</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_REPORTER_FACTORY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09039" name="l09039"></a><span class="lineno"> 9039</span> </div>
|
|
<div class="line"><a id="l09040" name="l09040"></a><span class="lineno"> 9040</span> </div>
|
|
<div class="line"><a id="l09041" name="l09041"></a><span class="lineno"> 9041</span><span class="preprocessor">#ifndef CATCH_INTERFACES_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09042" name="l09042"></a><span class="lineno"> 9042</span><span class="preprocessor">#define CATCH_INTERFACES_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09043" name="l09043"></a><span class="lineno"> 9043</span> </div>
|
|
<div class="line"><a id="l09044" name="l09044"></a><span class="lineno"> 9044</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09045" name="l09045"></a><span class="lineno"> 9045</span> </div>
|
|
<div class="line"><a id="l09046" name="l09046"></a><span class="lineno"> 9046</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09047" name="l09047"></a><span class="lineno"> 9047</span> </div>
|
|
<div class="line"><a id="l09048" name="l09048"></a><span class="lineno"> 9048</span> <span class="keyword">struct </span>TagAlias;</div>
|
|
<div class="line"><a id="l09049" name="l09049"></a><span class="lineno"> 9049</span> </div>
|
|
<div class="line"><a id="l09050" name="l09050"></a><span class="lineno"> 9050</span> <span class="keyword">class </span>ITagAliasRegistry {</div>
|
|
<div class="line"><a id="l09051" name="l09051"></a><span class="lineno"> 9051</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09052" name="l09052"></a><span class="lineno"> 9052</span> <span class="keyword">virtual</span> ~ITagAliasRegistry(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09053" name="l09053"></a><span class="lineno"> 9053</span> <span class="comment">// Nullptr if not present</span></div>
|
|
<div class="line"><a id="l09054" name="l09054"></a><span class="lineno"> 9054</span> <span class="keyword">virtual</span> TagAlias <span class="keyword">const</span>* find( std::string <span class="keyword">const</span>& alias ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09055" name="l09055"></a><span class="lineno"> 9055</span> <span class="keyword">virtual</span> std::string expandAliases( std::string <span class="keyword">const</span>& unexpandedTestSpec ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09056" name="l09056"></a><span class="lineno"> 9056</span> </div>
|
|
<div class="line"><a id="l09057" name="l09057"></a><span class="lineno"> 9057</span> <span class="keyword">static</span> ITagAliasRegistry <span class="keyword">const</span>& get();</div>
|
|
<div class="line"><a id="l09058" name="l09058"></a><span class="lineno"> 9058</span> };</div>
|
|
<div class="line"><a id="l09059" name="l09059"></a><span class="lineno"> 9059</span> </div>
|
|
<div class="line"><a id="l09060" name="l09060"></a><span class="lineno"> 9060</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l09061" name="l09061"></a><span class="lineno"> 9061</span> </div>
|
|
<div class="line"><a id="l09062" name="l09062"></a><span class="lineno"> 9062</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09063" name="l09063"></a><span class="lineno"> 9063</span> </div>
|
|
<div class="line"><a id="l09064" name="l09064"></a><span class="lineno"> 9064</span> </div>
|
|
<div class="line"><a id="l09065" name="l09065"></a><span class="lineno"> 9065</span><span class="preprocessor">#ifndef CATCH_INTERFACES_TESTCASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09066" name="l09066"></a><span class="lineno"> 9066</span><span class="preprocessor">#define CATCH_INTERFACES_TESTCASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09067" name="l09067"></a><span class="lineno"> 9067</span> </div>
|
|
<div class="line"><a id="l09068" name="l09068"></a><span class="lineno"> 9068</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l09069" name="l09069"></a><span class="lineno"> 9069</span> </div>
|
|
<div class="line"><a id="l09070" name="l09070"></a><span class="lineno"> 9070</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09071" name="l09071"></a><span class="lineno"> 9071</span> </div>
|
|
<div class="line"><a id="l09072" name="l09072"></a><span class="lineno"> 9072</span> <span class="keyword">struct </span>TestCaseInfo;</div>
|
|
<div class="line"><a id="l09073" name="l09073"></a><span class="lineno"> 9073</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l09074" name="l09074"></a><span class="lineno"> 9074</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l09075" name="l09075"></a><span class="lineno"> 9075</span> </div>
|
|
<div class="line"><a id="l09076" name="l09076"></a><span class="lineno"> 9076</span> <span class="keyword">class </span>ITestCaseRegistry {</div>
|
|
<div class="line"><a id="l09077" name="l09077"></a><span class="lineno"> 9077</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09078" name="l09078"></a><span class="lineno"> 9078</span> <span class="keyword">virtual</span> ~ITestCaseRegistry(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09079" name="l09079"></a><span class="lineno"> 9079</span> <span class="comment">// TODO: this exists only for adding filenames to test cases -- let's expose this in a saner way later</span></div>
|
|
<div class="line"><a id="l09080" name="l09080"></a><span class="lineno"> 9080</span> <span class="keyword">virtual</span> std::vector<TestCaseInfo* > <span class="keyword">const</span>& getAllInfos() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09081" name="l09081"></a><span class="lineno"> 9081</span> <span class="keyword">virtual</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& getAllTests() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09082" name="l09082"></a><span class="lineno"> 9082</span> <span class="keyword">virtual</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& getAllTestsSorted( IConfig <span class="keyword">const</span>& config ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09083" name="l09083"></a><span class="lineno"> 9083</span> };</div>
|
|
<div class="line"><a id="l09084" name="l09084"></a><span class="lineno"> 9084</span> </div>
|
|
<div class="line"><a id="l09085" name="l09085"></a><span class="lineno"> 9085</span>}</div>
|
|
<div class="line"><a id="l09086" name="l09086"></a><span class="lineno"> 9086</span> </div>
|
|
<div class="line"><a id="l09087" name="l09087"></a><span class="lineno"> 9087</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_TESTCASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09088" name="l09088"></a><span class="lineno"> 9088</span> </div>
|
|
<div class="line"><a id="l09089" name="l09089"></a><span class="lineno"> 9089</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_INTERFACES_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09090" name="l09090"></a><span class="lineno"> 9090</span> </div>
|
|
<div class="line"><a id="l09091" name="l09091"></a><span class="lineno"> 9091</span> </div>
|
|
<div class="line"><a id="l09092" name="l09092"></a><span class="lineno"> 9092</span><span class="preprocessor">#ifndef CATCH_CASE_INSENSITIVE_COMPARISONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09093" name="l09093"></a><span class="lineno"> 9093</span><span class="preprocessor">#define CATCH_CASE_INSENSITIVE_COMPARISONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09094" name="l09094"></a><span class="lineno"> 9094</span> </div>
|
|
<div class="line"><a id="l09095" name="l09095"></a><span class="lineno"> 9095</span> </div>
|
|
<div class="line"><a id="l09096" name="l09096"></a><span class="lineno"> 9096</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09097" name="l09097"></a><span class="lineno"> 9097</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09099" name="l09099"></a><span class="lineno"> 9099</span> <span class="keyword">struct </span>CaseInsensitiveLess {</div>
|
|
<div class="line"><a id="l09100" name="l09100"></a><span class="lineno"> 9100</span> <span class="keywordtype">bool</span> operator()( StringRef lhs,</div>
|
|
<div class="line"><a id="l09101" name="l09101"></a><span class="lineno"> 9101</span> StringRef rhs ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l09102" name="l09102"></a><span class="lineno"> 9102</span> };</div>
|
|
<div class="line"><a id="l09103" name="l09103"></a><span class="lineno"> 9103</span></div>
|
|
<div class="line"><a id="l09105" name="l09105"></a><span class="lineno"> 9105</span> <span class="keyword">struct </span>CaseInsensitiveEqualTo {</div>
|
|
<div class="line"><a id="l09106" name="l09106"></a><span class="lineno"> 9106</span> <span class="keywordtype">bool</span> operator()( StringRef lhs,</div>
|
|
<div class="line"><a id="l09107" name="l09107"></a><span class="lineno"> 9107</span> StringRef rhs ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l09108" name="l09108"></a><span class="lineno"> 9108</span> };</div>
|
|
<div class="line"><a id="l09109" name="l09109"></a><span class="lineno"> 9109</span> </div>
|
|
<div class="line"><a id="l09110" name="l09110"></a><span class="lineno"> 9110</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l09111" name="l09111"></a><span class="lineno"> 9111</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l09112" name="l09112"></a><span class="lineno"> 9112</span> </div>
|
|
<div class="line"><a id="l09113" name="l09113"></a><span class="lineno"> 9113</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CASE_INSENSITIVE_COMPARISONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09114" name="l09114"></a><span class="lineno"> 9114</span> </div>
|
|
<div class="line"><a id="l09115" name="l09115"></a><span class="lineno"> 9115</span> </div>
|
|
<div class="line"><a id="l09116" name="l09116"></a><span class="lineno"> 9116</span></div>
|
|
<div class="line"><a id="l09124" name="l09124"></a><span class="lineno"> 9124</span> </div>
|
|
<div class="line"><a id="l09125" name="l09125"></a><span class="lineno"> 9125</span><span class="preprocessor">#ifndef CATCH_CONFIG_ANDROID_LOGWRITE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09126" name="l09126"></a><span class="lineno"> 9126</span><span class="preprocessor">#define CATCH_CONFIG_ANDROID_LOGWRITE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09127" name="l09127"></a><span class="lineno"> 9127</span> </div>
|
|
<div class="line"><a id="l09128" name="l09128"></a><span class="lineno"> 9128</span> </div>
|
|
<div class="line"><a id="l09129" name="l09129"></a><span class="lineno"> 9129</span><span class="preprocessor">#if defined(__ANDROID__)</span></div>
|
|
<div class="line"><a id="l09130" name="l09130"></a><span class="lineno"> 9130</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE</span></div>
|
|
<div class="line"><a id="l09131" name="l09131"></a><span class="lineno"> 9131</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09132" name="l09132"></a><span class="lineno"> 9132</span> </div>
|
|
<div class="line"><a id="l09133" name="l09133"></a><span class="lineno"> 9133</span> </div>
|
|
<div class="line"><a id="l09134" name="l09134"></a><span class="lineno"> 9134</span><span class="preprocessor">#if defined( CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE ) && \</span></div>
|
|
<div class="line"><a id="l09135" name="l09135"></a><span class="lineno"> 9135</span><span class="preprocessor"> !defined( CATCH_CONFIG_NO_ANDROID_LOGWRITE ) && \</span></div>
|
|
<div class="line"><a id="l09136" name="l09136"></a><span class="lineno"> 9136</span><span class="preprocessor"> !defined( CATCH_CONFIG_ANDROID_LOGWRITE )</span></div>
|
|
<div class="line"><a id="l09137" name="l09137"></a><span class="lineno"> 9137</span><span class="preprocessor"># define CATCH_CONFIG_ANDROID_LOGWRITE</span></div>
|
|
<div class="line"><a id="l09138" name="l09138"></a><span class="lineno"> 9138</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09139" name="l09139"></a><span class="lineno"> 9139</span> </div>
|
|
<div class="line"><a id="l09140" name="l09140"></a><span class="lineno"> 9140</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_ANDROID_LOGWRITE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09141" name="l09141"></a><span class="lineno"> 9141</span> </div>
|
|
<div class="line"><a id="l09142" name="l09142"></a><span class="lineno"> 9142</span> </div>
|
|
<div class="line"><a id="l09143" name="l09143"></a><span class="lineno"> 9143</span></div>
|
|
<div class="line"><a id="l09151" name="l09151"></a><span class="lineno"> 9151</span> </div>
|
|
<div class="line"><a id="l09152" name="l09152"></a><span class="lineno"> 9152</span><span class="preprocessor">#ifndef CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09153" name="l09153"></a><span class="lineno"> 9153</span><span class="preprocessor">#define CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09154" name="l09154"></a><span class="lineno"> 9154</span> </div>
|
|
<div class="line"><a id="l09155" name="l09155"></a><span class="lineno"> 9155</span> </div>
|
|
<div class="line"><a id="l09156" name="l09156"></a><span class="lineno"> 9156</span><span class="preprocessor">#if defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l09157" name="l09157"></a><span class="lineno"> 9157</span><span class="preprocessor"># if _MSC_VER >= 1900 </span><span class="comment">// Visual Studio 2015 or newer</span></div>
|
|
<div class="line"><a id="l09158" name="l09158"></a><span class="lineno"> 9158</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS</span></div>
|
|
<div class="line"><a id="l09159" name="l09159"></a><span class="lineno"> 9159</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l09160" name="l09160"></a><span class="lineno"> 9160</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09161" name="l09161"></a><span class="lineno"> 9161</span> </div>
|
|
<div class="line"><a id="l09162" name="l09162"></a><span class="lineno"> 9162</span> </div>
|
|
<div class="line"><a id="l09163" name="l09163"></a><span class="lineno"> 9163</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l09164" name="l09164"></a><span class="lineno"> 9164</span> </div>
|
|
<div class="line"><a id="l09165" name="l09165"></a><span class="lineno"> 9165</span><span class="preprocessor">#if defined(__cpp_lib_uncaught_exceptions) \</span></div>
|
|
<div class="line"><a id="l09166" name="l09166"></a><span class="lineno"> 9166</span><span class="preprocessor"> && !defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l09167" name="l09167"></a><span class="lineno"> 9167</span> </div>
|
|
<div class="line"><a id="l09168" name="l09168"></a><span class="lineno"> 9168</span><span class="preprocessor"># define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS</span></div>
|
|
<div class="line"><a id="l09169" name="l09169"></a><span class="lineno"> 9169</span><span class="preprocessor">#endif </span><span class="comment">// __cpp_lib_uncaught_exceptions</span></div>
|
|
<div class="line"><a id="l09170" name="l09170"></a><span class="lineno"> 9170</span> </div>
|
|
<div class="line"><a id="l09171" name="l09171"></a><span class="lineno"> 9171</span> </div>
|
|
<div class="line"><a id="l09172" name="l09172"></a><span class="lineno"> 9172</span><span class="preprocessor">#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) \</span></div>
|
|
<div class="line"><a id="l09173" name="l09173"></a><span class="lineno"> 9173</span><span class="preprocessor"> && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) \</span></div>
|
|
<div class="line"><a id="l09174" name="l09174"></a><span class="lineno"> 9174</span><span class="preprocessor"> && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l09175" name="l09175"></a><span class="lineno"> 9175</span> </div>
|
|
<div class="line"><a id="l09176" name="l09176"></a><span class="lineno"> 9176</span><span class="preprocessor"># define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS</span></div>
|
|
<div class="line"><a id="l09177" name="l09177"></a><span class="lineno"> 9177</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09178" name="l09178"></a><span class="lineno"> 9178</span> </div>
|
|
<div class="line"><a id="l09179" name="l09179"></a><span class="lineno"> 9179</span> </div>
|
|
<div class="line"><a id="l09180" name="l09180"></a><span class="lineno"> 9180</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09181" name="l09181"></a><span class="lineno"> 9181</span> </div>
|
|
<div class="line"><a id="l09182" name="l09182"></a><span class="lineno"> 9182</span> </div>
|
|
<div class="line"><a id="l09183" name="l09183"></a><span class="lineno"> 9183</span><span class="preprocessor">#ifndef CATCH_CONSOLE_COLOUR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09184" name="l09184"></a><span class="lineno"> 9184</span><span class="preprocessor">#define CATCH_CONSOLE_COLOUR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09185" name="l09185"></a><span class="lineno"> 9185</span> </div>
|
|
<div class="line"><a id="l09186" name="l09186"></a><span class="lineno"> 9186</span> </div>
|
|
<div class="line"><a id="l09187" name="l09187"></a><span class="lineno"> 9187</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l09188" name="l09188"></a><span class="lineno"> 9188</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l09189" name="l09189"></a><span class="lineno"> 9189</span> </div>
|
|
<div class="line"><a id="l09190" name="l09190"></a><span class="lineno"> 9190</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09191" name="l09191"></a><span class="lineno"> 9191</span> </div>
|
|
<div class="line"><a id="l09192" name="l09192"></a><span class="lineno"> 9192</span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch.html#a91308e87521e370e591065a22b010025">ColourMode</a> : std::uint8_t;</div>
|
|
<div class="line"><a id="l09193" name="l09193"></a><span class="lineno"> 9193</span> <span class="keyword">class </span>IStream;</div>
|
|
<div class="line"><a id="l09194" name="l09194"></a><span class="lineno"> 9194</span> </div>
|
|
<div class="line"><a id="l09195" name="l09195"></a><span class="lineno"> 9195</span> <span class="keyword">struct </span>Colour {</div>
|
|
<div class="line"><a id="l09196" name="l09196"></a><span class="lineno"> 9196</span> <span class="keyword">enum</span> Code {</div>
|
|
<div class="line"><a id="l09197" name="l09197"></a><span class="lineno"> 9197</span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a> = 0,</div>
|
|
<div class="line"><a id="l09198" name="l09198"></a><span class="lineno"> 9198</span> </div>
|
|
<div class="line"><a id="l09199" name="l09199"></a><span class="lineno"> 9199</span> White,</div>
|
|
<div class="line"><a id="l09200" name="l09200"></a><span class="lineno"> 9200</span> Red,</div>
|
|
<div class="line"><a id="l09201" name="l09201"></a><span class="lineno"> 9201</span> Green,</div>
|
|
<div class="line"><a id="l09202" name="l09202"></a><span class="lineno"> 9202</span> Blue,</div>
|
|
<div class="line"><a id="l09203" name="l09203"></a><span class="lineno"> 9203</span> Cyan,</div>
|
|
<div class="line"><a id="l09204" name="l09204"></a><span class="lineno"> 9204</span> Yellow,</div>
|
|
<div class="line"><a id="l09205" name="l09205"></a><span class="lineno"> 9205</span> Grey,</div>
|
|
<div class="line"><a id="l09206" name="l09206"></a><span class="lineno"> 9206</span> </div>
|
|
<div class="line"><a id="l09207" name="l09207"></a><span class="lineno"> 9207</span> Bright = 0x10,</div>
|
|
<div class="line"><a id="l09208" name="l09208"></a><span class="lineno"> 9208</span> </div>
|
|
<div class="line"><a id="l09209" name="l09209"></a><span class="lineno"> 9209</span> BrightRed = Bright | Red,</div>
|
|
<div class="line"><a id="l09210" name="l09210"></a><span class="lineno"> 9210</span> BrightGreen = Bright | Green,</div>
|
|
<div class="line"><a id="l09211" name="l09211"></a><span class="lineno"> 9211</span> LightGrey = Bright | Grey,</div>
|
|
<div class="line"><a id="l09212" name="l09212"></a><span class="lineno"> 9212</span> BrightWhite = Bright | White,</div>
|
|
<div class="line"><a id="l09213" name="l09213"></a><span class="lineno"> 9213</span> BrightYellow = Bright | Yellow,</div>
|
|
<div class="line"><a id="l09214" name="l09214"></a><span class="lineno"> 9214</span> </div>
|
|
<div class="line"><a id="l09215" name="l09215"></a><span class="lineno"> 9215</span> <span class="comment">// By intention</span></div>
|
|
<div class="line"><a id="l09216" name="l09216"></a><span class="lineno"> 9216</span> FileName = LightGrey,</div>
|
|
<div class="line"><a id="l09217" name="l09217"></a><span class="lineno"> 9217</span> Warning = BrightYellow,</div>
|
|
<div class="line"><a id="l09218" name="l09218"></a><span class="lineno"> 9218</span> ResultError = BrightRed,</div>
|
|
<div class="line"><a id="l09219" name="l09219"></a><span class="lineno"> 9219</span> ResultSuccess = BrightGreen,</div>
|
|
<div class="line"><a id="l09220" name="l09220"></a><span class="lineno"> 9220</span> ResultExpectedFailure = Warning,</div>
|
|
<div class="line"><a id="l09221" name="l09221"></a><span class="lineno"> 9221</span> </div>
|
|
<div class="line"><a id="l09222" name="l09222"></a><span class="lineno"> 9222</span> Error = BrightRed,</div>
|
|
<div class="line"><a id="l09223" name="l09223"></a><span class="lineno"> 9223</span> Success = Green,</div>
|
|
<div class="line"><a id="l09224" name="l09224"></a><span class="lineno"> 9224</span> Skip = LightGrey,</div>
|
|
<div class="line"><a id="l09225" name="l09225"></a><span class="lineno"> 9225</span> </div>
|
|
<div class="line"><a id="l09226" name="l09226"></a><span class="lineno"> 9226</span> OriginalExpression = Cyan,</div>
|
|
<div class="line"><a id="l09227" name="l09227"></a><span class="lineno"> 9227</span> ReconstructedExpression = BrightYellow,</div>
|
|
<div class="line"><a id="l09228" name="l09228"></a><span class="lineno"> 9228</span> </div>
|
|
<div class="line"><a id="l09229" name="l09229"></a><span class="lineno"> 9229</span> SecondaryText = LightGrey,</div>
|
|
<div class="line"><a id="l09230" name="l09230"></a><span class="lineno"> 9230</span> Headers = White</div>
|
|
<div class="line"><a id="l09231" name="l09231"></a><span class="lineno"> 9231</span> };</div>
|
|
<div class="line"><a id="l09232" name="l09232"></a><span class="lineno"> 9232</span> };</div>
|
|
<div class="line"><a id="l09233" name="l09233"></a><span class="lineno"> 9233</span> </div>
|
|
<div class="line"><a id="l09234" name="l09234"></a><span class="lineno"> 9234</span> <span class="keyword">class </span>ColourImpl {</div>
|
|
<div class="line"><a id="l09235" name="l09235"></a><span class="lineno"> 9235</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l09237" name="l09237"></a><span class="lineno"> 9237</span> IStream* m_stream;</div>
|
|
<div class="line"><a id="l09238" name="l09238"></a><span class="lineno"> 9238</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09239" name="l09239"></a><span class="lineno"> 9239</span> ColourImpl( IStream* stream ): m_stream( stream ) {}</div>
|
|
<div class="line"><a id="l09240" name="l09240"></a><span class="lineno"> 9240</span></div>
|
|
<div class="line"><a id="l09243" name="l09243"></a><span class="lineno"> 9243</span> <span class="keyword">class </span>ColourGuard {</div>
|
|
<div class="line"><a id="l09244" name="l09244"></a><span class="lineno"> 9244</span> ColourImpl <span class="keyword">const</span>* m_colourImpl;</div>
|
|
<div class="line"><a id="l09245" name="l09245"></a><span class="lineno"> 9245</span> Colour::Code m_code;</div>
|
|
<div class="line"><a id="l09246" name="l09246"></a><span class="lineno"> 9246</span> <span class="keywordtype">bool</span> m_engaged = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l09247" name="l09247"></a><span class="lineno"> 9247</span> </div>
|
|
<div class="line"><a id="l09248" name="l09248"></a><span class="lineno"> 9248</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09250" name="l09250"></a><span class="lineno"> 9250</span> ColourGuard( Colour::Code code,</div>
|
|
<div class="line"><a id="l09251" name="l09251"></a><span class="lineno"> 9251</span> ColourImpl <span class="keyword">const</span>* colour );</div>
|
|
<div class="line"><a id="l09252" name="l09252"></a><span class="lineno"> 9252</span> </div>
|
|
<div class="line"><a id="l09253" name="l09253"></a><span class="lineno"> 9253</span> ColourGuard( ColourGuard <span class="keyword">const</span>& rhs ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l09254" name="l09254"></a><span class="lineno"> 9254</span> ColourGuard& operator=( ColourGuard <span class="keyword">const</span>& rhs ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l09255" name="l09255"></a><span class="lineno"> 9255</span> </div>
|
|
<div class="line"><a id="l09256" name="l09256"></a><span class="lineno"> 9256</span> ColourGuard( ColourGuard&& rhs ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l09257" name="l09257"></a><span class="lineno"> 9257</span> ColourGuard& operator=( ColourGuard&& rhs ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l09258" name="l09258"></a><span class="lineno"> 9258</span></div>
|
|
<div class="line"><a id="l09260" name="l09260"></a><span class="lineno"> 9260</span> ~ColourGuard();</div>
|
|
<div class="line"><a id="l09261" name="l09261"></a><span class="lineno"> 9261</span></div>
|
|
<div class="line"><a id="l09267" name="l09267"></a><span class="lineno"> 9267</span> ColourGuard& engage( std::ostream& stream ) &;</div>
|
|
<div class="line"><a id="l09273" name="l09273"></a><span class="lineno"> 9273</span> ColourGuard&& engage( std::ostream& stream ) &&;</div>
|
|
<div class="line"><a id="l09274" name="l09274"></a><span class="lineno"> 9274</span> </div>
|
|
<div class="line"><a id="l09275" name="l09275"></a><span class="lineno"> 9275</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l09277" name="l09277"></a><span class="lineno"> 9277</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>( std::ostream& lhs,</div>
|
|
<div class="line"><a id="l09278" name="l09278"></a><span class="lineno"> 9278</span> ColourGuard& guard ) {</div>
|
|
<div class="line"><a id="l09279" name="l09279"></a><span class="lineno"> 9279</span> guard.engageImpl( lhs );</div>
|
|
<div class="line"><a id="l09280" name="l09280"></a><span class="lineno"> 9280</span> <span class="keywordflow">return</span> lhs;</div>
|
|
<div class="line"><a id="l09281" name="l09281"></a><span class="lineno"> 9281</span> }</div>
|
|
<div class="line"><a id="l09283" name="l09283"></a><span class="lineno"> 9283</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>( std::ostream& lhs,</div>
|
|
<div class="line"><a id="l09284" name="l09284"></a><span class="lineno"> 9284</span> ColourGuard&& guard) {</div>
|
|
<div class="line"><a id="l09285" name="l09285"></a><span class="lineno"> 9285</span> guard.engageImpl( lhs );</div>
|
|
<div class="line"><a id="l09286" name="l09286"></a><span class="lineno"> 9286</span> <span class="keywordflow">return</span> lhs;</div>
|
|
<div class="line"><a id="l09287" name="l09287"></a><span class="lineno"> 9287</span> }</div>
|
|
<div class="line"><a id="l09288" name="l09288"></a><span class="lineno"> 9288</span> </div>
|
|
<div class="line"><a id="l09289" name="l09289"></a><span class="lineno"> 9289</span> <span class="keywordtype">void</span> engageImpl( std::ostream& stream );</div>
|
|
<div class="line"><a id="l09290" name="l09290"></a><span class="lineno"> 9290</span> </div>
|
|
<div class="line"><a id="l09291" name="l09291"></a><span class="lineno"> 9291</span> };</div>
|
|
<div class="line"><a id="l09292" name="l09292"></a><span class="lineno"> 9292</span> </div>
|
|
<div class="line"><a id="l09293" name="l09293"></a><span class="lineno"> 9293</span> <span class="keyword">virtual</span> ~ColourImpl(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09300" name="l09300"></a><span class="lineno"> 9300</span> ColourGuard guardColour( Colour::Code colourCode );</div>
|
|
<div class="line"><a id="l09301" name="l09301"></a><span class="lineno"> 9301</span> </div>
|
|
<div class="line"><a id="l09302" name="l09302"></a><span class="lineno"> 9302</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l09303" name="l09303"></a><span class="lineno"> 9303</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> use( Colour::Code colourCode ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l09304" name="l09304"></a><span class="lineno"> 9304</span> };</div>
|
|
<div class="line"><a id="l09305" name="l09305"></a><span class="lineno"> 9305</span></div>
|
|
<div class="line"><a id="l09307" name="l09307"></a><span class="lineno"> 9307</span> Detail::unique_ptr<ColourImpl> <a class="code hl_function" href="namespaceCatch.html#a66d288723373b192f025a2f4ed2f3f11">makeColourImpl</a>( ColourMode colourSelection,</div>
|
|
<div class="line"><a id="l09308" name="l09308"></a><span class="lineno"> 9308</span> IStream* stream );</div>
|
|
<div class="line"><a id="l09309" name="l09309"></a><span class="lineno"> 9309</span></div>
|
|
<div class="line"><a id="l09311" name="l09311"></a><span class="lineno"> 9311</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a76a7aa70b229be45ef1eec1d5ca8d87c">isColourImplAvailable</a>( ColourMode colourSelection );</div>
|
|
<div class="line"><a id="l09312" name="l09312"></a><span class="lineno"> 9312</span> </div>
|
|
<div class="line"><a id="l09313" name="l09313"></a><span class="lineno"> 9313</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l09314" name="l09314"></a><span class="lineno"> 9314</span> </div>
|
|
<div class="line"><a id="l09315" name="l09315"></a><span class="lineno"> 9315</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONSOLE_COLOUR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09316" name="l09316"></a><span class="lineno"> 9316</span> </div>
|
|
<div class="line"><a id="l09317" name="l09317"></a><span class="lineno"> 9317</span> </div>
|
|
<div class="line"><a id="l09318" name="l09318"></a><span class="lineno"> 9318</span><span class="preprocessor">#ifndef CATCH_CONSOLE_WIDTH_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09319" name="l09319"></a><span class="lineno"> 9319</span><span class="preprocessor">#define CATCH_CONSOLE_WIDTH_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09320" name="l09320"></a><span class="lineno"> 9320</span> </div>
|
|
<div class="line"><a id="l09321" name="l09321"></a><span class="lineno"> 9321</span><span class="comment">// This include must be kept so that user's configured value for CONSOLE_WIDTH</span></div>
|
|
<div class="line"><a id="l09322" name="l09322"></a><span class="lineno"> 9322</span><span class="comment">// is used before we attempt to provide a default value</span></div>
|
|
<div class="line"><a id="l09323" name="l09323"></a><span class="lineno"> 9323</span> </div>
|
|
<div class="line"><a id="l09324" name="l09324"></a><span class="lineno"> 9324</span><span class="preprocessor">#ifndef CATCH_CONFIG_CONSOLE_WIDTH</span></div>
|
|
<div class="line"><a id="l09325" name="l09325"></a><span class="lineno"> 9325</span><span class="preprocessor">#define CATCH_CONFIG_CONSOLE_WIDTH 80</span></div>
|
|
<div class="line"><a id="l09326" name="l09326"></a><span class="lineno"> 9326</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09327" name="l09327"></a><span class="lineno"> 9327</span> </div>
|
|
<div class="line"><a id="l09328" name="l09328"></a><span class="lineno"> 9328</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONSOLE_WIDTH_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09329" name="l09329"></a><span class="lineno"> 9329</span> </div>
|
|
<div class="line"><a id="l09330" name="l09330"></a><span class="lineno"> 9330</span> </div>
|
|
<div class="line"><a id="l09331" name="l09331"></a><span class="lineno"> 9331</span><span class="preprocessor">#ifndef CATCH_CONTAINER_NONMEMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09332" name="l09332"></a><span class="lineno"> 9332</span><span class="preprocessor">#define CATCH_CONTAINER_NONMEMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09333" name="l09333"></a><span class="lineno"> 9333</span> </div>
|
|
<div class="line"><a id="l09334" name="l09334"></a><span class="lineno"> 9334</span> </div>
|
|
<div class="line"><a id="l09335" name="l09335"></a><span class="lineno"> 9335</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l09336" name="l09336"></a><span class="lineno"> 9336</span><span class="preprocessor">#include <initializer_list></span></div>
|
|
<div class="line"><a id="l09337" name="l09337"></a><span class="lineno"> 9337</span> </div>
|
|
<div class="line"><a id="l09338" name="l09338"></a><span class="lineno"> 9338</span><span class="comment">// We want a simple polyfill over `std::empty`, `std::size` and so on</span></div>
|
|
<div class="line"><a id="l09339" name="l09339"></a><span class="lineno"> 9339</span><span class="comment">// for C++14 or C++ libraries with incomplete support.</span></div>
|
|
<div class="line"><a id="l09340" name="l09340"></a><span class="lineno"> 9340</span><span class="comment">// We also have to handle that MSVC std lib will happily provide these</span></div>
|
|
<div class="line"><a id="l09341" name="l09341"></a><span class="lineno"> 9341</span><span class="comment">// under older standards.</span></div>
|
|
<div class="line"><a id="l09342" name="l09342"></a><span class="lineno"> 9342</span><span class="preprocessor">#if defined(CATCH_CPP17_OR_GREATER) || defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l09343" name="l09343"></a><span class="lineno"> 9343</span> </div>
|
|
<div class="line"><a id="l09344" name="l09344"></a><span class="lineno"> 9344</span><span class="comment">// We are already using this header either way, so there shouldn't</span></div>
|
|
<div class="line"><a id="l09345" name="l09345"></a><span class="lineno"> 9345</span><span class="comment">// be much additional overhead in including it to get the feature</span></div>
|
|
<div class="line"><a id="l09346" name="l09346"></a><span class="lineno"> 9346</span><span class="comment">// test macros</span></div>
|
|
<div class="line"><a id="l09347" name="l09347"></a><span class="lineno"> 9347</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09348" name="l09348"></a><span class="lineno"> 9348</span> </div>
|
|
<div class="line"><a id="l09349" name="l09349"></a><span class="lineno"> 9349</span><span class="preprocessor"># if !defined(__cpp_lib_nonmember_container_access)</span></div>
|
|
<div class="line"><a id="l09350" name="l09350"></a><span class="lineno"> 9350</span><span class="preprocessor"># define CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS</span></div>
|
|
<div class="line"><a id="l09351" name="l09351"></a><span class="lineno"> 9351</span><span class="preprocessor"># endif</span></div>
|
|
<div class="line"><a id="l09352" name="l09352"></a><span class="lineno"> 9352</span> </div>
|
|
<div class="line"><a id="l09353" name="l09353"></a><span class="lineno"> 9353</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l09354" name="l09354"></a><span class="lineno"> 9354</span><span class="preprocessor">#define CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS</span></div>
|
|
<div class="line"><a id="l09355" name="l09355"></a><span class="lineno"> 9355</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09356" name="l09356"></a><span class="lineno"> 9356</span> </div>
|
|
<div class="line"><a id="l09357" name="l09357"></a><span class="lineno"> 9357</span> </div>
|
|
<div class="line"><a id="l09358" name="l09358"></a><span class="lineno"> 9358</span> </div>
|
|
<div class="line"><a id="l09359" name="l09359"></a><span class="lineno"> 9359</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09360" name="l09360"></a><span class="lineno"> 9360</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09361" name="l09361"></a><span class="lineno"> 9361</span> </div>
|
|
<div class="line"><a id="l09362" name="l09362"></a><span class="lineno"> 9362</span><span class="preprocessor">#if defined(CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS)</span></div>
|
|
<div class="line"><a id="l09363" name="l09363"></a><span class="lineno"> 9363</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Container></div>
|
|
<div class="line"><a id="l09364" name="l09364"></a><span class="lineno"> 9364</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> empty(Container <span class="keyword">const</span>& cont) -> <span class="keyword">decltype</span>(cont.empty()) {</div>
|
|
<div class="line"><a id="l09365" name="l09365"></a><span class="lineno"> 9365</span> <span class="keywordflow">return</span> cont.empty();</div>
|
|
<div class="line"><a id="l09366" name="l09366"></a><span class="lineno"> 9366</span> }</div>
|
|
<div class="line"><a id="l09367" name="l09367"></a><span class="lineno"> 9367</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N></div>
|
|
<div class="line"><a id="l09368" name="l09368"></a><span class="lineno"> 9368</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> empty(<span class="keyword">const</span> T (&)[N]) <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l09369" name="l09369"></a><span class="lineno"> 9369</span> <span class="comment">// GCC < 7 does not support the const T(&)[] parameter syntax</span></div>
|
|
<div class="line"><a id="l09370" name="l09370"></a><span class="lineno"> 9370</span> <span class="comment">// so we have to ignore the length explicitly</span></div>
|
|
<div class="line"><a id="l09371" name="l09371"></a><span class="lineno"> 9371</span> (void)N;</div>
|
|
<div class="line"><a id="l09372" name="l09372"></a><span class="lineno"> 9372</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l09373" name="l09373"></a><span class="lineno"> 9373</span> }</div>
|
|
<div class="line"><a id="l09374" name="l09374"></a><span class="lineno"> 9374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l09375" name="l09375"></a><span class="lineno"> 9375</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> empty(std::initializer_list<T> list) <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l09376" name="l09376"></a><span class="lineno"> 9376</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch.html#a11c40de0d3593160a350d9e4323311b2">list</a>.size() > 0;</div>
|
|
<div class="line"><a id="l09377" name="l09377"></a><span class="lineno"> 9377</span> }</div>
|
|
<div class="line"><a id="l09378" name="l09378"></a><span class="lineno"> 9378</span> </div>
|
|
<div class="line"><a id="l09379" name="l09379"></a><span class="lineno"> 9379</span> </div>
|
|
<div class="line"><a id="l09380" name="l09380"></a><span class="lineno"> 9380</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Container></div>
|
|
<div class="line"><a id="l09381" name="l09381"></a><span class="lineno"> 9381</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> size(Container <span class="keyword">const</span>& cont) -> <span class="keyword">decltype</span>(cont.size()) {</div>
|
|
<div class="line"><a id="l09382" name="l09382"></a><span class="lineno"> 9382</span> <span class="keywordflow">return</span> cont.size();</div>
|
|
<div class="line"><a id="l09383" name="l09383"></a><span class="lineno"> 9383</span> }</div>
|
|
<div class="line"><a id="l09384" name="l09384"></a><span class="lineno"> 9384</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N></div>
|
|
<div class="line"><a id="l09385" name="l09385"></a><span class="lineno"> 9385</span> <span class="keyword">constexpr</span> std::size_t size(<span class="keyword">const</span> T(&)[N]) <span class="keyword">noexcept</span> {</div>
|
|
<div class="line"><a id="l09386" name="l09386"></a><span class="lineno"> 9386</span> <span class="keywordflow">return</span> N;</div>
|
|
<div class="line"><a id="l09387" name="l09387"></a><span class="lineno"> 9387</span> }</div>
|
|
<div class="line"><a id="l09388" name="l09388"></a><span class="lineno"> 9388</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS</span></div>
|
|
<div class="line"><a id="l09389" name="l09389"></a><span class="lineno"> 9389</span> </div>
|
|
<div class="line"><a id="l09390" name="l09390"></a><span class="lineno"> 9390</span>} <span class="comment">// end namespace Detail</span></div>
|
|
<div class="line"><a id="l09391" name="l09391"></a><span class="lineno"> 9391</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l09392" name="l09392"></a><span class="lineno"> 9392</span> </div>
|
|
<div class="line"><a id="l09393" name="l09393"></a><span class="lineno"> 9393</span> </div>
|
|
<div class="line"><a id="l09394" name="l09394"></a><span class="lineno"> 9394</span> </div>
|
|
<div class="line"><a id="l09395" name="l09395"></a><span class="lineno"> 9395</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONTAINER_NONMEMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09396" name="l09396"></a><span class="lineno"> 9396</span> </div>
|
|
<div class="line"><a id="l09397" name="l09397"></a><span class="lineno"> 9397</span> </div>
|
|
<div class="line"><a id="l09398" name="l09398"></a><span class="lineno"> 9398</span><span class="preprocessor">#ifndef CATCH_DEBUG_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09399" name="l09399"></a><span class="lineno"> 9399</span><span class="preprocessor">#define CATCH_DEBUG_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09400" name="l09400"></a><span class="lineno"> 9400</span> </div>
|
|
<div class="line"><a id="l09401" name="l09401"></a><span class="lineno"> 9401</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09402" name="l09402"></a><span class="lineno"> 9402</span> </div>
|
|
<div class="line"><a id="l09403" name="l09403"></a><span class="lineno"> 9403</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09404" name="l09404"></a><span class="lineno"> 9404</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#aa5dcf4750ce9a854f4b74d3c952d13cc">writeToDebugConsole</a>( std::string <span class="keyword">const</span>& text );</div>
|
|
<div class="line"><a id="l09405" name="l09405"></a><span class="lineno"> 9405</span>}</div>
|
|
<div class="line"><a id="l09406" name="l09406"></a><span class="lineno"> 9406</span> </div>
|
|
<div class="line"><a id="l09407" name="l09407"></a><span class="lineno"> 9407</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_DEBUG_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09408" name="l09408"></a><span class="lineno"> 9408</span> </div>
|
|
<div class="line"><a id="l09409" name="l09409"></a><span class="lineno"> 9409</span> </div>
|
|
<div class="line"><a id="l09410" name="l09410"></a><span class="lineno"> 9410</span><span class="preprocessor">#ifndef CATCH_DEBUGGER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09411" name="l09411"></a><span class="lineno"> 9411</span><span class="preprocessor">#define CATCH_DEBUGGER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09412" name="l09412"></a><span class="lineno"> 9412</span> </div>
|
|
<div class="line"><a id="l09413" name="l09413"></a><span class="lineno"> 9413</span> </div>
|
|
<div class="line"><a id="l09414" name="l09414"></a><span class="lineno"> 9414</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09415" name="l09415"></a><span class="lineno"> 9415</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ab079497368fb1df25af39ad494d2a241">isDebuggerActive</a>();</div>
|
|
<div class="line"><a id="l09416" name="l09416"></a><span class="lineno"> 9416</span>}</div>
|
|
<div class="line"><a id="l09417" name="l09417"></a><span class="lineno"> 9417</span> </div>
|
|
<div class="line"><a id="l09418" name="l09418"></a><span class="lineno"> 9418</span><span class="preprocessor">#ifdef CATCH_PLATFORM_MAC</span></div>
|
|
<div class="line"><a id="l09419" name="l09419"></a><span class="lineno"> 9419</span> </div>
|
|
<div class="line"><a id="l09420" name="l09420"></a><span class="lineno"> 9420</span><span class="preprocessor"> #if defined(__i386__) || defined(__x86_64__)</span></div>
|
|
<div class="line"><a id="l09421" name="l09421"></a><span class="lineno"> 9421</span><span class="preprocessor"> #define CATCH_TRAP() __asm__("int $3\n" : : ) </span><span class="comment">/* NOLINT */</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l09422" name="l09422"></a><span class="lineno"> 9422</span><span class="preprocessor"> #elif defined(__aarch64__)</span></div>
|
|
<div class="line"><a id="l09423" name="l09423"></a><span class="lineno"> 9423</span><span class="preprocessor"> #define CATCH_TRAP() __asm__(".inst 0xd43e0000")</span></div>
|
|
<div class="line"><a id="l09424" name="l09424"></a><span class="lineno"> 9424</span><span class="preprocessor"> #elif defined(__POWERPC__)</span></div>
|
|
<div class="line"><a id="l09425" name="l09425"></a><span class="lineno"> 9425</span><span class="preprocessor"> #define CATCH_TRAP() __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \</span></div>
|
|
<div class="line"><a id="l09426" name="l09426"></a><span class="lineno"> 9426</span><span class="preprocessor"> : : : "memory","r0","r3","r4" ) </span><span class="comment">/* NOLINT */</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l09427" name="l09427"></a><span class="lineno"> 9427</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l09428" name="l09428"></a><span class="lineno"> 9428</span> </div>
|
|
<div class="line"><a id="l09429" name="l09429"></a><span class="lineno"> 9429</span><span class="preprocessor">#elif defined(CATCH_PLATFORM_IPHONE)</span></div>
|
|
<div class="line"><a id="l09430" name="l09430"></a><span class="lineno"> 9430</span> </div>
|
|
<div class="line"><a id="l09431" name="l09431"></a><span class="lineno"> 9431</span> <span class="comment">// use inline assembler</span></div>
|
|
<div class="line"><a id="l09432" name="l09432"></a><span class="lineno"> 9432</span><span class="preprocessor"> #if defined(__i386__) || defined(__x86_64__)</span></div>
|
|
<div class="line"><a id="l09433" name="l09433"></a><span class="lineno"> 9433</span><span class="preprocessor"> #define CATCH_TRAP() __asm__("int $3")</span></div>
|
|
<div class="line"><a id="l09434" name="l09434"></a><span class="lineno"> 9434</span><span class="preprocessor"> #elif defined(__aarch64__)</span></div>
|
|
<div class="line"><a id="l09435" name="l09435"></a><span class="lineno"> 9435</span><span class="preprocessor"> #define CATCH_TRAP() __asm__(".inst 0xd4200000")</span></div>
|
|
<div class="line"><a id="l09436" name="l09436"></a><span class="lineno"> 9436</span><span class="preprocessor"> #elif defined(__arm__) && !defined(__thumb__)</span></div>
|
|
<div class="line"><a id="l09437" name="l09437"></a><span class="lineno"> 9437</span><span class="preprocessor"> #define CATCH_TRAP() __asm__(".inst 0xe7f001f0")</span></div>
|
|
<div class="line"><a id="l09438" name="l09438"></a><span class="lineno"> 9438</span><span class="preprocessor"> #elif defined(__arm__) && defined(__thumb__)</span></div>
|
|
<div class="line"><a id="l09439" name="l09439"></a><span class="lineno"> 9439</span><span class="preprocessor"> #define CATCH_TRAP() __asm__(".inst 0xde01")</span></div>
|
|
<div class="line"><a id="l09440" name="l09440"></a><span class="lineno"> 9440</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l09441" name="l09441"></a><span class="lineno"> 9441</span> </div>
|
|
<div class="line"><a id="l09442" name="l09442"></a><span class="lineno"> 9442</span><span class="preprocessor">#elif defined(CATCH_PLATFORM_LINUX)</span></div>
|
|
<div class="line"><a id="l09443" name="l09443"></a><span class="lineno"> 9443</span> <span class="comment">// If we can use inline assembler, do it because this allows us to break</span></div>
|
|
<div class="line"><a id="l09444" name="l09444"></a><span class="lineno"> 9444</span> <span class="comment">// directly at the location of the failing check instead of breaking inside</span></div>
|
|
<div class="line"><a id="l09445" name="l09445"></a><span class="lineno"> 9445</span> <span class="comment">// raise() called from it, i.e. one stack frame below.</span></div>
|
|
<div class="line"><a id="l09446" name="l09446"></a><span class="lineno"> 9446</span><span class="preprocessor"> #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))</span></div>
|
|
<div class="line"><a id="l09447" name="l09447"></a><span class="lineno"> 9447</span><span class="preprocessor"> #define CATCH_TRAP() asm volatile ("int $3") </span><span class="comment">/* NOLINT */</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l09448" name="l09448"></a><span class="lineno"> 9448</span><span class="preprocessor"> #else </span><span class="comment">// Fall back to the generic way.</span></div>
|
|
<div class="line"><a id="l09449" name="l09449"></a><span class="lineno"> 9449</span><span class="preprocessor"> #include <signal.h></span></div>
|
|
<div class="line"><a id="l09450" name="l09450"></a><span class="lineno"> 9450</span> </div>
|
|
<div class="line"><a id="l09451" name="l09451"></a><span class="lineno"> 9451</span><span class="preprocessor"> #define CATCH_TRAP() raise(SIGTRAP)</span></div>
|
|
<div class="line"><a id="l09452" name="l09452"></a><span class="lineno"> 9452</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l09453" name="l09453"></a><span class="lineno"> 9453</span><span class="preprocessor">#elif defined(_MSC_VER)</span></div>
|
|
<div class="line"><a id="l09454" name="l09454"></a><span class="lineno"> 9454</span><span class="preprocessor"> #define CATCH_TRAP() __debugbreak()</span></div>
|
|
<div class="line"><a id="l09455" name="l09455"></a><span class="lineno"> 9455</span><span class="preprocessor">#elif defined(__MINGW32__)</span></div>
|
|
<div class="line"><a id="l09456" name="l09456"></a><span class="lineno"> 9456</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> __declspec(dllimport) <span class="keywordtype">void</span> __stdcall DebugBreak();</div>
|
|
<div class="line"><a id="l09457" name="l09457"></a><span class="lineno"> 9457</span><span class="preprocessor"> #define CATCH_TRAP() DebugBreak()</span></div>
|
|
<div class="line"><a id="l09458" name="l09458"></a><span class="lineno"> 9458</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09459" name="l09459"></a><span class="lineno"> 9459</span> </div>
|
|
<div class="line"><a id="l09460" name="l09460"></a><span class="lineno"> 9460</span><span class="preprocessor">#ifndef CATCH_BREAK_INTO_DEBUGGER</span></div>
|
|
<div class="line"><a id="l09461" name="l09461"></a><span class="lineno"> 9461</span><span class="preprocessor"> #ifdef CATCH_TRAP</span></div>
|
|
<div class="line"><a id="l09462" name="l09462"></a><span class="lineno"> 9462</span><span class="preprocessor"> #define CATCH_BREAK_INTO_DEBUGGER() []{ if( Catch::isDebuggerActive() ) { CATCH_TRAP(); } }()</span></div>
|
|
<div class="line"><a id="l09463" name="l09463"></a><span class="lineno"> 9463</span><span class="preprocessor"> #else</span></div>
|
|
<div class="line"><a id="l09464" name="l09464"></a><span class="lineno"> 9464</span><span class="preprocessor"> #define CATCH_BREAK_INTO_DEBUGGER() []{}()</span></div>
|
|
<div class="line"><a id="l09465" name="l09465"></a><span class="lineno"> 9465</span><span class="preprocessor"> #endif</span></div>
|
|
<div class="line"><a id="l09466" name="l09466"></a><span class="lineno"> 9466</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09467" name="l09467"></a><span class="lineno"> 9467</span> </div>
|
|
<div class="line"><a id="l09468" name="l09468"></a><span class="lineno"> 9468</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_DEBUGGER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09469" name="l09469"></a><span class="lineno"> 9469</span> </div>
|
|
<div class="line"><a id="l09470" name="l09470"></a><span class="lineno"> 9470</span> </div>
|
|
<div class="line"><a id="l09471" name="l09471"></a><span class="lineno"> 9471</span><span class="preprocessor">#ifndef CATCH_ENFORCE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09472" name="l09472"></a><span class="lineno"> 9472</span><span class="preprocessor">#define CATCH_ENFORCE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09473" name="l09473"></a><span class="lineno"> 9473</span> </div>
|
|
<div class="line"><a id="l09474" name="l09474"></a><span class="lineno"> 9474</span> </div>
|
|
<div class="line"><a id="l09475" name="l09475"></a><span class="lineno"> 9475</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l09476" name="l09476"></a><span class="lineno"> 9476</span> </div>
|
|
<div class="line"><a id="l09477" name="l09477"></a><span class="lineno"> 9477</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09478" name="l09478"></a><span class="lineno"> 9478</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l09479" name="l09479"></a><span class="lineno"> 9479</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Ex></div>
|
|
<div class="line"><a id="l09480" name="l09480"></a><span class="lineno"> 9480</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l09481" name="l09481"></a><span class="lineno"> 9481</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a3cbceeab9252d1b752f66a2826e92548">throw_exception</a>(Ex <span class="keyword">const</span>& e) {</div>
|
|
<div class="line"><a id="l09482" name="l09482"></a><span class="lineno"> 9482</span> <span class="keywordflow">throw</span> e;</div>
|
|
<div class="line"><a id="l09483" name="l09483"></a><span class="lineno"> 9483</span> }</div>
|
|
<div class="line"><a id="l09484" name="l09484"></a><span class="lineno"> 9484</span><span class="preprocessor">#else </span><span class="comment">// ^^ Exceptions are enabled // Exceptions are disabled vv</span></div>
|
|
<div class="line"><a id="l09485" name="l09485"></a><span class="lineno"> 9485</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l09486" name="l09486"></a><span class="lineno"> 9486</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a3cbceeab9252d1b752f66a2826e92548">throw_exception</a>(std::exception <span class="keyword">const</span>& e);</div>
|
|
<div class="line"><a id="l09487" name="l09487"></a><span class="lineno"> 9487</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09488" name="l09488"></a><span class="lineno"> 9488</span> </div>
|
|
<div class="line"><a id="l09489" name="l09489"></a><span class="lineno"> 9489</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l09490" name="l09490"></a><span class="lineno"> 9490</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a707884e681203fef6bf7dbf752532fa5">throw_logic_error</a>(std::string <span class="keyword">const</span>& msg);</div>
|
|
<div class="line"><a id="l09491" name="l09491"></a><span class="lineno"> 9491</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l09492" name="l09492"></a><span class="lineno"> 9492</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#ae67297c3e265b0fcd55de371bf408e4e">throw_domain_error</a>(std::string <span class="keyword">const</span>& msg);</div>
|
|
<div class="line"><a id="l09493" name="l09493"></a><span class="lineno"> 9493</span> [[noreturn]]</div>
|
|
<div class="line"><a id="l09494" name="l09494"></a><span class="lineno"> 9494</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a48d2c35022dd9d56a1b7ee78ad581eea">throw_runtime_error</a>(std::string <span class="keyword">const</span>& msg);</div>
|
|
<div class="line"><a id="l09495" name="l09495"></a><span class="lineno"> 9495</span> </div>
|
|
<div class="line"><a id="l09496" name="l09496"></a><span class="lineno"> 9496</span>} <span class="comment">// namespace Catch;</span></div>
|
|
<div class="line"><a id="l09497" name="l09497"></a><span class="lineno"> 9497</span> </div>
|
|
<div class="line"><a id="l09498" name="l09498"></a><span class="lineno"> 9498</span><span class="preprocessor">#define CATCH_MAKE_MSG(...) \</span></div>
|
|
<div class="line"><a id="l09499" name="l09499"></a><span class="lineno"> 9499</span><span class="preprocessor"> (Catch::ReusableStringStream() << __VA_ARGS__).str()</span></div>
|
|
<div class="line"><a id="l09500" name="l09500"></a><span class="lineno"> 9500</span> </div>
|
|
<div class="line"><a id="l09501" name="l09501"></a><span class="lineno"> 9501</span><span class="preprocessor">#define CATCH_INTERNAL_ERROR(...) \</span></div>
|
|
<div class="line"><a id="l09502" name="l09502"></a><span class="lineno"> 9502</span><span class="preprocessor"> Catch::throw_logic_error(CATCH_MAKE_MSG( CATCH_INTERNAL_LINEINFO << ": Internal Catch2 error: " << __VA_ARGS__))</span></div>
|
|
<div class="line"><a id="l09503" name="l09503"></a><span class="lineno"> 9503</span> </div>
|
|
<div class="line"><a id="l09504" name="l09504"></a><span class="lineno"> 9504</span><span class="preprocessor">#define CATCH_ERROR(...) \</span></div>
|
|
<div class="line"><a id="l09505" name="l09505"></a><span class="lineno"> 9505</span><span class="preprocessor"> Catch::throw_domain_error(CATCH_MAKE_MSG( __VA_ARGS__ ))</span></div>
|
|
<div class="line"><a id="l09506" name="l09506"></a><span class="lineno"> 9506</span> </div>
|
|
<div class="line"><a id="l09507" name="l09507"></a><span class="lineno"> 9507</span><span class="preprocessor">#define CATCH_RUNTIME_ERROR(...) \</span></div>
|
|
<div class="line"><a id="l09508" name="l09508"></a><span class="lineno"> 9508</span><span class="preprocessor"> Catch::throw_runtime_error(CATCH_MAKE_MSG( __VA_ARGS__ ))</span></div>
|
|
<div class="line"><a id="l09509" name="l09509"></a><span class="lineno"> 9509</span> </div>
|
|
<div class="line"><a id="l09510" name="l09510"></a><span class="lineno"> 9510</span><span class="preprocessor">#define CATCH_ENFORCE( condition, ... ) \</span></div>
|
|
<div class="line"><a id="l09511" name="l09511"></a><span class="lineno"> 9511</span><span class="preprocessor"> do{ if( !(condition) ) CATCH_ERROR( __VA_ARGS__ ); } while(false)</span></div>
|
|
<div class="line"><a id="l09512" name="l09512"></a><span class="lineno"> 9512</span> </div>
|
|
<div class="line"><a id="l09513" name="l09513"></a><span class="lineno"> 9513</span> </div>
|
|
<div class="line"><a id="l09514" name="l09514"></a><span class="lineno"> 9514</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ENFORCE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09515" name="l09515"></a><span class="lineno"> 9515</span> </div>
|
|
<div class="line"><a id="l09516" name="l09516"></a><span class="lineno"> 9516</span> </div>
|
|
<div class="line"><a id="l09517" name="l09517"></a><span class="lineno"> 9517</span><span class="preprocessor">#ifndef CATCH_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09518" name="l09518"></a><span class="lineno"> 9518</span><span class="preprocessor">#define CATCH_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09519" name="l09519"></a><span class="lineno"> 9519</span> </div>
|
|
<div class="line"><a id="l09520" name="l09520"></a><span class="lineno"> 9520</span> </div>
|
|
<div class="line"><a id="l09521" name="l09521"></a><span class="lineno"> 9521</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l09522" name="l09522"></a><span class="lineno"> 9522</span> </div>
|
|
<div class="line"><a id="l09523" name="l09523"></a><span class="lineno"> 9523</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09524" name="l09524"></a><span class="lineno"> 9524</span> </div>
|
|
<div class="line"><a id="l09525" name="l09525"></a><span class="lineno"> 9525</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09526" name="l09526"></a><span class="lineno"> 9526</span> </div>
|
|
<div class="line"><a id="l09527" name="l09527"></a><span class="lineno"> 9527</span> Catch::Detail::unique_ptr<EnumInfo> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a4f0c01d00fa6af891eb82fcf9baaf95c">makeEnumInfo</a>( StringRef enumName, StringRef allValueNames, std::vector<int> <span class="keyword">const</span>& values );</div>
|
|
<div class="line"><a id="l09528" name="l09528"></a><span class="lineno"> 9528</span> </div>
|
|
<div class="line"><a id="l09529" name="l09529"></a><span class="lineno"> 9529</span> <span class="keyword">class </span>EnumValuesRegistry : <span class="keyword">public</span> IMutableEnumValuesRegistry {</div>
|
|
<div class="line"><a id="l09530" name="l09530"></a><span class="lineno"> 9530</span> </div>
|
|
<div class="line"><a id="l09531" name="l09531"></a><span class="lineno"> 9531</span> std::vector<Catch::Detail::unique_ptr<EnumInfo>> m_enumInfos;</div>
|
|
<div class="line"><a id="l09532" name="l09532"></a><span class="lineno"> 9532</span> </div>
|
|
<div class="line"><a id="l09533" name="l09533"></a><span class="lineno"> 9533</span> EnumInfo <span class="keyword">const</span>& registerEnum( StringRef enumName, StringRef allValueNames, std::vector<int> <span class="keyword">const</span>& values) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l09534" name="l09534"></a><span class="lineno"> 9534</span> };</div>
|
|
<div class="line"><a id="l09535" name="l09535"></a><span class="lineno"> 9535</span> </div>
|
|
<div class="line"><a id="l09536" name="l09536"></a><span class="lineno"> 9536</span> std::vector<StringRef> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a4e0e09e87f561af2d3a881b209a9a481">parseEnums</a>( StringRef enums );</div>
|
|
<div class="line"><a id="l09537" name="l09537"></a><span class="lineno"> 9537</span> </div>
|
|
<div class="line"><a id="l09538" name="l09538"></a><span class="lineno"> 9538</span> } <span class="comment">// Detail</span></div>
|
|
<div class="line"><a id="l09539" name="l09539"></a><span class="lineno"> 9539</span> </div>
|
|
<div class="line"><a id="l09540" name="l09540"></a><span class="lineno"> 9540</span>} <span class="comment">// Catch</span></div>
|
|
<div class="line"><a id="l09541" name="l09541"></a><span class="lineno"> 9541</span> </div>
|
|
<div class="line"><a id="l09542" name="l09542"></a><span class="lineno"> 9542</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ENUM_VALUES_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09543" name="l09543"></a><span class="lineno"> 9543</span> </div>
|
|
<div class="line"><a id="l09544" name="l09544"></a><span class="lineno"> 9544</span> </div>
|
|
<div class="line"><a id="l09545" name="l09545"></a><span class="lineno"> 9545</span><span class="preprocessor">#ifndef CATCH_ERRNO_GUARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09546" name="l09546"></a><span class="lineno"> 9546</span><span class="preprocessor">#define CATCH_ERRNO_GUARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09547" name="l09547"></a><span class="lineno"> 9547</span> </div>
|
|
<div class="line"><a id="l09548" name="l09548"></a><span class="lineno"> 9548</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09549" name="l09549"></a><span class="lineno"> 9549</span></div>
|
|
<div class="line"><a id="l09552" name="l09552"></a><span class="lineno"> 9552</span> <span class="keyword">class </span>ErrnoGuard {</div>
|
|
<div class="line"><a id="l09553" name="l09553"></a><span class="lineno"> 9553</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09554" name="l09554"></a><span class="lineno"> 9554</span> <span class="comment">// Keep these outlined to avoid dragging in macros from <cerrno></span></div>
|
|
<div class="line"><a id="l09555" name="l09555"></a><span class="lineno"> 9555</span> </div>
|
|
<div class="line"><a id="l09556" name="l09556"></a><span class="lineno"> 9556</span> ErrnoGuard();</div>
|
|
<div class="line"><a id="l09557" name="l09557"></a><span class="lineno"> 9557</span> ~ErrnoGuard();</div>
|
|
<div class="line"><a id="l09558" name="l09558"></a><span class="lineno"> 9558</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l09559" name="l09559"></a><span class="lineno"> 9559</span> <span class="keywordtype">int</span> m_oldErrno;</div>
|
|
<div class="line"><a id="l09560" name="l09560"></a><span class="lineno"> 9560</span> };</div>
|
|
<div class="line"><a id="l09561" name="l09561"></a><span class="lineno"> 9561</span> </div>
|
|
<div class="line"><a id="l09562" name="l09562"></a><span class="lineno"> 9562</span>}</div>
|
|
<div class="line"><a id="l09563" name="l09563"></a><span class="lineno"> 9563</span> </div>
|
|
<div class="line"><a id="l09564" name="l09564"></a><span class="lineno"> 9564</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ERRNO_GUARD_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09565" name="l09565"></a><span class="lineno"> 9565</span> </div>
|
|
<div class="line"><a id="l09566" name="l09566"></a><span class="lineno"> 9566</span> </div>
|
|
<div class="line"><a id="l09567" name="l09567"></a><span class="lineno"> 9567</span><span class="preprocessor">#ifndef CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09568" name="l09568"></a><span class="lineno"> 9568</span><span class="preprocessor">#define CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09569" name="l09569"></a><span class="lineno"> 9569</span> </div>
|
|
<div class="line"><a id="l09570" name="l09570"></a><span class="lineno"> 9570</span> </div>
|
|
<div class="line"><a id="l09571" name="l09571"></a><span class="lineno"> 9571</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l09572" name="l09572"></a><span class="lineno"> 9572</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09573" name="l09573"></a><span class="lineno"> 9573</span> </div>
|
|
<div class="line"><a id="l09574" name="l09574"></a><span class="lineno"> 9574</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09575" name="l09575"></a><span class="lineno"> 9575</span> </div>
|
|
<div class="line"><a id="l09576" name="l09576"></a><span class="lineno"> 9576</span> <span class="keyword">class </span>ExceptionTranslatorRegistry : <span class="keyword">public</span> IExceptionTranslatorRegistry {</div>
|
|
<div class="line"><a id="l09577" name="l09577"></a><span class="lineno"> 9577</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09578" name="l09578"></a><span class="lineno"> 9578</span> ~ExceptionTranslatorRegistry() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l09579" name="l09579"></a><span class="lineno"> 9579</span> <span class="keywordtype">void</span> registerTranslator( Detail::unique_ptr<IExceptionTranslator>&& translator );</div>
|
|
<div class="line"><a id="l09580" name="l09580"></a><span class="lineno"> 9580</span> std::string <a class="code hl_function" href="namespaceCatch.html#adafff91485eeeeb9e9333f317cc0e3b1">translateActiveException</a>() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l09581" name="l09581"></a><span class="lineno"> 9581</span> </div>
|
|
<div class="line"><a id="l09582" name="l09582"></a><span class="lineno"> 9582</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l09583" name="l09583"></a><span class="lineno"> 9583</span> <a class="code hl_typedef" href="namespaceCatch.html#acee06b896ed308ae49ab9d8c7769f5ee">ExceptionTranslators</a> m_translators;</div>
|
|
<div class="line"><a id="l09584" name="l09584"></a><span class="lineno"> 9584</span> };</div>
|
|
<div class="line"><a id="l09585" name="l09585"></a><span class="lineno"> 9585</span>}</div>
|
|
<div class="line"><a id="l09586" name="l09586"></a><span class="lineno"> 9586</span> </div>
|
|
<div class="line"><a id="l09587" name="l09587"></a><span class="lineno"> 9587</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09588" name="l09588"></a><span class="lineno"> 9588</span> </div>
|
|
<div class="line"><a id="l09589" name="l09589"></a><span class="lineno"> 9589</span> </div>
|
|
<div class="line"><a id="l09590" name="l09590"></a><span class="lineno"> 9590</span><span class="preprocessor">#ifndef CATCH_FATAL_CONDITION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09591" name="l09591"></a><span class="lineno"> 9591</span><span class="preprocessor">#define CATCH_FATAL_CONDITION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09592" name="l09592"></a><span class="lineno"> 9592</span> </div>
|
|
<div class="line"><a id="l09593" name="l09593"></a><span class="lineno"> 9593</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l09594" name="l09594"></a><span class="lineno"> 9594</span> </div>
|
|
<div class="line"><a id="l09595" name="l09595"></a><span class="lineno"> 9595</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09596" name="l09596"></a><span class="lineno"> 9596</span></div>
|
|
<div class="line"><a id="l09607" name="l09607"></a><span class="lineno"> 9607</span> <span class="keyword">class </span>FatalConditionHandler {</div>
|
|
<div class="line"><a id="l09608" name="l09608"></a><span class="lineno"> 9608</span> <span class="keywordtype">bool</span> m_started = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l09609" name="l09609"></a><span class="lineno"> 9609</span> </div>
|
|
<div class="line"><a id="l09610" name="l09610"></a><span class="lineno"> 9610</span> <span class="comment">// Install/disengage implementation for specific platform.</span></div>
|
|
<div class="line"><a id="l09611" name="l09611"></a><span class="lineno"> 9611</span> <span class="comment">// Should be if-defed to work on current platform, can assume</span></div>
|
|
<div class="line"><a id="l09612" name="l09612"></a><span class="lineno"> 9612</span> <span class="comment">// engage-disengage 1:1 pairing.</span></div>
|
|
<div class="line"><a id="l09613" name="l09613"></a><span class="lineno"> 9613</span> <span class="keywordtype">void</span> engage_platform();</div>
|
|
<div class="line"><a id="l09614" name="l09614"></a><span class="lineno"> 9614</span> <span class="keywordtype">void</span> disengage_platform() noexcept;</div>
|
|
<div class="line"><a id="l09615" name="l09615"></a><span class="lineno"> 9615</span> public:</div>
|
|
<div class="line"><a id="l09616" name="l09616"></a><span class="lineno"> 9616</span> <span class="comment">// Should also have platform-specific implementations as needed</span></div>
|
|
<div class="line"><a id="l09617" name="l09617"></a><span class="lineno"> 9617</span> FatalConditionHandler();</div>
|
|
<div class="line"><a id="l09618" name="l09618"></a><span class="lineno"> 9618</span> ~FatalConditionHandler();</div>
|
|
<div class="line"><a id="l09619" name="l09619"></a><span class="lineno"> 9619</span> </div>
|
|
<div class="line"><a id="l09620" name="l09620"></a><span class="lineno"> 9620</span> <span class="keywordtype">void</span> engage() {</div>
|
|
<div class="line"><a id="l09621" name="l09621"></a><span class="lineno"> 9621</span> assert(!m_started && <span class="stringliteral">"Handler cannot be installed twice."</span>);</div>
|
|
<div class="line"><a id="l09622" name="l09622"></a><span class="lineno"> 9622</span> m_started = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l09623" name="l09623"></a><span class="lineno"> 9623</span> engage_platform();</div>
|
|
<div class="line"><a id="l09624" name="l09624"></a><span class="lineno"> 9624</span> }</div>
|
|
<div class="line"><a id="l09625" name="l09625"></a><span class="lineno"> 9625</span> </div>
|
|
<div class="line"><a id="l09626" name="l09626"></a><span class="lineno"> 9626</span> <span class="keywordtype">void</span> disengage() noexcept {</div>
|
|
<div class="line"><a id="l09627" name="l09627"></a><span class="lineno"> 9627</span> assert(m_started && <span class="stringliteral">"Handler cannot be uninstalled without being installed first"</span>);</div>
|
|
<div class="line"><a id="l09628" name="l09628"></a><span class="lineno"> 9628</span> m_started = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l09629" name="l09629"></a><span class="lineno"> 9629</span> disengage_platform();</div>
|
|
<div class="line"><a id="l09630" name="l09630"></a><span class="lineno"> 9630</span> }</div>
|
|
<div class="line"><a id="l09631" name="l09631"></a><span class="lineno"> 9631</span> };</div>
|
|
<div class="line"><a id="l09632" name="l09632"></a><span class="lineno"> 9632</span></div>
|
|
<div class="line"><a id="l09634" name="l09634"></a><span class="lineno"> 9634</span> <span class="keyword">class </span>FatalConditionHandlerGuard {</div>
|
|
<div class="line"><a id="l09635" name="l09635"></a><span class="lineno"> 9635</span> FatalConditionHandler* m_handler;</div>
|
|
<div class="line"><a id="l09636" name="l09636"></a><span class="lineno"> 9636</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09637" name="l09637"></a><span class="lineno"> 9637</span> FatalConditionHandlerGuard(FatalConditionHandler* handler):</div>
|
|
<div class="line"><a id="l09638" name="l09638"></a><span class="lineno"> 9638</span> m_handler(handler) {</div>
|
|
<div class="line"><a id="l09639" name="l09639"></a><span class="lineno"> 9639</span> m_handler->engage();</div>
|
|
<div class="line"><a id="l09640" name="l09640"></a><span class="lineno"> 9640</span> }</div>
|
|
<div class="line"><a id="l09641" name="l09641"></a><span class="lineno"> 9641</span> ~FatalConditionHandlerGuard() {</div>
|
|
<div class="line"><a id="l09642" name="l09642"></a><span class="lineno"> 9642</span> m_handler->disengage();</div>
|
|
<div class="line"><a id="l09643" name="l09643"></a><span class="lineno"> 9643</span> }</div>
|
|
<div class="line"><a id="l09644" name="l09644"></a><span class="lineno"> 9644</span> };</div>
|
|
<div class="line"><a id="l09645" name="l09645"></a><span class="lineno"> 9645</span> </div>
|
|
<div class="line"><a id="l09646" name="l09646"></a><span class="lineno"> 9646</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l09647" name="l09647"></a><span class="lineno"> 9647</span> </div>
|
|
<div class="line"><a id="l09648" name="l09648"></a><span class="lineno"> 9648</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_FATAL_CONDITION_HANDLER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09649" name="l09649"></a><span class="lineno"> 9649</span> </div>
|
|
<div class="line"><a id="l09650" name="l09650"></a><span class="lineno"> 9650</span> </div>
|
|
<div class="line"><a id="l09651" name="l09651"></a><span class="lineno"> 9651</span><span class="preprocessor">#ifndef CATCH_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09652" name="l09652"></a><span class="lineno"> 9652</span><span class="preprocessor">#define CATCH_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09653" name="l09653"></a><span class="lineno"> 9653</span> </div>
|
|
<div class="line"><a id="l09654" name="l09654"></a><span class="lineno"> 9654</span> </div>
|
|
<div class="line"><a id="l09655" name="l09655"></a><span class="lineno"> 9655</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l09656" name="l09656"></a><span class="lineno"> 9656</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l09657" name="l09657"></a><span class="lineno"> 9657</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l09658" name="l09658"></a><span class="lineno"> 9658</span><span class="preprocessor">#include <utility></span></div>
|
|
<div class="line"><a id="l09659" name="l09659"></a><span class="lineno"> 9659</span><span class="preprocessor">#include <limits></span></div>
|
|
<div class="line"><a id="l09660" name="l09660"></a><span class="lineno"> 9660</span> </div>
|
|
<div class="line"><a id="l09661" name="l09661"></a><span class="lineno"> 9661</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09662" name="l09662"></a><span class="lineno"> 9662</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09663" name="l09663"></a><span class="lineno"> 9663</span> </div>
|
|
<div class="line"><a id="l09664" name="l09664"></a><span class="lineno"> 9664</span> uint32_t <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ade51091dea188100d1c7a8acc55f5ea5">convertToBits</a>(<span class="keywordtype">float</span> f);</div>
|
|
<div class="line"><a id="l09665" name="l09665"></a><span class="lineno"> 9665</span> uint64_t <a class="code hl_function" href="namespaceCatch_1_1Detail.html#ade51091dea188100d1c7a8acc55f5ea5">convertToBits</a>(<span class="keywordtype">double</span> d);</div>
|
|
<div class="line"><a id="l09666" name="l09666"></a><span class="lineno"> 9666</span> </div>
|
|
<div class="line"><a id="l09667" name="l09667"></a><span class="lineno"> 9667</span> <span class="comment">// Used when we know we want == comparison of two doubles</span></div>
|
|
<div class="line"><a id="l09668" name="l09668"></a><span class="lineno"> 9668</span> <span class="comment">// to centralize warning suppression</span></div>
|
|
<div class="line"><a id="l09669" name="l09669"></a><span class="lineno"> 9669</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a18fef8312d01399bbf5722432f099216">directCompare</a>( <span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs );</div>
|
|
<div class="line"><a id="l09670" name="l09670"></a><span class="lineno"> 9670</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a18fef8312d01399bbf5722432f099216">directCompare</a>( <span class="keywordtype">double</span> lhs, <span class="keywordtype">double</span> rhs );</div>
|
|
<div class="line"><a id="l09671" name="l09671"></a><span class="lineno"> 9671</span> </div>
|
|
<div class="line"><a id="l09672" name="l09672"></a><span class="lineno"> 9672</span> } <span class="comment">// end namespace Detail</span></div>
|
|
<div class="line"><a id="l09673" name="l09673"></a><span class="lineno"> 9673</span> </div>
|
|
<div class="line"><a id="l09674" name="l09674"></a><span class="lineno"> 9674</span> </div>
|
|
<div class="line"><a id="l09675" name="l09675"></a><span class="lineno"> 9675</span> </div>
|
|
<div class="line"><a id="l09676" name="l09676"></a><span class="lineno"> 9676</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l09677" name="l09677"></a><span class="lineno"> 9677</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l09678" name="l09678"></a><span class="lineno"> 9678</span> <span class="comment">// We do a bunch of direct compensations of floating point numbers,</span></div>
|
|
<div class="line"><a id="l09679" name="l09679"></a><span class="lineno"> 9679</span> <span class="comment">// because we know what we are doing and actually do want the direct</span></div>
|
|
<div class="line"><a id="l09680" name="l09680"></a><span class="lineno"> 9680</span> <span class="comment">// comparison behaviour.</span></div>
|
|
<div class="line"><a id="l09681" name="l09681"></a><span class="lineno"> 9681</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wfloat-equal"</span></div>
|
|
<div class="line"><a id="l09682" name="l09682"></a><span class="lineno"> 9682</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09683" name="l09683"></a><span class="lineno"> 9683</span></div>
|
|
<div class="line"><a id="l09701" name="l09701"></a><span class="lineno"> 9701</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FP></div>
|
|
<div class="line"><a id="l09702" name="l09702"></a><span class="lineno"> 9702</span> uint64_t ulpDistance( FP lhs, FP rhs ) {</div>
|
|
<div class="line"><a id="l09703" name="l09703"></a><span class="lineno"> 9703</span> assert( std::numeric_limits<FP>::is_iec559 &&</div>
|
|
<div class="line"><a id="l09704" name="l09704"></a><span class="lineno"> 9704</span> <span class="stringliteral">"ulpDistance assumes IEEE-754 format for floating point types"</span> );</div>
|
|
<div class="line"><a id="l09705" name="l09705"></a><span class="lineno"> 9705</span> assert( !<a class="code hl_function" href="namespaceCatch.html#aff37796f0f578c2816f74267e641c5f7">Catch::isnan</a>( lhs ) &&</div>
|
|
<div class="line"><a id="l09706" name="l09706"></a><span class="lineno"> 9706</span> <span class="stringliteral">"Distance between NaN and number is not meaningful"</span> );</div>
|
|
<div class="line"><a id="l09707" name="l09707"></a><span class="lineno"> 9707</span> assert( !<a class="code hl_function" href="namespaceCatch.html#aff37796f0f578c2816f74267e641c5f7">Catch::isnan</a>( rhs ) &&</div>
|
|
<div class="line"><a id="l09708" name="l09708"></a><span class="lineno"> 9708</span> <span class="stringliteral">"Distance between NaN and number is not meaningful"</span> );</div>
|
|
<div class="line"><a id="l09709" name="l09709"></a><span class="lineno"> 9709</span> </div>
|
|
<div class="line"><a id="l09710" name="l09710"></a><span class="lineno"> 9710</span> <span class="comment">// We want X == Y to imply 0 ULP distance even if X and Y aren't</span></div>
|
|
<div class="line"><a id="l09711" name="l09711"></a><span class="lineno"> 9711</span> <span class="comment">// bit-equal (-0 and 0), or X - Y != 0 (same sign infinities).</span></div>
|
|
<div class="line"><a id="l09712" name="l09712"></a><span class="lineno"> 9712</span> <span class="keywordflow">if</span> ( lhs == rhs ) { <span class="keywordflow">return</span> 0; }</div>
|
|
<div class="line"><a id="l09713" name="l09713"></a><span class="lineno"> 9713</span> </div>
|
|
<div class="line"><a id="l09714" name="l09714"></a><span class="lineno"> 9714</span> <span class="comment">// We need a properly typed positive zero for type inference.</span></div>
|
|
<div class="line"><a id="l09715" name="l09715"></a><span class="lineno"> 9715</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> FP positive_zero{};</div>
|
|
<div class="line"><a id="l09716" name="l09716"></a><span class="lineno"> 9716</span> </div>
|
|
<div class="line"><a id="l09717" name="l09717"></a><span class="lineno"> 9717</span> <span class="comment">// We want to ensure that +/- 0 is always represented as positive zero</span></div>
|
|
<div class="line"><a id="l09718" name="l09718"></a><span class="lineno"> 9718</span> <span class="keywordflow">if</span> ( lhs == positive_zero ) { lhs = positive_zero; }</div>
|
|
<div class="line"><a id="l09719" name="l09719"></a><span class="lineno"> 9719</span> <span class="keywordflow">if</span> ( rhs == positive_zero ) { rhs = positive_zero; }</div>
|
|
<div class="line"><a id="l09720" name="l09720"></a><span class="lineno"> 9720</span> </div>
|
|
<div class="line"><a id="l09721" name="l09721"></a><span class="lineno"> 9721</span> <span class="comment">// If arguments have different signs, we can handle them by summing</span></div>
|
|
<div class="line"><a id="l09722" name="l09722"></a><span class="lineno"> 9722</span> <span class="comment">// how far are they from 0 each.</span></div>
|
|
<div class="line"><a id="l09723" name="l09723"></a><span class="lineno"> 9723</span> <span class="keywordflow">if</span> ( std::signbit( lhs ) != std::signbit( rhs ) ) {</div>
|
|
<div class="line"><a id="l09724" name="l09724"></a><span class="lineno"> 9724</span> <span class="keywordflow">return</span> ulpDistance( std::abs( lhs ), positive_zero ) +</div>
|
|
<div class="line"><a id="l09725" name="l09725"></a><span class="lineno"> 9725</span> ulpDistance( std::abs( rhs ), positive_zero );</div>
|
|
<div class="line"><a id="l09726" name="l09726"></a><span class="lineno"> 9726</span> }</div>
|
|
<div class="line"><a id="l09727" name="l09727"></a><span class="lineno"> 9727</span> </div>
|
|
<div class="line"><a id="l09728" name="l09728"></a><span class="lineno"> 9728</span> <span class="comment">// When both lhs and rhs are of the same sign, we can just</span></div>
|
|
<div class="line"><a id="l09729" name="l09729"></a><span class="lineno"> 9729</span> <span class="comment">// read the numbers bitwise as integers, and then subtract them</span></div>
|
|
<div class="line"><a id="l09730" name="l09730"></a><span class="lineno"> 9730</span> <span class="comment">// (assuming IEEE).</span></div>
|
|
<div class="line"><a id="l09731" name="l09731"></a><span class="lineno"> 9731</span> uint64_t lc = Detail::convertToBits( lhs );</div>
|
|
<div class="line"><a id="l09732" name="l09732"></a><span class="lineno"> 9732</span> uint64_t rc = Detail::convertToBits( rhs );</div>
|
|
<div class="line"><a id="l09733" name="l09733"></a><span class="lineno"> 9733</span> </div>
|
|
<div class="line"><a id="l09734" name="l09734"></a><span class="lineno"> 9734</span> <span class="comment">// The ulp distance between two numbers is symmetric, so to avoid</span></div>
|
|
<div class="line"><a id="l09735" name="l09735"></a><span class="lineno"> 9735</span> <span class="comment">// dealing with overflows we want the bigger converted number on the lhs</span></div>
|
|
<div class="line"><a id="l09736" name="l09736"></a><span class="lineno"> 9736</span> <span class="keywordflow">if</span> ( lc < rc ) {</div>
|
|
<div class="line"><a id="l09737" name="l09737"></a><span class="lineno"> 9737</span> std::swap( lc, rc );</div>
|
|
<div class="line"><a id="l09738" name="l09738"></a><span class="lineno"> 9738</span> }</div>
|
|
<div class="line"><a id="l09739" name="l09739"></a><span class="lineno"> 9739</span> </div>
|
|
<div class="line"><a id="l09740" name="l09740"></a><span class="lineno"> 9740</span> <span class="keywordflow">return</span> lc - rc;</div>
|
|
<div class="line"><a id="l09741" name="l09741"></a><span class="lineno"> 9741</span> }</div>
|
|
<div class="line"><a id="l09742" name="l09742"></a><span class="lineno"> 9742</span> </div>
|
|
<div class="line"><a id="l09743" name="l09743"></a><span class="lineno"> 9743</span><span class="preprocessor">#if defined( __GNUC__ ) || defined( __clang__ )</span></div>
|
|
<div class="line"><a id="l09744" name="l09744"></a><span class="lineno"> 9744</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l09745" name="l09745"></a><span class="lineno"> 9745</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l09746" name="l09746"></a><span class="lineno"> 9746</span> </div>
|
|
<div class="line"><a id="l09747" name="l09747"></a><span class="lineno"> 9747</span> </div>
|
|
<div class="line"><a id="l09748" name="l09748"></a><span class="lineno"> 9748</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l09749" name="l09749"></a><span class="lineno"> 9749</span> </div>
|
|
<div class="line"><a id="l09750" name="l09750"></a><span class="lineno"> 9750</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_FLOATING_POINT_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09751" name="l09751"></a><span class="lineno"> 9751</span> </div>
|
|
<div class="line"><a id="l09752" name="l09752"></a><span class="lineno"> 9752</span> </div>
|
|
<div class="line"><a id="l09753" name="l09753"></a><span class="lineno"> 9753</span><span class="preprocessor">#ifndef CATCH_GETENV_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09754" name="l09754"></a><span class="lineno"> 9754</span><span class="preprocessor">#define CATCH_GETENV_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09755" name="l09755"></a><span class="lineno"> 9755</span> </div>
|
|
<div class="line"><a id="l09756" name="l09756"></a><span class="lineno"> 9756</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09757" name="l09757"></a><span class="lineno"> 9757</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09758" name="l09758"></a><span class="lineno"> 9758</span></div>
|
|
<div class="line"><a id="l09760" name="l09760"></a><span class="lineno"> 9760</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code hl_function" href="namespaceCatch_1_1Detail.html#a9a53cd3f44546dfc2935a3a6d3277ce6">getEnv</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* varName);</div>
|
|
<div class="line"><a id="l09761" name="l09761"></a><span class="lineno"> 9761</span> </div>
|
|
<div class="line"><a id="l09762" name="l09762"></a><span class="lineno"> 9762</span>}</div>
|
|
<div class="line"><a id="l09763" name="l09763"></a><span class="lineno"> 9763</span>}</div>
|
|
<div class="line"><a id="l09764" name="l09764"></a><span class="lineno"> 9764</span> </div>
|
|
<div class="line"><a id="l09765" name="l09765"></a><span class="lineno"> 9765</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_GETENV_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09766" name="l09766"></a><span class="lineno"> 9766</span> </div>
|
|
<div class="line"><a id="l09767" name="l09767"></a><span class="lineno"> 9767</span> </div>
|
|
<div class="line"><a id="l09768" name="l09768"></a><span class="lineno"> 9768</span><span class="preprocessor">#ifndef CATCH_IS_PERMUTATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09769" name="l09769"></a><span class="lineno"> 9769</span><span class="preprocessor">#define CATCH_IS_PERMUTATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09770" name="l09770"></a><span class="lineno"> 9770</span> </div>
|
|
<div class="line"><a id="l09771" name="l09771"></a><span class="lineno"> 9771</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l09772" name="l09772"></a><span class="lineno"> 9772</span><span class="preprocessor">#include <iterator></span></div>
|
|
<div class="line"><a id="l09773" name="l09773"></a><span class="lineno"> 9773</span> </div>
|
|
<div class="line"><a id="l09774" name="l09774"></a><span class="lineno"> 9774</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09775" name="l09775"></a><span class="lineno"> 9775</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l09776" name="l09776"></a><span class="lineno"> 9776</span> </div>
|
|
<div class="line"><a id="l09777" name="l09777"></a><span class="lineno"> 9777</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter,</div>
|
|
<div class="line"><a id="l09778" name="l09778"></a><span class="lineno"> 9778</span> <span class="keyword">typename</span> Sentinel,</div>
|
|
<div class="line"><a id="l09779" name="l09779"></a><span class="lineno"> 9779</span> <span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l09780" name="l09780"></a><span class="lineno"> 9780</span> <span class="keyword">typename</span> Comparator></div>
|
|
<div class="line"><a id="l09781" name="l09781"></a><span class="lineno"> 9781</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l09782" name="l09782"></a><span class="lineno"> 9782</span> ForwardIter find_sentinel( ForwardIter start,</div>
|
|
<div class="line"><a id="l09783" name="l09783"></a><span class="lineno"> 9783</span> Sentinel sentinel,</div>
|
|
<div class="line"><a id="l09784" name="l09784"></a><span class="lineno"> 9784</span> T <span class="keyword">const</span>& value,</div>
|
|
<div class="line"><a id="l09785" name="l09785"></a><span class="lineno"> 9785</span> Comparator cmp ) {</div>
|
|
<div class="line"><a id="l09786" name="l09786"></a><span class="lineno"> 9786</span> <span class="keywordflow">while</span> ( start != sentinel ) {</div>
|
|
<div class="line"><a id="l09787" name="l09787"></a><span class="lineno"> 9787</span> <span class="keywordflow">if</span> ( cmp( *start, value ) ) { <span class="keywordflow">break</span>; }</div>
|
|
<div class="line"><a id="l09788" name="l09788"></a><span class="lineno"> 9788</span> ++start;</div>
|
|
<div class="line"><a id="l09789" name="l09789"></a><span class="lineno"> 9789</span> }</div>
|
|
<div class="line"><a id="l09790" name="l09790"></a><span class="lineno"> 9790</span> <span class="keywordflow">return</span> start;</div>
|
|
<div class="line"><a id="l09791" name="l09791"></a><span class="lineno"> 9791</span> }</div>
|
|
<div class="line"><a id="l09792" name="l09792"></a><span class="lineno"> 9792</span> </div>
|
|
<div class="line"><a id="l09793" name="l09793"></a><span class="lineno"> 9793</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter,</div>
|
|
<div class="line"><a id="l09794" name="l09794"></a><span class="lineno"> 9794</span> <span class="keyword">typename</span> Sentinel,</div>
|
|
<div class="line"><a id="l09795" name="l09795"></a><span class="lineno"> 9795</span> <span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l09796" name="l09796"></a><span class="lineno"> 9796</span> <span class="keyword">typename</span> Comparator></div>
|
|
<div class="line"><a id="l09797" name="l09797"></a><span class="lineno"> 9797</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l09798" name="l09798"></a><span class="lineno"> 9798</span> std::ptrdiff_t count_sentinel( ForwardIter start,</div>
|
|
<div class="line"><a id="l09799" name="l09799"></a><span class="lineno"> 9799</span> Sentinel sentinel,</div>
|
|
<div class="line"><a id="l09800" name="l09800"></a><span class="lineno"> 9800</span> T <span class="keyword">const</span>& value,</div>
|
|
<div class="line"><a id="l09801" name="l09801"></a><span class="lineno"> 9801</span> Comparator cmp ) {</div>
|
|
<div class="line"><a id="l09802" name="l09802"></a><span class="lineno"> 9802</span> std::ptrdiff_t count = 0;</div>
|
|
<div class="line"><a id="l09803" name="l09803"></a><span class="lineno"> 9803</span> <span class="keywordflow">while</span> ( start != sentinel ) {</div>
|
|
<div class="line"><a id="l09804" name="l09804"></a><span class="lineno"> 9804</span> <span class="keywordflow">if</span> ( cmp( *start, value ) ) { ++count; }</div>
|
|
<div class="line"><a id="l09805" name="l09805"></a><span class="lineno"> 9805</span> ++start;</div>
|
|
<div class="line"><a id="l09806" name="l09806"></a><span class="lineno"> 9806</span> }</div>
|
|
<div class="line"><a id="l09807" name="l09807"></a><span class="lineno"> 9807</span> <span class="keywordflow">return</span> count;</div>
|
|
<div class="line"><a id="l09808" name="l09808"></a><span class="lineno"> 9808</span> }</div>
|
|
<div class="line"><a id="l09809" name="l09809"></a><span class="lineno"> 9809</span> </div>
|
|
<div class="line"><a id="l09810" name="l09810"></a><span class="lineno"> 9810</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter, <span class="keyword">typename</span> Sentinel></div>
|
|
<div class="line"><a id="l09811" name="l09811"></a><span class="lineno"> 9811</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l09812" name="l09812"></a><span class="lineno"> 9812</span> std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,</div>
|
|
<div class="line"><a id="l09813" name="l09813"></a><span class="lineno"> 9813</span> std::ptrdiff_t></div>
|
|
<div class="line"><a id="l09814" name="l09814"></a><span class="lineno"> 9814</span> sentinel_distance( ForwardIter iter, <span class="keyword">const</span> Sentinel sentinel ) {</div>
|
|
<div class="line"><a id="l09815" name="l09815"></a><span class="lineno"> 9815</span> std::ptrdiff_t dist = 0;</div>
|
|
<div class="line"><a id="l09816" name="l09816"></a><span class="lineno"> 9816</span> <span class="keywordflow">while</span> ( iter != sentinel ) {</div>
|
|
<div class="line"><a id="l09817" name="l09817"></a><span class="lineno"> 9817</span> ++iter;</div>
|
|
<div class="line"><a id="l09818" name="l09818"></a><span class="lineno"> 9818</span> ++dist;</div>
|
|
<div class="line"><a id="l09819" name="l09819"></a><span class="lineno"> 9819</span> }</div>
|
|
<div class="line"><a id="l09820" name="l09820"></a><span class="lineno"> 9820</span> <span class="keywordflow">return</span> dist;</div>
|
|
<div class="line"><a id="l09821" name="l09821"></a><span class="lineno"> 9821</span> }</div>
|
|
<div class="line"><a id="l09822" name="l09822"></a><span class="lineno"> 9822</span> </div>
|
|
<div class="line"><a id="l09823" name="l09823"></a><span class="lineno"> 9823</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter></div>
|
|
<div class="line"><a id="l09824" name="l09824"></a><span class="lineno"> 9824</span> <span class="keyword">constexpr</span> std::ptrdiff_t sentinel_distance( ForwardIter first,</div>
|
|
<div class="line"><a id="l09825" name="l09825"></a><span class="lineno"> 9825</span> ForwardIter last ) {</div>
|
|
<div class="line"><a id="l09826" name="l09826"></a><span class="lineno"> 9826</span> <span class="keywordflow">return</span> std::distance( first, last );</div>
|
|
<div class="line"><a id="l09827" name="l09827"></a><span class="lineno"> 9827</span> }</div>
|
|
<div class="line"><a id="l09828" name="l09828"></a><span class="lineno"> 9828</span> </div>
|
|
<div class="line"><a id="l09829" name="l09829"></a><span class="lineno"> 9829</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter1,</div>
|
|
<div class="line"><a id="l09830" name="l09830"></a><span class="lineno"> 9830</span> <span class="keyword">typename</span> Sentinel1,</div>
|
|
<div class="line"><a id="l09831" name="l09831"></a><span class="lineno"> 9831</span> <span class="keyword">typename</span> ForwardIter2,</div>
|
|
<div class="line"><a id="l09832" name="l09832"></a><span class="lineno"> 9832</span> <span class="keyword">typename</span> Sentinel2,</div>
|
|
<div class="line"><a id="l09833" name="l09833"></a><span class="lineno"> 9833</span> <span class="keyword">typename</span> Comparator></div>
|
|
<div class="line"><a id="l09834" name="l09834"></a><span class="lineno"> 9834</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> check_element_counts( ForwardIter1 first_1,</div>
|
|
<div class="line"><a id="l09835" name="l09835"></a><span class="lineno"> 9835</span> <span class="keyword">const</span> Sentinel1 end_1,</div>
|
|
<div class="line"><a id="l09836" name="l09836"></a><span class="lineno"> 9836</span> ForwardIter2 first_2,</div>
|
|
<div class="line"><a id="l09837" name="l09837"></a><span class="lineno"> 9837</span> <span class="keyword">const</span> Sentinel2 end_2,</div>
|
|
<div class="line"><a id="l09838" name="l09838"></a><span class="lineno"> 9838</span> Comparator cmp ) {</div>
|
|
<div class="line"><a id="l09839" name="l09839"></a><span class="lineno"> 9839</span> <span class="keyword">auto</span> cursor = first_1;</div>
|
|
<div class="line"><a id="l09840" name="l09840"></a><span class="lineno"> 9840</span> <span class="keywordflow">while</span> ( cursor != end_1 ) {</div>
|
|
<div class="line"><a id="l09841" name="l09841"></a><span class="lineno"> 9841</span> <span class="keywordflow">if</span> ( find_sentinel( first_1, cursor, *cursor, cmp ) ==</div>
|
|
<div class="line"><a id="l09842" name="l09842"></a><span class="lineno"> 9842</span> cursor ) {</div>
|
|
<div class="line"><a id="l09843" name="l09843"></a><span class="lineno"> 9843</span> <span class="comment">// we haven't checked this element yet</span></div>
|
|
<div class="line"><a id="l09844" name="l09844"></a><span class="lineno"> 9844</span> <span class="keyword">const</span> <span class="keyword">auto</span> count_in_range_2 =</div>
|
|
<div class="line"><a id="l09845" name="l09845"></a><span class="lineno"> 9845</span> count_sentinel( first_2, end_2, *cursor, cmp );</div>
|
|
<div class="line"><a id="l09846" name="l09846"></a><span class="lineno"> 9846</span> <span class="comment">// Not a single instance in 2nd range, so it cannot be a</span></div>
|
|
<div class="line"><a id="l09847" name="l09847"></a><span class="lineno"> 9847</span> <span class="comment">// permutation of 1st range</span></div>
|
|
<div class="line"><a id="l09848" name="l09848"></a><span class="lineno"> 9848</span> <span class="keywordflow">if</span> ( count_in_range_2 == 0 ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l09849" name="l09849"></a><span class="lineno"> 9849</span> </div>
|
|
<div class="line"><a id="l09850" name="l09850"></a><span class="lineno"> 9850</span> <span class="keyword">const</span> <span class="keyword">auto</span> count_in_range_1 =</div>
|
|
<div class="line"><a id="l09851" name="l09851"></a><span class="lineno"> 9851</span> count_sentinel( cursor, end_1, *cursor, cmp );</div>
|
|
<div class="line"><a id="l09852" name="l09852"></a><span class="lineno"> 9852</span> <span class="keywordflow">if</span> ( count_in_range_1 != count_in_range_2 ) {</div>
|
|
<div class="line"><a id="l09853" name="l09853"></a><span class="lineno"> 9853</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l09854" name="l09854"></a><span class="lineno"> 9854</span> }</div>
|
|
<div class="line"><a id="l09855" name="l09855"></a><span class="lineno"> 9855</span> }</div>
|
|
<div class="line"><a id="l09856" name="l09856"></a><span class="lineno"> 9856</span> </div>
|
|
<div class="line"><a id="l09857" name="l09857"></a><span class="lineno"> 9857</span> ++cursor;</div>
|
|
<div class="line"><a id="l09858" name="l09858"></a><span class="lineno"> 9858</span> }</div>
|
|
<div class="line"><a id="l09859" name="l09859"></a><span class="lineno"> 9859</span> </div>
|
|
<div class="line"><a id="l09860" name="l09860"></a><span class="lineno"> 9860</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l09861" name="l09861"></a><span class="lineno"> 9861</span> }</div>
|
|
<div class="line"><a id="l09862" name="l09862"></a><span class="lineno"> 9862</span> </div>
|
|
<div class="line"><a id="l09863" name="l09863"></a><span class="lineno"> 9863</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ForwardIter1,</div>
|
|
<div class="line"><a id="l09864" name="l09864"></a><span class="lineno"> 9864</span> <span class="keyword">typename</span> Sentinel1,</div>
|
|
<div class="line"><a id="l09865" name="l09865"></a><span class="lineno"> 9865</span> <span class="keyword">typename</span> ForwardIter2,</div>
|
|
<div class="line"><a id="l09866" name="l09866"></a><span class="lineno"> 9866</span> <span class="keyword">typename</span> Sentinel2,</div>
|
|
<div class="line"><a id="l09867" name="l09867"></a><span class="lineno"> 9867</span> <span class="keyword">typename</span> Comparator></div>
|
|
<div class="line"><a id="l09868" name="l09868"></a><span class="lineno"> 9868</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> is_permutation( ForwardIter1 first_1,</div>
|
|
<div class="line"><a id="l09869" name="l09869"></a><span class="lineno"> 9869</span> <span class="keyword">const</span> Sentinel1 end_1,</div>
|
|
<div class="line"><a id="l09870" name="l09870"></a><span class="lineno"> 9870</span> ForwardIter2 first_2,</div>
|
|
<div class="line"><a id="l09871" name="l09871"></a><span class="lineno"> 9871</span> <span class="keyword">const</span> Sentinel2 end_2,</div>
|
|
<div class="line"><a id="l09872" name="l09872"></a><span class="lineno"> 9872</span> Comparator cmp ) {</div>
|
|
<div class="line"><a id="l09873" name="l09873"></a><span class="lineno"> 9873</span> <span class="comment">// TODO: no optimization for stronger iterators, because we would also have to constrain on sentinel vs not sentinel types</span></div>
|
|
<div class="line"><a id="l09874" name="l09874"></a><span class="lineno"> 9874</span> <span class="comment">// TODO: Comparator has to be "both sides", e.g. a == b => b == a</span></div>
|
|
<div class="line"><a id="l09875" name="l09875"></a><span class="lineno"> 9875</span> <span class="comment">// This skips shared prefix of the two ranges</span></div>
|
|
<div class="line"><a id="l09876" name="l09876"></a><span class="lineno"> 9876</span> <span class="keywordflow">while</span> (first_1 != end_1 && first_2 != end_2 && cmp(*first_1, *first_2)) {</div>
|
|
<div class="line"><a id="l09877" name="l09877"></a><span class="lineno"> 9877</span> ++first_1;</div>
|
|
<div class="line"><a id="l09878" name="l09878"></a><span class="lineno"> 9878</span> ++first_2;</div>
|
|
<div class="line"><a id="l09879" name="l09879"></a><span class="lineno"> 9879</span> }</div>
|
|
<div class="line"><a id="l09880" name="l09880"></a><span class="lineno"> 9880</span> </div>
|
|
<div class="line"><a id="l09881" name="l09881"></a><span class="lineno"> 9881</span> <span class="comment">// We need to handle case where at least one of the ranges has no more elements</span></div>
|
|
<div class="line"><a id="l09882" name="l09882"></a><span class="lineno"> 9882</span> <span class="keywordflow">if</span> (first_1 == end_1 || first_2 == end_2) {</div>
|
|
<div class="line"><a id="l09883" name="l09883"></a><span class="lineno"> 9883</span> <span class="keywordflow">return</span> first_1 == end_1 && first_2 == end_2;</div>
|
|
<div class="line"><a id="l09884" name="l09884"></a><span class="lineno"> 9884</span> }</div>
|
|
<div class="line"><a id="l09885" name="l09885"></a><span class="lineno"> 9885</span> </div>
|
|
<div class="line"><a id="l09886" name="l09886"></a><span class="lineno"> 9886</span> <span class="comment">// pair counting is n**2, so we pay linear walk to compare the sizes first</span></div>
|
|
<div class="line"><a id="l09887" name="l09887"></a><span class="lineno"> 9887</span> <span class="keyword">auto</span> dist_1 = sentinel_distance( first_1, end_1 );</div>
|
|
<div class="line"><a id="l09888" name="l09888"></a><span class="lineno"> 9888</span> <span class="keyword">auto</span> dist_2 = sentinel_distance( first_2, end_2 );</div>
|
|
<div class="line"><a id="l09889" name="l09889"></a><span class="lineno"> 9889</span> </div>
|
|
<div class="line"><a id="l09890" name="l09890"></a><span class="lineno"> 9890</span> <span class="keywordflow">if</span> (dist_1 != dist_2) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l09891" name="l09891"></a><span class="lineno"> 9891</span> </div>
|
|
<div class="line"><a id="l09892" name="l09892"></a><span class="lineno"> 9892</span> <span class="comment">// Since we do not try to handle stronger iterators pair (e.g.</span></div>
|
|
<div class="line"><a id="l09893" name="l09893"></a><span class="lineno"> 9893</span> <span class="comment">// bidir) optimally, the only thing left to do is to check counts in</span></div>
|
|
<div class="line"><a id="l09894" name="l09894"></a><span class="lineno"> 9894</span> <span class="comment">// the remaining ranges.</span></div>
|
|
<div class="line"><a id="l09895" name="l09895"></a><span class="lineno"> 9895</span> <span class="keywordflow">return</span> check_element_counts( first_1, end_1, first_2, end_2, cmp );</div>
|
|
<div class="line"><a id="l09896" name="l09896"></a><span class="lineno"> 9896</span> }</div>
|
|
<div class="line"><a id="l09897" name="l09897"></a><span class="lineno"> 9897</span> </div>
|
|
<div class="line"><a id="l09898" name="l09898"></a><span class="lineno"> 9898</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l09899" name="l09899"></a><span class="lineno"> 9899</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l09900" name="l09900"></a><span class="lineno"> 9900</span> </div>
|
|
<div class="line"><a id="l09901" name="l09901"></a><span class="lineno"> 9901</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_IS_PERMUTATION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09902" name="l09902"></a><span class="lineno"> 9902</span> </div>
|
|
<div class="line"><a id="l09903" name="l09903"></a><span class="lineno"> 9903</span> </div>
|
|
<div class="line"><a id="l09904" name="l09904"></a><span class="lineno"> 9904</span><span class="preprocessor">#ifndef CATCH_ISTREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09905" name="l09905"></a><span class="lineno"> 9905</span><span class="preprocessor">#define CATCH_ISTREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09906" name="l09906"></a><span class="lineno"> 9906</span> </div>
|
|
<div class="line"><a id="l09907" name="l09907"></a><span class="lineno"> 9907</span> </div>
|
|
<div class="line"><a id="l09908" name="l09908"></a><span class="lineno"> 9908</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l09909" name="l09909"></a><span class="lineno"> 9909</span><span class="preprocessor">#include <cstddef></span></div>
|
|
<div class="line"><a id="l09910" name="l09910"></a><span class="lineno"> 9910</span><span class="preprocessor">#include <ostream></span></div>
|
|
<div class="line"><a id="l09911" name="l09911"></a><span class="lineno"> 9911</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l09912" name="l09912"></a><span class="lineno"> 9912</span> </div>
|
|
<div class="line"><a id="l09913" name="l09913"></a><span class="lineno"> 9913</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09914" name="l09914"></a><span class="lineno"> 9914</span> </div>
|
|
<div class="line"><a id="l09915" name="l09915"></a><span class="lineno"> 9915</span> <span class="keyword">class </span>IStream {</div>
|
|
<div class="line"><a id="l09916" name="l09916"></a><span class="lineno"> 9916</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09917" name="l09917"></a><span class="lineno"> 9917</span> <span class="keyword">virtual</span> ~IStream(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l09918" name="l09918"></a><span class="lineno"> 9918</span> <span class="keyword">virtual</span> std::ostream& stream() = 0;</div>
|
|
<div class="line"><a id="l09930" name="l09930"></a><span class="lineno"> 9930</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isConsole()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l09931" name="l09931"></a><span class="lineno"> 9931</span> };</div>
|
|
<div class="line"><a id="l09932" name="l09932"></a><span class="lineno"> 9932</span></div>
|
|
<div class="line"><a id="l09944" name="l09944"></a><span class="lineno"> 9944</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch.html#a375b927ff7cc5356ff4a71626d54c83f">makeStream</a>( std::string <span class="keyword">const</span>& filename ) -> Detail::unique_ptr<IStream>;</div>
|
|
<div class="line"><a id="l09945" name="l09945"></a><span class="lineno"> 9945</span> </div>
|
|
<div class="line"><a id="l09946" name="l09946"></a><span class="lineno"> 9946</span>}</div>
|
|
<div class="line"><a id="l09947" name="l09947"></a><span class="lineno"> 9947</span> </div>
|
|
<div class="line"><a id="l09948" name="l09948"></a><span class="lineno"> 9948</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STREAM_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09949" name="l09949"></a><span class="lineno"> 9949</span> </div>
|
|
<div class="line"><a id="l09950" name="l09950"></a><span class="lineno"> 9950</span> </div>
|
|
<div class="line"><a id="l09951" name="l09951"></a><span class="lineno"> 9951</span><span class="preprocessor">#ifndef CATCH_JSONWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09952" name="l09952"></a><span class="lineno"> 9952</span><span class="preprocessor">#define CATCH_JSONWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l09953" name="l09953"></a><span class="lineno"> 9953</span> </div>
|
|
<div class="line"><a id="l09954" name="l09954"></a><span class="lineno"> 9954</span> </div>
|
|
<div class="line"><a id="l09955" name="l09955"></a><span class="lineno"> 9955</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l09956" name="l09956"></a><span class="lineno"> 9956</span><span class="preprocessor">#include <sstream></span></div>
|
|
<div class="line"><a id="l09957" name="l09957"></a><span class="lineno"> 9957</span> </div>
|
|
<div class="line"><a id="l09958" name="l09958"></a><span class="lineno"> 9958</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l09959" name="l09959"></a><span class="lineno"> 9959</span> <span class="keyword">class </span>JsonObjectWriter;</div>
|
|
<div class="line"><a id="l09960" name="l09960"></a><span class="lineno"> 9960</span> <span class="keyword">class </span>JsonArrayWriter;</div>
|
|
<div class="line"><a id="l09961" name="l09961"></a><span class="lineno"> 9961</span> </div>
|
|
<div class="line"><a id="l09962" name="l09962"></a><span class="lineno"> 9962</span> <span class="keyword">struct </span>JsonUtils {</div>
|
|
<div class="line"><a id="l09963" name="l09963"></a><span class="lineno"> 9963</span> <span class="keyword">static</span> <span class="keywordtype">void</span> indent( std::ostream& os, std::uint64_t level );</div>
|
|
<div class="line"><a id="l09964" name="l09964"></a><span class="lineno"> 9964</span> <span class="keyword">static</span> <span class="keywordtype">void</span> appendCommaNewline( std::ostream& os,</div>
|
|
<div class="line"><a id="l09965" name="l09965"></a><span class="lineno"> 9965</span> <span class="keywordtype">bool</span>& should_comma,</div>
|
|
<div class="line"><a id="l09966" name="l09966"></a><span class="lineno"> 9966</span> std::uint64_t level );</div>
|
|
<div class="line"><a id="l09967" name="l09967"></a><span class="lineno"> 9967</span> };</div>
|
|
<div class="line"><a id="l09968" name="l09968"></a><span class="lineno"> 9968</span> </div>
|
|
<div class="line"><a id="l09969" name="l09969"></a><span class="lineno"> 9969</span> <span class="keyword">class </span>JsonValueWriter {</div>
|
|
<div class="line"><a id="l09970" name="l09970"></a><span class="lineno"> 9970</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l09971" name="l09971"></a><span class="lineno"> 9971</span> JsonValueWriter( std::ostream& os );</div>
|
|
<div class="line"><a id="l09972" name="l09972"></a><span class="lineno"> 9972</span> JsonValueWriter( std::ostream& os, std::uint64_t indent_level );</div>
|
|
<div class="line"><a id="l09973" name="l09973"></a><span class="lineno"> 9973</span> </div>
|
|
<div class="line"><a id="l09974" name="l09974"></a><span class="lineno"> 9974</span> JsonObjectWriter writeObject() &&;</div>
|
|
<div class="line"><a id="l09975" name="l09975"></a><span class="lineno"> 9975</span> JsonArrayWriter writeArray() &&;</div>
|
|
<div class="line"><a id="l09976" name="l09976"></a><span class="lineno"> 9976</span> </div>
|
|
<div class="line"><a id="l09977" name="l09977"></a><span class="lineno"> 9977</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l09978" name="l09978"></a><span class="lineno"> 9978</span> <span class="keywordtype">void</span> write( T <span class="keyword">const</span>& value ) && {</div>
|
|
<div class="line"><a id="l09979" name="l09979"></a><span class="lineno"> 9979</span> writeImpl( value, !std::is_arithmetic<T>::value );</div>
|
|
<div class="line"><a id="l09980" name="l09980"></a><span class="lineno"> 9980</span> }</div>
|
|
<div class="line"><a id="l09981" name="l09981"></a><span class="lineno"> 9981</span> <span class="keywordtype">void</span> write( StringRef value ) &&;</div>
|
|
<div class="line"><a id="l09982" name="l09982"></a><span class="lineno"> 9982</span> <span class="keywordtype">void</span> write( <span class="keywordtype">bool</span> value ) &&;</div>
|
|
<div class="line"><a id="l09983" name="l09983"></a><span class="lineno"> 9983</span> </div>
|
|
<div class="line"><a id="l09984" name="l09984"></a><span class="lineno"> 9984</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l09985" name="l09985"></a><span class="lineno"> 9985</span> <span class="keywordtype">void</span> writeImpl( StringRef value, <span class="keywordtype">bool</span> quote );</div>
|
|
<div class="line"><a id="l09986" name="l09986"></a><span class="lineno"> 9986</span> </div>
|
|
<div class="line"><a id="l09987" name="l09987"></a><span class="lineno"> 9987</span> <span class="comment">// Without this SFINAE, this overload is a better match</span></div>
|
|
<div class="line"><a id="l09988" name="l09988"></a><span class="lineno"> 9988</span> <span class="comment">// for `std::string`, `char const*`, `char const[N]` args.</span></div>
|
|
<div class="line"><a id="l09989" name="l09989"></a><span class="lineno"> 9989</span> <span class="comment">// While it would still work, it would cause code bloat</span></div>
|
|
<div class="line"><a id="l09990" name="l09990"></a><span class="lineno"> 9990</span> <span class="comment">// and multiple iteration over the strings</span></div>
|
|
<div class="line"><a id="l09991" name="l09991"></a><span class="lineno"> 9991</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l09992" name="l09992"></a><span class="lineno"> 9992</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l09993" name="l09993"></a><span class="lineno"> 9993</span> !std::is_convertible<T, StringRef>::value>></div>
|
|
<div class="line"><a id="l09994" name="l09994"></a><span class="lineno"> 9994</span> <span class="keywordtype">void</span> writeImpl( T <span class="keyword">const</span>& value, <span class="keywordtype">bool</span> quote_value ) {</div>
|
|
<div class="line"><a id="l09995" name="l09995"></a><span class="lineno"> 9995</span> m_sstream << <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>;</div>
|
|
<div class="line"><a id="l09996" name="l09996"></a><span class="lineno"> 9996</span> writeImpl( m_sstream.str(), quote_value );</div>
|
|
<div class="line"><a id="l09997" name="l09997"></a><span class="lineno"> 9997</span> }</div>
|
|
<div class="line"><a id="l09998" name="l09998"></a><span class="lineno"> 9998</span> </div>
|
|
<div class="line"><a id="l09999" name="l09999"></a><span class="lineno"> 9999</span> std::ostream& m_os;</div>
|
|
<div class="line"><a id="l10000" name="l10000"></a><span class="lineno">10000</span> std::stringstream m_sstream;</div>
|
|
<div class="line"><a id="l10001" name="l10001"></a><span class="lineno">10001</span> std::uint64_t m_indent_level;</div>
|
|
<div class="line"><a id="l10002" name="l10002"></a><span class="lineno">10002</span> };</div>
|
|
<div class="line"><a id="l10003" name="l10003"></a><span class="lineno">10003</span> </div>
|
|
<div class="line"><a id="l10004" name="l10004"></a><span class="lineno">10004</span> <span class="keyword">class </span>JsonObjectWriter {</div>
|
|
<div class="line"><a id="l10005" name="l10005"></a><span class="lineno">10005</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10006" name="l10006"></a><span class="lineno">10006</span> JsonObjectWriter( std::ostream& os );</div>
|
|
<div class="line"><a id="l10007" name="l10007"></a><span class="lineno">10007</span> JsonObjectWriter( std::ostream& os, std::uint64_t indent_level );</div>
|
|
<div class="line"><a id="l10008" name="l10008"></a><span class="lineno">10008</span> </div>
|
|
<div class="line"><a id="l10009" name="l10009"></a><span class="lineno">10009</span> JsonObjectWriter( JsonObjectWriter&& source ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l10010" name="l10010"></a><span class="lineno">10010</span> JsonObjectWriter& operator=( JsonObjectWriter&& source ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l10011" name="l10011"></a><span class="lineno">10011</span> </div>
|
|
<div class="line"><a id="l10012" name="l10012"></a><span class="lineno">10012</span> ~JsonObjectWriter();</div>
|
|
<div class="line"><a id="l10013" name="l10013"></a><span class="lineno">10013</span> </div>
|
|
<div class="line"><a id="l10014" name="l10014"></a><span class="lineno">10014</span> JsonValueWriter write( StringRef key );</div>
|
|
<div class="line"><a id="l10015" name="l10015"></a><span class="lineno">10015</span> </div>
|
|
<div class="line"><a id="l10016" name="l10016"></a><span class="lineno">10016</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10017" name="l10017"></a><span class="lineno">10017</span> std::ostream& m_os;</div>
|
|
<div class="line"><a id="l10018" name="l10018"></a><span class="lineno">10018</span> std::uint64_t m_indent_level;</div>
|
|
<div class="line"><a id="l10019" name="l10019"></a><span class="lineno">10019</span> <span class="keywordtype">bool</span> m_should_comma = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10020" name="l10020"></a><span class="lineno">10020</span> <span class="keywordtype">bool</span> m_active = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l10021" name="l10021"></a><span class="lineno">10021</span> };</div>
|
|
<div class="line"><a id="l10022" name="l10022"></a><span class="lineno">10022</span> </div>
|
|
<div class="line"><a id="l10023" name="l10023"></a><span class="lineno">10023</span> <span class="keyword">class </span>JsonArrayWriter {</div>
|
|
<div class="line"><a id="l10024" name="l10024"></a><span class="lineno">10024</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10025" name="l10025"></a><span class="lineno">10025</span> JsonArrayWriter( std::ostream& os );</div>
|
|
<div class="line"><a id="l10026" name="l10026"></a><span class="lineno">10026</span> JsonArrayWriter( std::ostream& os, std::uint64_t indent_level );</div>
|
|
<div class="line"><a id="l10027" name="l10027"></a><span class="lineno">10027</span> </div>
|
|
<div class="line"><a id="l10028" name="l10028"></a><span class="lineno">10028</span> JsonArrayWriter( JsonArrayWriter&& source ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l10029" name="l10029"></a><span class="lineno">10029</span> JsonArrayWriter& operator=( JsonArrayWriter&& source ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l10030" name="l10030"></a><span class="lineno">10030</span> </div>
|
|
<div class="line"><a id="l10031" name="l10031"></a><span class="lineno">10031</span> ~JsonArrayWriter();</div>
|
|
<div class="line"><a id="l10032" name="l10032"></a><span class="lineno">10032</span> </div>
|
|
<div class="line"><a id="l10033" name="l10033"></a><span class="lineno">10033</span> JsonObjectWriter writeObject();</div>
|
|
<div class="line"><a id="l10034" name="l10034"></a><span class="lineno">10034</span> JsonArrayWriter writeArray();</div>
|
|
<div class="line"><a id="l10035" name="l10035"></a><span class="lineno">10035</span> </div>
|
|
<div class="line"><a id="l10036" name="l10036"></a><span class="lineno">10036</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l10037" name="l10037"></a><span class="lineno">10037</span> JsonArrayWriter& write( T <span class="keyword">const</span>& value ) {</div>
|
|
<div class="line"><a id="l10038" name="l10038"></a><span class="lineno">10038</span> <span class="keywordflow">return</span> writeImpl( value );</div>
|
|
<div class="line"><a id="l10039" name="l10039"></a><span class="lineno">10039</span> }</div>
|
|
<div class="line"><a id="l10040" name="l10040"></a><span class="lineno">10040</span> </div>
|
|
<div class="line"><a id="l10041" name="l10041"></a><span class="lineno">10041</span> JsonArrayWriter& write( <span class="keywordtype">bool</span> value );</div>
|
|
<div class="line"><a id="l10042" name="l10042"></a><span class="lineno">10042</span> </div>
|
|
<div class="line"><a id="l10043" name="l10043"></a><span class="lineno">10043</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10044" name="l10044"></a><span class="lineno">10044</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l10045" name="l10045"></a><span class="lineno">10045</span> JsonArrayWriter& writeImpl( T <span class="keyword">const</span>& value ) {</div>
|
|
<div class="line"><a id="l10046" name="l10046"></a><span class="lineno">10046</span> JsonUtils::appendCommaNewline(</div>
|
|
<div class="line"><a id="l10047" name="l10047"></a><span class="lineno">10047</span> m_os, m_should_comma, m_indent_level + 1 );</div>
|
|
<div class="line"><a id="l10048" name="l10048"></a><span class="lineno">10048</span> JsonValueWriter{ m_os }.write( value );</div>
|
|
<div class="line"><a id="l10049" name="l10049"></a><span class="lineno">10049</span> </div>
|
|
<div class="line"><a id="l10050" name="l10050"></a><span class="lineno">10050</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l10051" name="l10051"></a><span class="lineno">10051</span> }</div>
|
|
<div class="line"><a id="l10052" name="l10052"></a><span class="lineno">10052</span> </div>
|
|
<div class="line"><a id="l10053" name="l10053"></a><span class="lineno">10053</span> std::ostream& m_os;</div>
|
|
<div class="line"><a id="l10054" name="l10054"></a><span class="lineno">10054</span> std::uint64_t m_indent_level;</div>
|
|
<div class="line"><a id="l10055" name="l10055"></a><span class="lineno">10055</span> <span class="keywordtype">bool</span> m_should_comma = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10056" name="l10056"></a><span class="lineno">10056</span> <span class="keywordtype">bool</span> m_active = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l10057" name="l10057"></a><span class="lineno">10057</span> };</div>
|
|
<div class="line"><a id="l10058" name="l10058"></a><span class="lineno">10058</span> </div>
|
|
<div class="line"><a id="l10059" name="l10059"></a><span class="lineno">10059</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10060" name="l10060"></a><span class="lineno">10060</span> </div>
|
|
<div class="line"><a id="l10061" name="l10061"></a><span class="lineno">10061</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_JSONWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10062" name="l10062"></a><span class="lineno">10062</span> </div>
|
|
<div class="line"><a id="l10063" name="l10063"></a><span class="lineno">10063</span> </div>
|
|
<div class="line"><a id="l10064" name="l10064"></a><span class="lineno">10064</span><span class="preprocessor">#ifndef CATCH_LEAK_DETECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10065" name="l10065"></a><span class="lineno">10065</span><span class="preprocessor">#define CATCH_LEAK_DETECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10066" name="l10066"></a><span class="lineno">10066</span> </div>
|
|
<div class="line"><a id="l10067" name="l10067"></a><span class="lineno">10067</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10068" name="l10068"></a><span class="lineno">10068</span> </div>
|
|
<div class="line"><a id="l10069" name="l10069"></a><span class="lineno">10069</span> <span class="keyword">struct </span>LeakDetector {</div>
|
|
<div class="line"><a id="l10070" name="l10070"></a><span class="lineno">10070</span> LeakDetector();</div>
|
|
<div class="line"><a id="l10071" name="l10071"></a><span class="lineno">10071</span> ~LeakDetector();</div>
|
|
<div class="line"><a id="l10072" name="l10072"></a><span class="lineno">10072</span> };</div>
|
|
<div class="line"><a id="l10073" name="l10073"></a><span class="lineno">10073</span> </div>
|
|
<div class="line"><a id="l10074" name="l10074"></a><span class="lineno">10074</span>}</div>
|
|
<div class="line"><a id="l10075" name="l10075"></a><span class="lineno">10075</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_LEAK_DETECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10076" name="l10076"></a><span class="lineno">10076</span> </div>
|
|
<div class="line"><a id="l10077" name="l10077"></a><span class="lineno">10077</span> </div>
|
|
<div class="line"><a id="l10078" name="l10078"></a><span class="lineno">10078</span><span class="preprocessor">#ifndef CATCH_LIST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10079" name="l10079"></a><span class="lineno">10079</span><span class="preprocessor">#define CATCH_LIST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10080" name="l10080"></a><span class="lineno">10080</span> </div>
|
|
<div class="line"><a id="l10081" name="l10081"></a><span class="lineno">10081</span> </div>
|
|
<div class="line"><a id="l10082" name="l10082"></a><span class="lineno">10082</span><span class="preprocessor">#include <set></span></div>
|
|
<div class="line"><a id="l10083" name="l10083"></a><span class="lineno">10083</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10084" name="l10084"></a><span class="lineno">10084</span> </div>
|
|
<div class="line"><a id="l10085" name="l10085"></a><span class="lineno">10085</span> </div>
|
|
<div class="line"><a id="l10086" name="l10086"></a><span class="lineno">10086</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10087" name="l10087"></a><span class="lineno">10087</span> </div>
|
|
<div class="line"><a id="l10088" name="l10088"></a><span class="lineno">10088</span> <span class="keyword">class </span>IEventListener;</div>
|
|
<div class="line"><a id="l10089" name="l10089"></a><span class="lineno">10089</span> <span class="keyword">class </span>Config;</div>
|
|
<div class="line"><a id="l10090" name="l10090"></a><span class="lineno">10090</span> </div>
|
|
<div class="line"><a id="l10091" name="l10091"></a><span class="lineno">10091</span> </div>
|
|
<div class="line"><a id="l10092" name="l10092"></a><span class="lineno">10092</span> <span class="keyword">struct </span>ReporterDescription {</div>
|
|
<div class="line"><a id="l10093" name="l10093"></a><span class="lineno">10093</span> std::string name, description;</div>
|
|
<div class="line"><a id="l10094" name="l10094"></a><span class="lineno">10094</span> };</div>
|
|
<div class="line"><a id="l10095" name="l10095"></a><span class="lineno">10095</span> <span class="keyword">struct </span>ListenerDescription {</div>
|
|
<div class="line"><a id="l10096" name="l10096"></a><span class="lineno">10096</span> StringRef name;</div>
|
|
<div class="line"><a id="l10097" name="l10097"></a><span class="lineno">10097</span> std::string description;</div>
|
|
<div class="line"><a id="l10098" name="l10098"></a><span class="lineno">10098</span> };</div>
|
|
<div class="line"><a id="l10099" name="l10099"></a><span class="lineno">10099</span> </div>
|
|
<div class="line"><a id="l10100" name="l10100"></a><span class="lineno">10100</span> <span class="keyword">struct </span>TagInfo {</div>
|
|
<div class="line"><a id="l10101" name="l10101"></a><span class="lineno">10101</span> <span class="keywordtype">void</span> add(StringRef spelling);</div>
|
|
<div class="line"><a id="l10102" name="l10102"></a><span class="lineno">10102</span> std::string all() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10103" name="l10103"></a><span class="lineno">10103</span> </div>
|
|
<div class="line"><a id="l10104" name="l10104"></a><span class="lineno">10104</span> std::set<StringRef> spellings;</div>
|
|
<div class="line"><a id="l10105" name="l10105"></a><span class="lineno">10105</span> std::size_t count = 0;</div>
|
|
<div class="line"><a id="l10106" name="l10106"></a><span class="lineno">10106</span> };</div>
|
|
<div class="line"><a id="l10107" name="l10107"></a><span class="lineno">10107</span> </div>
|
|
<div class="line"><a id="l10108" name="l10108"></a><span class="lineno">10108</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a11c40de0d3593160a350d9e4323311b2">list</a>( IEventListener& reporter, Config <span class="keyword">const</span>& config );</div>
|
|
<div class="line"><a id="l10109" name="l10109"></a><span class="lineno">10109</span> </div>
|
|
<div class="line"><a id="l10110" name="l10110"></a><span class="lineno">10110</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10111" name="l10111"></a><span class="lineno">10111</span> </div>
|
|
<div class="line"><a id="l10112" name="l10112"></a><span class="lineno">10112</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_LIST_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10113" name="l10113"></a><span class="lineno">10113</span> </div>
|
|
<div class="line"><a id="l10114" name="l10114"></a><span class="lineno">10114</span> </div>
|
|
<div class="line"><a id="l10115" name="l10115"></a><span class="lineno">10115</span><span class="preprocessor">#ifndef CATCH_OUTPUT_REDIRECT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10116" name="l10116"></a><span class="lineno">10116</span><span class="preprocessor">#define CATCH_OUTPUT_REDIRECT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10117" name="l10117"></a><span class="lineno">10117</span> </div>
|
|
<div class="line"><a id="l10118" name="l10118"></a><span class="lineno">10118</span> </div>
|
|
<div class="line"><a id="l10119" name="l10119"></a><span class="lineno">10119</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l10120" name="l10120"></a><span class="lineno">10120</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10121" name="l10121"></a><span class="lineno">10121</span> </div>
|
|
<div class="line"><a id="l10122" name="l10122"></a><span class="lineno">10122</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10123" name="l10123"></a><span class="lineno">10123</span> </div>
|
|
<div class="line"><a id="l10124" name="l10124"></a><span class="lineno">10124</span> <span class="keyword">class </span>OutputRedirect {</div>
|
|
<div class="line"><a id="l10125" name="l10125"></a><span class="lineno">10125</span> <span class="keywordtype">bool</span> m_redirectActive = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10126" name="l10126"></a><span class="lineno">10126</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> activateImpl() = 0;</div>
|
|
<div class="line"><a id="l10127" name="l10127"></a><span class="lineno">10127</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> deactivateImpl() = 0;</div>
|
|
<div class="line"><a id="l10128" name="l10128"></a><span class="lineno">10128</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10129" name="l10129"></a><span class="lineno">10129</span> <span class="keyword">enum</span> Kind {</div>
|
|
<div class="line"><a id="l10131" name="l10131"></a><span class="lineno">10131</span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a>,</div>
|
|
<div class="line"><a id="l10133" name="l10133"></a><span class="lineno">10133</span> Streams,</div>
|
|
<div class="line"><a id="l10135" name="l10135"></a><span class="lineno">10135</span> FileDescriptors,</div>
|
|
<div class="line"><a id="l10136" name="l10136"></a><span class="lineno">10136</span> };</div>
|
|
<div class="line"><a id="l10137" name="l10137"></a><span class="lineno">10137</span> </div>
|
|
<div class="line"><a id="l10138" name="l10138"></a><span class="lineno">10138</span> <span class="keyword">virtual</span> ~OutputRedirect(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l10139" name="l10139"></a><span class="lineno">10139</span> </div>
|
|
<div class="line"><a id="l10140" name="l10140"></a><span class="lineno">10140</span> <span class="comment">// TODO: Do we want to check that redirect is not active before retrieving the output?</span></div>
|
|
<div class="line"><a id="l10141" name="l10141"></a><span class="lineno">10141</span> <span class="keyword">virtual</span> std::string getStdout() = 0;</div>
|
|
<div class="line"><a id="l10142" name="l10142"></a><span class="lineno">10142</span> <span class="keyword">virtual</span> std::string getStderr() = 0;</div>
|
|
<div class="line"><a id="l10143" name="l10143"></a><span class="lineno">10143</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearBuffers() = 0;</div>
|
|
<div class="line"><a id="l10144" name="l10144"></a><span class="lineno">10144</span> <span class="keywordtype">bool</span> isActive()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_redirectActive; }</div>
|
|
<div class="line"><a id="l10145" name="l10145"></a><span class="lineno">10145</span> <span class="keywordtype">void</span> activate() {</div>
|
|
<div class="line"><a id="l10146" name="l10146"></a><span class="lineno">10146</span> assert( !m_redirectActive && <span class="stringliteral">"redirect is already active"</span> );</div>
|
|
<div class="line"><a id="l10147" name="l10147"></a><span class="lineno">10147</span> activateImpl();</div>
|
|
<div class="line"><a id="l10148" name="l10148"></a><span class="lineno">10148</span> m_redirectActive = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l10149" name="l10149"></a><span class="lineno">10149</span> }</div>
|
|
<div class="line"><a id="l10150" name="l10150"></a><span class="lineno">10150</span> <span class="keywordtype">void</span> deactivate() {</div>
|
|
<div class="line"><a id="l10151" name="l10151"></a><span class="lineno">10151</span> assert( m_redirectActive && <span class="stringliteral">"redirect is not active"</span> );</div>
|
|
<div class="line"><a id="l10152" name="l10152"></a><span class="lineno">10152</span> deactivateImpl();</div>
|
|
<div class="line"><a id="l10153" name="l10153"></a><span class="lineno">10153</span> m_redirectActive = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10154" name="l10154"></a><span class="lineno">10154</span> }</div>
|
|
<div class="line"><a id="l10155" name="l10155"></a><span class="lineno">10155</span> };</div>
|
|
<div class="line"><a id="l10156" name="l10156"></a><span class="lineno">10156</span> </div>
|
|
<div class="line"><a id="l10157" name="l10157"></a><span class="lineno">10157</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a73b1b55bbb03be501419181d88db9c6f">isRedirectAvailable</a>( OutputRedirect::Kind kind);</div>
|
|
<div class="line"><a id="l10158" name="l10158"></a><span class="lineno">10158</span> Detail::unique_ptr<OutputRedirect> <a class="code hl_function" href="namespaceCatch.html#ae9831933e640b35f907975c129f4763f">makeOutputRedirect</a>( <span class="keywordtype">bool</span> actual );</div>
|
|
<div class="line"><a id="l10159" name="l10159"></a><span class="lineno">10159</span> </div>
|
|
<div class="line"><a id="l10160" name="l10160"></a><span class="lineno">10160</span> <span class="keyword">class </span>RedirectGuard {</div>
|
|
<div class="line"><a id="l10161" name="l10161"></a><span class="lineno">10161</span> OutputRedirect* m_redirect;</div>
|
|
<div class="line"><a id="l10162" name="l10162"></a><span class="lineno">10162</span> <span class="keywordtype">bool</span> m_activate;</div>
|
|
<div class="line"><a id="l10163" name="l10163"></a><span class="lineno">10163</span> <span class="keywordtype">bool</span> m_previouslyActive;</div>
|
|
<div class="line"><a id="l10164" name="l10164"></a><span class="lineno">10164</span> <span class="keywordtype">bool</span> m_moved = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10165" name="l10165"></a><span class="lineno">10165</span> </div>
|
|
<div class="line"><a id="l10166" name="l10166"></a><span class="lineno">10166</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10167" name="l10167"></a><span class="lineno">10167</span> RedirectGuard( <span class="keywordtype">bool</span> activate, OutputRedirect& redirectImpl );</div>
|
|
<div class="line"><a id="l10168" name="l10168"></a><span class="lineno">10168</span> ~RedirectGuard() noexcept( false );</div>
|
|
<div class="line"><a id="l10169" name="l10169"></a><span class="lineno">10169</span> </div>
|
|
<div class="line"><a id="l10170" name="l10170"></a><span class="lineno">10170</span> RedirectGuard( RedirectGuard const& ) = delete;</div>
|
|
<div class="line"><a id="l10171" name="l10171"></a><span class="lineno">10171</span> RedirectGuard& operator=( RedirectGuard const& ) = delete;</div>
|
|
<div class="line"><a id="l10172" name="l10172"></a><span class="lineno">10172</span> </div>
|
|
<div class="line"><a id="l10173" name="l10173"></a><span class="lineno">10173</span> <span class="comment">// C++14 needs move-able guards to return them from functions</span></div>
|
|
<div class="line"><a id="l10174" name="l10174"></a><span class="lineno">10174</span> RedirectGuard( RedirectGuard&& rhs ) noexcept;</div>
|
|
<div class="line"><a id="l10175" name="l10175"></a><span class="lineno">10175</span> RedirectGuard& operator=( RedirectGuard&& rhs ) noexcept;</div>
|
|
<div class="line"><a id="l10176" name="l10176"></a><span class="lineno">10176</span> };</div>
|
|
<div class="line"><a id="l10177" name="l10177"></a><span class="lineno">10177</span> </div>
|
|
<div class="line"><a id="l10178" name="l10178"></a><span class="lineno">10178</span> RedirectGuard scopedActivate( OutputRedirect& redirectImpl );</div>
|
|
<div class="line"><a id="l10179" name="l10179"></a><span class="lineno">10179</span> RedirectGuard scopedDeactivate( OutputRedirect& redirectImpl );</div>
|
|
<div class="line"><a id="l10180" name="l10180"></a><span class="lineno">10180</span> </div>
|
|
<div class="line"><a id="l10181" name="l10181"></a><span class="lineno">10181</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10182" name="l10182"></a><span class="lineno">10182</span> </div>
|
|
<div class="line"><a id="l10183" name="l10183"></a><span class="lineno">10183</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_OUTPUT_REDIRECT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10184" name="l10184"></a><span class="lineno">10184</span> </div>
|
|
<div class="line"><a id="l10185" name="l10185"></a><span class="lineno">10185</span> </div>
|
|
<div class="line"><a id="l10186" name="l10186"></a><span class="lineno">10186</span><span class="preprocessor">#ifndef CATCH_PARSE_NUMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10187" name="l10187"></a><span class="lineno">10187</span><span class="preprocessor">#define CATCH_PARSE_NUMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10188" name="l10188"></a><span class="lineno">10188</span> </div>
|
|
<div class="line"><a id="l10189" name="l10189"></a><span class="lineno">10189</span> </div>
|
|
<div class="line"><a id="l10190" name="l10190"></a><span class="lineno">10190</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10191" name="l10191"></a><span class="lineno">10191</span> </div>
|
|
<div class="line"><a id="l10192" name="l10192"></a><span class="lineno">10192</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10193" name="l10193"></a><span class="lineno">10193</span></div>
|
|
<div class="line"><a id="l10200" name="l10200"></a><span class="lineno">10200</span> Optional<unsigned int> <a class="code hl_function" href="namespaceCatch.html#a369d3d53347e3c8da1d23ef64fa39daf">parseUInt</a>(std::string <span class="keyword">const</span>& input, <span class="keywordtype">int</span> base = 10);</div>
|
|
<div class="line"><a id="l10201" name="l10201"></a><span class="lineno">10201</span>}</div>
|
|
<div class="line"><a id="l10202" name="l10202"></a><span class="lineno">10202</span> </div>
|
|
<div class="line"><a id="l10203" name="l10203"></a><span class="lineno">10203</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_PARSE_NUMBERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10204" name="l10204"></a><span class="lineno">10204</span> </div>
|
|
<div class="line"><a id="l10205" name="l10205"></a><span class="lineno">10205</span> </div>
|
|
<div class="line"><a id="l10206" name="l10206"></a><span class="lineno">10206</span><span class="preprocessor">#ifndef CATCH_REPORTER_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10207" name="l10207"></a><span class="lineno">10207</span><span class="preprocessor">#define CATCH_REPORTER_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10208" name="l10208"></a><span class="lineno">10208</span> </div>
|
|
<div class="line"><a id="l10209" name="l10209"></a><span class="lineno">10209</span> </div>
|
|
<div class="line"><a id="l10210" name="l10210"></a><span class="lineno">10210</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l10211" name="l10211"></a><span class="lineno">10211</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10212" name="l10212"></a><span class="lineno">10212</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10213" name="l10213"></a><span class="lineno">10213</span> </div>
|
|
<div class="line"><a id="l10214" name="l10214"></a><span class="lineno">10214</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10215" name="l10215"></a><span class="lineno">10215</span> </div>
|
|
<div class="line"><a id="l10216" name="l10216"></a><span class="lineno">10216</span> <span class="keyword">class </span>IEventListener;</div>
|
|
<div class="line"><a id="l10217" name="l10217"></a><span class="lineno">10217</span> <span class="keyword">using </span>IEventListenerPtr = Detail::unique_ptr<IEventListener>;</div>
|
|
<div class="line"><a id="l10218" name="l10218"></a><span class="lineno">10218</span> <span class="keyword">class </span>IReporterFactory;</div>
|
|
<div class="line"><a id="l10219" name="l10219"></a><span class="lineno">10219</span> <span class="keyword">using </span><a class="code hl_typedef" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">IReporterFactoryPtr</a> = Detail::unique_ptr<IReporterFactory>;</div>
|
|
<div class="line"><a id="l10220" name="l10220"></a><span class="lineno">10220</span> <span class="keyword">struct </span>ReporterConfig;</div>
|
|
<div class="line"><a id="l10221" name="l10221"></a><span class="lineno">10221</span> <span class="keyword">class </span>EventListenerFactory;</div>
|
|
<div class="line"><a id="l10222" name="l10222"></a><span class="lineno">10222</span> </div>
|
|
<div class="line"><a id="l10223" name="l10223"></a><span class="lineno">10223</span> <span class="keyword">class </span>ReporterRegistry {</div>
|
|
<div class="line"><a id="l10224" name="l10224"></a><span class="lineno">10224</span> <span class="keyword">struct </span>ReporterRegistryImpl;</div>
|
|
<div class="line"><a id="l10225" name="l10225"></a><span class="lineno">10225</span> Detail::unique_ptr<ReporterRegistryImpl> m_impl;</div>
|
|
<div class="line"><a id="l10226" name="l10226"></a><span class="lineno">10226</span> </div>
|
|
<div class="line"><a id="l10227" name="l10227"></a><span class="lineno">10227</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10228" name="l10228"></a><span class="lineno">10228</span> ReporterRegistry();</div>
|
|
<div class="line"><a id="l10229" name="l10229"></a><span class="lineno">10229</span> ~ReporterRegistry(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l10230" name="l10230"></a><span class="lineno">10230</span> </div>
|
|
<div class="line"><a id="l10231" name="l10231"></a><span class="lineno">10231</span> IEventListenerPtr create( std::string <span class="keyword">const</span>& name,</div>
|
|
<div class="line"><a id="l10232" name="l10232"></a><span class="lineno">10232</span> ReporterConfig&& config ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10233" name="l10233"></a><span class="lineno">10233</span> </div>
|
|
<div class="line"><a id="l10234" name="l10234"></a><span class="lineno">10234</span> <span class="keywordtype">void</span> registerReporter( std::string <span class="keyword">const</span>& name,</div>
|
|
<div class="line"><a id="l10235" name="l10235"></a><span class="lineno">10235</span> IReporterFactoryPtr factory );</div>
|
|
<div class="line"><a id="l10236" name="l10236"></a><span class="lineno">10236</span> </div>
|
|
<div class="line"><a id="l10237" name="l10237"></a><span class="lineno">10237</span> <span class="keywordtype">void</span></div>
|
|
<div class="line"><a id="l10238" name="l10238"></a><span class="lineno">10238</span> registerListener( Detail::unique_ptr<EventListenerFactory> factory );</div>
|
|
<div class="line"><a id="l10239" name="l10239"></a><span class="lineno">10239</span> </div>
|
|
<div class="line"><a id="l10240" name="l10240"></a><span class="lineno">10240</span> std::map<std::string,</div>
|
|
<div class="line"><a id="l10241" name="l10241"></a><span class="lineno">10241</span> <a class="code hl_typedef" href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">IReporterFactoryPtr</a>,</div>
|
|
<div class="line"><a id="l10242" name="l10242"></a><span class="lineno">10242</span> Detail::CaseInsensitiveLess> <span class="keyword">const</span>&</div>
|
|
<div class="line"><a id="l10243" name="l10243"></a><span class="lineno">10243</span> getFactories() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10244" name="l10244"></a><span class="lineno">10244</span> </div>
|
|
<div class="line"><a id="l10245" name="l10245"></a><span class="lineno">10245</span> std::vector<Detail::unique_ptr<EventListenerFactory>> <span class="keyword">const</span>&</div>
|
|
<div class="line"><a id="l10246" name="l10246"></a><span class="lineno">10246</span> getListeners() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10247" name="l10247"></a><span class="lineno">10247</span> };</div>
|
|
<div class="line"><a id="l10248" name="l10248"></a><span class="lineno">10248</span> </div>
|
|
<div class="line"><a id="l10249" name="l10249"></a><span class="lineno">10249</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10250" name="l10250"></a><span class="lineno">10250</span> </div>
|
|
<div class="line"><a id="l10251" name="l10251"></a><span class="lineno">10251</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10252" name="l10252"></a><span class="lineno">10252</span> </div>
|
|
<div class="line"><a id="l10253" name="l10253"></a><span class="lineno">10253</span> </div>
|
|
<div class="line"><a id="l10254" name="l10254"></a><span class="lineno">10254</span><span class="preprocessor">#ifndef CATCH_RUN_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10255" name="l10255"></a><span class="lineno">10255</span><span class="preprocessor">#define CATCH_RUN_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10256" name="l10256"></a><span class="lineno">10256</span> </div>
|
|
<div class="line"><a id="l10257" name="l10257"></a><span class="lineno">10257</span> </div>
|
|
<div class="line"><a id="l10258" name="l10258"></a><span class="lineno">10258</span> </div>
|
|
<div class="line"><a id="l10259" name="l10259"></a><span class="lineno">10259</span><span class="preprocessor">#ifndef CATCH_TEST_CASE_TRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10260" name="l10260"></a><span class="lineno">10260</span><span class="preprocessor">#define CATCH_TEST_CASE_TRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10261" name="l10261"></a><span class="lineno">10261</span> </div>
|
|
<div class="line"><a id="l10262" name="l10262"></a><span class="lineno">10262</span> </div>
|
|
<div class="line"><a id="l10263" name="l10263"></a><span class="lineno">10263</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10264" name="l10264"></a><span class="lineno">10264</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10265" name="l10265"></a><span class="lineno">10265</span> </div>
|
|
<div class="line"><a id="l10266" name="l10266"></a><span class="lineno">10266</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10267" name="l10267"></a><span class="lineno">10267</span><span class="keyword">namespace </span>TestCaseTracking {</div>
|
|
<div class="line"><a id="l10268" name="l10268"></a><span class="lineno">10268</span> </div>
|
|
<div class="line"><a id="l10269" name="l10269"></a><span class="lineno">10269</span> <span class="keyword">struct </span>NameAndLocation {</div>
|
|
<div class="line"><a id="l10270" name="l10270"></a><span class="lineno">10270</span> std::string name;</div>
|
|
<div class="line"><a id="l10271" name="l10271"></a><span class="lineno">10271</span> SourceLineInfo location;</div>
|
|
<div class="line"><a id="l10272" name="l10272"></a><span class="lineno">10272</span> </div>
|
|
<div class="line"><a id="l10273" name="l10273"></a><span class="lineno">10273</span> NameAndLocation( std::string&& _name, SourceLineInfo <span class="keyword">const</span>& _location );</div>
|
|
<div class="line"><a id="l10274" name="l10274"></a><span class="lineno">10274</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>(NameAndLocation <span class="keyword">const</span>& lhs, NameAndLocation <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l10275" name="l10275"></a><span class="lineno">10275</span> <span class="comment">// This is a very cheap check that should have a very high hit rate.</span></div>
|
|
<div class="line"><a id="l10276" name="l10276"></a><span class="lineno">10276</span> <span class="comment">// If we get to SourceLineInfo::operator==, we will redo it, but the</span></div>
|
|
<div class="line"><a id="l10277" name="l10277"></a><span class="lineno">10277</span> <span class="comment">// cost of repeating is trivial at that point (we will be paying</span></div>
|
|
<div class="line"><a id="l10278" name="l10278"></a><span class="lineno">10278</span> <span class="comment">// multiple strcmp/memcmps at that point).</span></div>
|
|
<div class="line"><a id="l10279" name="l10279"></a><span class="lineno">10279</span> <span class="keywordflow">if</span> ( lhs.location.line != rhs.location.line ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l10280" name="l10280"></a><span class="lineno">10280</span> <span class="keywordflow">return</span> lhs.name == rhs.name && lhs.location == rhs.location;</div>
|
|
<div class="line"><a id="l10281" name="l10281"></a><span class="lineno">10281</span> }</div>
|
|
<div class="line"><a id="l10282" name="l10282"></a><span class="lineno">10282</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">operator!=</a>(NameAndLocation <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l10283" name="l10283"></a><span class="lineno">10283</span> NameAndLocation <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l10284" name="l10284"></a><span class="lineno">10284</span> <span class="keywordflow">return</span> !( lhs == rhs );</div>
|
|
<div class="line"><a id="l10285" name="l10285"></a><span class="lineno">10285</span> }</div>
|
|
<div class="line"><a id="l10286" name="l10286"></a><span class="lineno">10286</span> };</div>
|
|
<div class="line"><a id="l10287" name="l10287"></a><span class="lineno">10287</span></div>
|
|
<div class="line"><a id="l10295" name="l10295"></a><span class="lineno">10295</span> <span class="keyword">struct </span>NameAndLocationRef {</div>
|
|
<div class="line"><a id="l10296" name="l10296"></a><span class="lineno">10296</span> StringRef name;</div>
|
|
<div class="line"><a id="l10297" name="l10297"></a><span class="lineno">10297</span> SourceLineInfo location;</div>
|
|
<div class="line"><a id="l10298" name="l10298"></a><span class="lineno">10298</span> </div>
|
|
<div class="line"><a id="l10299" name="l10299"></a><span class="lineno">10299</span> <span class="keyword">constexpr</span> NameAndLocationRef( StringRef name_,</div>
|
|
<div class="line"><a id="l10300" name="l10300"></a><span class="lineno">10300</span> SourceLineInfo location_ ):</div>
|
|
<div class="line"><a id="l10301" name="l10301"></a><span class="lineno">10301</span> name( name_ ), location( location_ ) {}</div>
|
|
<div class="line"><a id="l10302" name="l10302"></a><span class="lineno">10302</span> </div>
|
|
<div class="line"><a id="l10303" name="l10303"></a><span class="lineno">10303</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( NameAndLocation <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l10304" name="l10304"></a><span class="lineno">10304</span> NameAndLocationRef <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l10305" name="l10305"></a><span class="lineno">10305</span> <span class="comment">// This is a very cheap check that should have a very high hit rate.</span></div>
|
|
<div class="line"><a id="l10306" name="l10306"></a><span class="lineno">10306</span> <span class="comment">// If we get to SourceLineInfo::operator==, we will redo it, but the</span></div>
|
|
<div class="line"><a id="l10307" name="l10307"></a><span class="lineno">10307</span> <span class="comment">// cost of repeating is trivial at that point (we will be paying</span></div>
|
|
<div class="line"><a id="l10308" name="l10308"></a><span class="lineno">10308</span> <span class="comment">// multiple strcmp/memcmps at that point).</span></div>
|
|
<div class="line"><a id="l10309" name="l10309"></a><span class="lineno">10309</span> <span class="keywordflow">if</span> ( lhs.location.line != rhs.location.line ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l10310" name="l10310"></a><span class="lineno">10310</span> <span class="keywordflow">return</span> StringRef( lhs.name ) == rhs.name &&</div>
|
|
<div class="line"><a id="l10311" name="l10311"></a><span class="lineno">10311</span> lhs.location == rhs.location;</div>
|
|
<div class="line"><a id="l10312" name="l10312"></a><span class="lineno">10312</span> }</div>
|
|
<div class="line"><a id="l10313" name="l10313"></a><span class="lineno">10313</span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( NameAndLocationRef <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l10314" name="l10314"></a><span class="lineno">10314</span> NameAndLocation <span class="keyword">const</span>& rhs ) {</div>
|
|
<div class="line"><a id="l10315" name="l10315"></a><span class="lineno">10315</span> <span class="keywordflow">return</span> rhs == lhs;</div>
|
|
<div class="line"><a id="l10316" name="l10316"></a><span class="lineno">10316</span> }</div>
|
|
<div class="line"><a id="l10317" name="l10317"></a><span class="lineno">10317</span> };</div>
|
|
<div class="line"><a id="l10318" name="l10318"></a><span class="lineno">10318</span> </div>
|
|
<div class="line"><a id="l10319" name="l10319"></a><span class="lineno">10319</span> <span class="keyword">class </span>ITracker;</div>
|
|
<div class="line"><a id="l10320" name="l10320"></a><span class="lineno">10320</span> </div>
|
|
<div class="line"><a id="l10321" name="l10321"></a><span class="lineno">10321</span> <span class="keyword">using </span>ITrackerPtr = Catch::Detail::unique_ptr<ITracker>;</div>
|
|
<div class="line"><a id="l10322" name="l10322"></a><span class="lineno">10322</span> </div>
|
|
<div class="line"><a id="l10323" name="l10323"></a><span class="lineno">10323</span> <span class="keyword">class </span>ITracker {</div>
|
|
<div class="line"><a id="l10324" name="l10324"></a><span class="lineno">10324</span> NameAndLocation m_nameAndLocation;</div>
|
|
<div class="line"><a id="l10325" name="l10325"></a><span class="lineno">10325</span> </div>
|
|
<div class="line"><a id="l10326" name="l10326"></a><span class="lineno">10326</span> <span class="keyword">using </span>Children = std::vector<ITrackerPtr>;</div>
|
|
<div class="line"><a id="l10327" name="l10327"></a><span class="lineno">10327</span> </div>
|
|
<div class="line"><a id="l10328" name="l10328"></a><span class="lineno">10328</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l10329" name="l10329"></a><span class="lineno">10329</span> <span class="keyword">enum</span> CycleState {</div>
|
|
<div class="line"><a id="l10330" name="l10330"></a><span class="lineno">10330</span> NotStarted,</div>
|
|
<div class="line"><a id="l10331" name="l10331"></a><span class="lineno">10331</span> Executing,</div>
|
|
<div class="line"><a id="l10332" name="l10332"></a><span class="lineno">10332</span> ExecutingChildren,</div>
|
|
<div class="line"><a id="l10333" name="l10333"></a><span class="lineno">10333</span> NeedsAnotherRun,</div>
|
|
<div class="line"><a id="l10334" name="l10334"></a><span class="lineno">10334</span> CompletedSuccessfully,</div>
|
|
<div class="line"><a id="l10335" name="l10335"></a><span class="lineno">10335</span> Failed</div>
|
|
<div class="line"><a id="l10336" name="l10336"></a><span class="lineno">10336</span> };</div>
|
|
<div class="line"><a id="l10337" name="l10337"></a><span class="lineno">10337</span> </div>
|
|
<div class="line"><a id="l10338" name="l10338"></a><span class="lineno">10338</span> ITracker* m_parent = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10339" name="l10339"></a><span class="lineno">10339</span> Children m_children;</div>
|
|
<div class="line"><a id="l10340" name="l10340"></a><span class="lineno">10340</span> CycleState m_runState = NotStarted;</div>
|
|
<div class="line"><a id="l10341" name="l10341"></a><span class="lineno">10341</span> </div>
|
|
<div class="line"><a id="l10342" name="l10342"></a><span class="lineno">10342</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10343" name="l10343"></a><span class="lineno">10343</span> ITracker( NameAndLocation&& nameAndLoc, ITracker* parent ):</div>
|
|
<div class="line"><a id="l10344" name="l10344"></a><span class="lineno">10344</span> m_nameAndLocation( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(nameAndLoc) ),</div>
|
|
<div class="line"><a id="l10345" name="l10345"></a><span class="lineno">10345</span> m_parent( parent )</div>
|
|
<div class="line"><a id="l10346" name="l10346"></a><span class="lineno">10346</span> {}</div>
|
|
<div class="line"><a id="l10347" name="l10347"></a><span class="lineno">10347</span> </div>
|
|
<div class="line"><a id="l10348" name="l10348"></a><span class="lineno">10348</span> </div>
|
|
<div class="line"><a id="l10349" name="l10349"></a><span class="lineno">10349</span> <span class="comment">// static queries</span></div>
|
|
<div class="line"><a id="l10350" name="l10350"></a><span class="lineno">10350</span> NameAndLocation <span class="keyword">const</span>& nameAndLocation()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l10351" name="l10351"></a><span class="lineno">10351</span> <span class="keywordflow">return</span> m_nameAndLocation;</div>
|
|
<div class="line"><a id="l10352" name="l10352"></a><span class="lineno">10352</span> }</div>
|
|
<div class="line"><a id="l10353" name="l10353"></a><span class="lineno">10353</span> ITracker* parent()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l10354" name="l10354"></a><span class="lineno">10354</span> <span class="keywordflow">return</span> m_parent;</div>
|
|
<div class="line"><a id="l10355" name="l10355"></a><span class="lineno">10355</span> }</div>
|
|
<div class="line"><a id="l10356" name="l10356"></a><span class="lineno">10356</span> </div>
|
|
<div class="line"><a id="l10357" name="l10357"></a><span class="lineno">10357</span> <span class="keyword">virtual</span> ~ITracker(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l10358" name="l10358"></a><span class="lineno">10358</span> </div>
|
|
<div class="line"><a id="l10359" name="l10359"></a><span class="lineno">10359</span> </div>
|
|
<div class="line"><a id="l10360" name="l10360"></a><span class="lineno">10360</span> <span class="comment">// dynamic queries</span></div>
|
|
<div class="line"><a id="l10361" name="l10361"></a><span class="lineno">10361</span></div>
|
|
<div class="line"><a id="l10363" name="l10363"></a><span class="lineno">10363</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isComplete() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l10365" name="l10365"></a><span class="lineno">10365</span> <span class="keywordtype">bool</span> isSuccessfullyCompleted()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l10366" name="l10366"></a><span class="lineno">10366</span> <span class="keywordflow">return</span> m_runState == CompletedSuccessfully;</div>
|
|
<div class="line"><a id="l10367" name="l10367"></a><span class="lineno">10367</span> }</div>
|
|
<div class="line"><a id="l10369" name="l10369"></a><span class="lineno">10369</span> <span class="keywordtype">bool</span> isOpen() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10371" name="l10371"></a><span class="lineno">10371</span> <span class="keywordtype">bool</span> hasStarted() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10372" name="l10372"></a><span class="lineno">10372</span> </div>
|
|
<div class="line"><a id="l10373" name="l10373"></a><span class="lineno">10373</span> <span class="comment">// actions</span></div>
|
|
<div class="line"><a id="l10374" name="l10374"></a><span class="lineno">10374</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacematplotlibcpp.html#a62aaaf872c41a9d1b71add44c0cc0447">close</a>() = 0; <span class="comment">// Successfully complete</span></div>
|
|
<div class="line"><a id="l10375" name="l10375"></a><span class="lineno">10375</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fail() = 0;</div>
|
|
<div class="line"><a id="l10376" name="l10376"></a><span class="lineno">10376</span> <span class="keywordtype">void</span> markAsNeedingAnotherRun();</div>
|
|
<div class="line"><a id="l10377" name="l10377"></a><span class="lineno">10377</span></div>
|
|
<div class="line"><a id="l10379" name="l10379"></a><span class="lineno">10379</span> <span class="keywordtype">void</span> addChild( ITrackerPtr&& child );</div>
|
|
<div class="line"><a id="l10385" name="l10385"></a><span class="lineno">10385</span> ITracker* findChild( NameAndLocationRef <span class="keyword">const</span>& nameAndLocation );</div>
|
|
<div class="line"><a id="l10387" name="l10387"></a><span class="lineno">10387</span> <span class="keywordtype">bool</span> hasChildren()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l10388" name="l10388"></a><span class="lineno">10388</span> <span class="keywordflow">return</span> !m_children.empty();</div>
|
|
<div class="line"><a id="l10389" name="l10389"></a><span class="lineno">10389</span> }</div>
|
|
<div class="line"><a id="l10390" name="l10390"></a><span class="lineno">10390</span> </div>
|
|
<div class="line"><a id="l10391" name="l10391"></a><span class="lineno">10391</span></div>
|
|
<div class="line"><a id="l10393" name="l10393"></a><span class="lineno">10393</span> <span class="keywordtype">void</span> openChild();</div>
|
|
<div class="line"><a id="l10394" name="l10394"></a><span class="lineno">10394</span></div>
|
|
<div class="line"><a id="l10401" name="l10401"></a><span class="lineno">10401</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSectionTracker() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10408" name="l10408"></a><span class="lineno">10408</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isGeneratorTracker() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10409" name="l10409"></a><span class="lineno">10409</span> };</div>
|
|
<div class="line"><a id="l10410" name="l10410"></a><span class="lineno">10410</span> </div>
|
|
<div class="line"><a id="l10411" name="l10411"></a><span class="lineno">10411</span> <span class="keyword">class </span>TrackerContext {</div>
|
|
<div class="line"><a id="l10412" name="l10412"></a><span class="lineno">10412</span> </div>
|
|
<div class="line"><a id="l10413" name="l10413"></a><span class="lineno">10413</span> <span class="keyword">enum</span> RunState {</div>
|
|
<div class="line"><a id="l10414" name="l10414"></a><span class="lineno">10414</span> NotStarted,</div>
|
|
<div class="line"><a id="l10415" name="l10415"></a><span class="lineno">10415</span> Executing,</div>
|
|
<div class="line"><a id="l10416" name="l10416"></a><span class="lineno">10416</span> CompletedCycle</div>
|
|
<div class="line"><a id="l10417" name="l10417"></a><span class="lineno">10417</span> };</div>
|
|
<div class="line"><a id="l10418" name="l10418"></a><span class="lineno">10418</span> </div>
|
|
<div class="line"><a id="l10419" name="l10419"></a><span class="lineno">10419</span> ITrackerPtr m_rootTracker;</div>
|
|
<div class="line"><a id="l10420" name="l10420"></a><span class="lineno">10420</span> ITracker* m_currentTracker = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10421" name="l10421"></a><span class="lineno">10421</span> RunState m_runState = NotStarted;</div>
|
|
<div class="line"><a id="l10422" name="l10422"></a><span class="lineno">10422</span> </div>
|
|
<div class="line"><a id="l10423" name="l10423"></a><span class="lineno">10423</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10424" name="l10424"></a><span class="lineno">10424</span> </div>
|
|
<div class="line"><a id="l10425" name="l10425"></a><span class="lineno">10425</span> ITracker& startRun();</div>
|
|
<div class="line"><a id="l10426" name="l10426"></a><span class="lineno">10426</span> </div>
|
|
<div class="line"><a id="l10427" name="l10427"></a><span class="lineno">10427</span> <span class="keywordtype">void</span> startCycle() {</div>
|
|
<div class="line"><a id="l10428" name="l10428"></a><span class="lineno">10428</span> m_currentTracker = m_rootTracker.get();</div>
|
|
<div class="line"><a id="l10429" name="l10429"></a><span class="lineno">10429</span> m_runState = Executing;</div>
|
|
<div class="line"><a id="l10430" name="l10430"></a><span class="lineno">10430</span> }</div>
|
|
<div class="line"><a id="l10431" name="l10431"></a><span class="lineno">10431</span> <span class="keywordtype">void</span> completeCycle();</div>
|
|
<div class="line"><a id="l10432" name="l10432"></a><span class="lineno">10432</span> </div>
|
|
<div class="line"><a id="l10433" name="l10433"></a><span class="lineno">10433</span> <span class="keywordtype">bool</span> completedCycle() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10434" name="l10434"></a><span class="lineno">10434</span> ITracker& currentTracker() { <span class="keywordflow">return</span> *m_currentTracker; }</div>
|
|
<div class="line"><a id="l10435" name="l10435"></a><span class="lineno">10435</span> <span class="keywordtype">void</span> setCurrentTracker( ITracker* tracker );</div>
|
|
<div class="line"><a id="l10436" name="l10436"></a><span class="lineno">10436</span> };</div>
|
|
<div class="line"><a id="l10437" name="l10437"></a><span class="lineno">10437</span> </div>
|
|
<div class="line"><a id="l10438" name="l10438"></a><span class="lineno">10438</span> <span class="keyword">class </span>TrackerBase : <span class="keyword">public</span> ITracker {</div>
|
|
<div class="line"><a id="l10439" name="l10439"></a><span class="lineno">10439</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l10440" name="l10440"></a><span class="lineno">10440</span> </div>
|
|
<div class="line"><a id="l10441" name="l10441"></a><span class="lineno">10441</span> TrackerContext& m_ctx;</div>
|
|
<div class="line"><a id="l10442" name="l10442"></a><span class="lineno">10442</span> </div>
|
|
<div class="line"><a id="l10443" name="l10443"></a><span class="lineno">10443</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10444" name="l10444"></a><span class="lineno">10444</span> TrackerBase( NameAndLocation&& nameAndLocation, TrackerContext& ctx, ITracker* parent );</div>
|
|
<div class="line"><a id="l10445" name="l10445"></a><span class="lineno">10445</span> </div>
|
|
<div class="line"><a id="l10446" name="l10446"></a><span class="lineno">10446</span> <span class="keywordtype">bool</span> isComplete() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10447" name="l10447"></a><span class="lineno">10447</span> </div>
|
|
<div class="line"><a id="l10448" name="l10448"></a><span class="lineno">10448</span> <span class="keywordtype">void</span> open();</div>
|
|
<div class="line"><a id="l10449" name="l10449"></a><span class="lineno">10449</span> </div>
|
|
<div class="line"><a id="l10450" name="l10450"></a><span class="lineno">10450</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacematplotlibcpp.html#a62aaaf872c41a9d1b71add44c0cc0447">close</a>() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10451" name="l10451"></a><span class="lineno">10451</span> <span class="keywordtype">void</span> fail() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10452" name="l10452"></a><span class="lineno">10452</span> </div>
|
|
<div class="line"><a id="l10453" name="l10453"></a><span class="lineno">10453</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10454" name="l10454"></a><span class="lineno">10454</span> <span class="keywordtype">void</span> moveToParent();</div>
|
|
<div class="line"><a id="l10455" name="l10455"></a><span class="lineno">10455</span> <span class="keywordtype">void</span> moveToThis();</div>
|
|
<div class="line"><a id="l10456" name="l10456"></a><span class="lineno">10456</span> };</div>
|
|
<div class="line"><a id="l10457" name="l10457"></a><span class="lineno">10457</span> </div>
|
|
<div class="line"><a id="l10458" name="l10458"></a><span class="lineno">10458</span> <span class="keyword">class </span>SectionTracker : <span class="keyword">public</span> TrackerBase {</div>
|
|
<div class="line"><a id="l10459" name="l10459"></a><span class="lineno">10459</span> std::vector<StringRef> m_filters;</div>
|
|
<div class="line"><a id="l10460" name="l10460"></a><span class="lineno">10460</span> <span class="comment">// Note that lifetime-wise we piggy back off the name stored in the `ITracker` parent`.</span></div>
|
|
<div class="line"><a id="l10461" name="l10461"></a><span class="lineno">10461</span> <span class="comment">// Currently it allocates owns the name, so this is safe. If it is later refactored</span></div>
|
|
<div class="line"><a id="l10462" name="l10462"></a><span class="lineno">10462</span> <span class="comment">// to not own the name, the name still has to outlive the `ITracker` parent, so</span></div>
|
|
<div class="line"><a id="l10463" name="l10463"></a><span class="lineno">10463</span> <span class="comment">// this should still be safe.</span></div>
|
|
<div class="line"><a id="l10464" name="l10464"></a><span class="lineno">10464</span> StringRef m_trimmed_name;</div>
|
|
<div class="line"><a id="l10465" name="l10465"></a><span class="lineno">10465</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10466" name="l10466"></a><span class="lineno">10466</span> SectionTracker( NameAndLocation&& nameAndLocation, TrackerContext& ctx, ITracker* parent );</div>
|
|
<div class="line"><a id="l10467" name="l10467"></a><span class="lineno">10467</span> </div>
|
|
<div class="line"><a id="l10468" name="l10468"></a><span class="lineno">10468</span> <span class="keywordtype">bool</span> isSectionTracker() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10469" name="l10469"></a><span class="lineno">10469</span> </div>
|
|
<div class="line"><a id="l10470" name="l10470"></a><span class="lineno">10470</span> <span class="keywordtype">bool</span> isComplete() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10471" name="l10471"></a><span class="lineno">10471</span> </div>
|
|
<div class="line"><a id="l10472" name="l10472"></a><span class="lineno">10472</span> <span class="keyword">static</span> SectionTracker& acquire( TrackerContext& ctx, NameAndLocationRef <span class="keyword">const</span>& nameAndLocation );</div>
|
|
<div class="line"><a id="l10473" name="l10473"></a><span class="lineno">10473</span> </div>
|
|
<div class="line"><a id="l10474" name="l10474"></a><span class="lineno">10474</span> <span class="keywordtype">void</span> tryOpen();</div>
|
|
<div class="line"><a id="l10475" name="l10475"></a><span class="lineno">10475</span> </div>
|
|
<div class="line"><a id="l10476" name="l10476"></a><span class="lineno">10476</span> <span class="keywordtype">void</span> addInitialFilters( std::vector<std::string> <span class="keyword">const</span>& filters );</div>
|
|
<div class="line"><a id="l10477" name="l10477"></a><span class="lineno">10477</span> <span class="keywordtype">void</span> addNextFilters( std::vector<StringRef> <span class="keyword">const</span>& filters );</div>
|
|
<div class="line"><a id="l10479" name="l10479"></a><span class="lineno">10479</span> std::vector<StringRef> <span class="keyword">const</span>& getFilters()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_filters; }</div>
|
|
<div class="line"><a id="l10481" name="l10481"></a><span class="lineno">10481</span> StringRef trimmedName() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10482" name="l10482"></a><span class="lineno">10482</span> };</div>
|
|
<div class="line"><a id="l10483" name="l10483"></a><span class="lineno">10483</span> </div>
|
|
<div class="line"><a id="l10484" name="l10484"></a><span class="lineno">10484</span>} <span class="comment">// namespace TestCaseTracking</span></div>
|
|
<div class="line"><a id="l10485" name="l10485"></a><span class="lineno">10485</span> </div>
|
|
<div class="line"><a id="l10486" name="l10486"></a><span class="lineno">10486</span><span class="keyword">using </span>TestCaseTracking::ITracker;</div>
|
|
<div class="line"><a id="l10487" name="l10487"></a><span class="lineno">10487</span><span class="keyword">using </span>TestCaseTracking::TrackerContext;</div>
|
|
<div class="line"><a id="l10488" name="l10488"></a><span class="lineno">10488</span><span class="keyword">using </span>TestCaseTracking::SectionTracker;</div>
|
|
<div class="line"><a id="l10489" name="l10489"></a><span class="lineno">10489</span> </div>
|
|
<div class="line"><a id="l10490" name="l10490"></a><span class="lineno">10490</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10491" name="l10491"></a><span class="lineno">10491</span> </div>
|
|
<div class="line"><a id="l10492" name="l10492"></a><span class="lineno">10492</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_CASE_TRACKER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10493" name="l10493"></a><span class="lineno">10493</span> </div>
|
|
<div class="line"><a id="l10494" name="l10494"></a><span class="lineno">10494</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10495" name="l10495"></a><span class="lineno">10495</span> </div>
|
|
<div class="line"><a id="l10496" name="l10496"></a><span class="lineno">10496</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10497" name="l10497"></a><span class="lineno">10497</span> </div>
|
|
<div class="line"><a id="l10498" name="l10498"></a><span class="lineno">10498</span> <span class="keyword">class </span>IGeneratorTracker;</div>
|
|
<div class="line"><a id="l10499" name="l10499"></a><span class="lineno">10499</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l10500" name="l10500"></a><span class="lineno">10500</span> <span class="keyword">class </span>IEventListener;</div>
|
|
<div class="line"><a id="l10501" name="l10501"></a><span class="lineno">10501</span> <span class="keyword">using </span>IEventListenerPtr = Detail::unique_ptr<IEventListener>;</div>
|
|
<div class="line"><a id="l10502" name="l10502"></a><span class="lineno">10502</span> <span class="keyword">class </span>OutputRedirect;</div>
|
|
<div class="line"><a id="l10503" name="l10503"></a><span class="lineno">10503</span></div>
|
|
<div class="line"><a id="l10505" name="l10505"></a><span class="lineno">10505</span> </div>
|
|
<div class="line"><a id="l10506" name="l10506"></a><span class="lineno">10506</span> <span class="keyword">class </span>RunContext final : <span class="keyword">public</span> IResultCapture {</div>
|
|
<div class="line"><a id="l10507" name="l10507"></a><span class="lineno">10507</span> </div>
|
|
<div class="line"><a id="l10508" name="l10508"></a><span class="lineno">10508</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10509" name="l10509"></a><span class="lineno">10509</span> RunContext( RunContext <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l10510" name="l10510"></a><span class="lineno">10510</span> RunContext& operator =( RunContext <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l10511" name="l10511"></a><span class="lineno">10511</span> </div>
|
|
<div class="line"><a id="l10512" name="l10512"></a><span class="lineno">10512</span> <span class="keyword">explicit</span> RunContext( IConfig <span class="keyword">const</span>* _config, IEventListenerPtr&& reporter );</div>
|
|
<div class="line"><a id="l10513" name="l10513"></a><span class="lineno">10513</span> </div>
|
|
<div class="line"><a id="l10514" name="l10514"></a><span class="lineno">10514</span> ~RunContext() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10515" name="l10515"></a><span class="lineno">10515</span> </div>
|
|
<div class="line"><a id="l10516" name="l10516"></a><span class="lineno">10516</span> Totals runTest(TestCaseHandle <span class="keyword">const</span>& testCase);</div>
|
|
<div class="line"><a id="l10517" name="l10517"></a><span class="lineno">10517</span> </div>
|
|
<div class="line"><a id="l10518" name="l10518"></a><span class="lineno">10518</span> <span class="keyword">public</span>: <span class="comment">// IResultCapture</span></div>
|
|
<div class="line"><a id="l10519" name="l10519"></a><span class="lineno">10519</span> </div>
|
|
<div class="line"><a id="l10520" name="l10520"></a><span class="lineno">10520</span> <span class="comment">// Assertion handlers</span></div>
|
|
<div class="line"><a id="l10521" name="l10521"></a><span class="lineno">10521</span> <span class="keywordtype">void</span> handleExpr</div>
|
|
<div class="line"><a id="l10522" name="l10522"></a><span class="lineno">10522</span> ( AssertionInfo <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l10523" name="l10523"></a><span class="lineno">10523</span> ITransientExpression <span class="keyword">const</span>& expr,</div>
|
|
<div class="line"><a id="l10524" name="l10524"></a><span class="lineno">10524</span> AssertionReaction& reaction ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10525" name="l10525"></a><span class="lineno">10525</span> <span class="keywordtype">void</span> handleMessage</div>
|
|
<div class="line"><a id="l10526" name="l10526"></a><span class="lineno">10526</span> ( AssertionInfo <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l10527" name="l10527"></a><span class="lineno">10527</span> ResultWas::OfType resultType,</div>
|
|
<div class="line"><a id="l10528" name="l10528"></a><span class="lineno">10528</span> std::string&& message,</div>
|
|
<div class="line"><a id="l10529" name="l10529"></a><span class="lineno">10529</span> AssertionReaction& reaction ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10530" name="l10530"></a><span class="lineno">10530</span> <span class="keywordtype">void</span> handleUnexpectedExceptionNotThrown</div>
|
|
<div class="line"><a id="l10531" name="l10531"></a><span class="lineno">10531</span> ( AssertionInfo <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l10532" name="l10532"></a><span class="lineno">10532</span> AssertionReaction& reaction ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10533" name="l10533"></a><span class="lineno">10533</span> <span class="keywordtype">void</span> handleUnexpectedInflightException</div>
|
|
<div class="line"><a id="l10534" name="l10534"></a><span class="lineno">10534</span> ( AssertionInfo <span class="keyword">const</span>& info,</div>
|
|
<div class="line"><a id="l10535" name="l10535"></a><span class="lineno">10535</span> std::string&& message,</div>
|
|
<div class="line"><a id="l10536" name="l10536"></a><span class="lineno">10536</span> AssertionReaction& reaction ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10537" name="l10537"></a><span class="lineno">10537</span> <span class="keywordtype">void</span> handleIncomplete</div>
|
|
<div class="line"><a id="l10538" name="l10538"></a><span class="lineno">10538</span> ( AssertionInfo <span class="keyword">const</span>& info ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10539" name="l10539"></a><span class="lineno">10539</span> <span class="keywordtype">void</span> handleNonExpr</div>
|
|
<div class="line"><a id="l10540" name="l10540"></a><span class="lineno">10540</span> ( AssertionInfo <span class="keyword">const</span> &info,</div>
|
|
<div class="line"><a id="l10541" name="l10541"></a><span class="lineno">10541</span> ResultWas::OfType resultType,</div>
|
|
<div class="line"><a id="l10542" name="l10542"></a><span class="lineno">10542</span> AssertionReaction &reaction ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10543" name="l10543"></a><span class="lineno">10543</span> </div>
|
|
<div class="line"><a id="l10544" name="l10544"></a><span class="lineno">10544</span> <span class="keywordtype">void</span> notifyAssertionStarted( AssertionInfo <span class="keyword">const</span>& info ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10545" name="l10545"></a><span class="lineno">10545</span> <span class="keywordtype">bool</span> sectionStarted( StringRef sectionName,</div>
|
|
<div class="line"><a id="l10546" name="l10546"></a><span class="lineno">10546</span> SourceLineInfo <span class="keyword">const</span>& sectionLineInfo,</div>
|
|
<div class="line"><a id="l10547" name="l10547"></a><span class="lineno">10547</span> Counts& assertions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10548" name="l10548"></a><span class="lineno">10548</span> </div>
|
|
<div class="line"><a id="l10549" name="l10549"></a><span class="lineno">10549</span> <span class="keywordtype">void</span> sectionEnded( SectionEndInfo&& endInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10550" name="l10550"></a><span class="lineno">10550</span> <span class="keywordtype">void</span> sectionEndedEarly( SectionEndInfo&& endInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10551" name="l10551"></a><span class="lineno">10551</span> </div>
|
|
<div class="line"><a id="l10552" name="l10552"></a><span class="lineno">10552</span> IGeneratorTracker*</div>
|
|
<div class="line"><a id="l10553" name="l10553"></a><span class="lineno">10553</span> <a class="code hl_function" href="namespaceCatch_1_1Generators.html#ab0ad55177ac1e5f00b123909b191f436">acquireGeneratorTracker</a>( StringRef generatorName,</div>
|
|
<div class="line"><a id="l10554" name="l10554"></a><span class="lineno">10554</span> SourceLineInfo <span class="keyword">const</span>& lineInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10555" name="l10555"></a><span class="lineno">10555</span> IGeneratorTracker* <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a24e1bac2be5e078f26c395a96470b706">createGeneratorTracker</a>(</div>
|
|
<div class="line"><a id="l10556" name="l10556"></a><span class="lineno">10556</span> StringRef generatorName,</div>
|
|
<div class="line"><a id="l10557" name="l10557"></a><span class="lineno">10557</span> SourceLineInfo lineInfo,</div>
|
|
<div class="line"><a id="l10558" name="l10558"></a><span class="lineno">10558</span> Generators::GeneratorBasePtr&& generator ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10559" name="l10559"></a><span class="lineno">10559</span> </div>
|
|
<div class="line"><a id="l10560" name="l10560"></a><span class="lineno">10560</span> </div>
|
|
<div class="line"><a id="l10561" name="l10561"></a><span class="lineno">10561</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10562" name="l10562"></a><span class="lineno">10562</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& info ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10563" name="l10563"></a><span class="lineno">10563</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& stats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10564" name="l10564"></a><span class="lineno">10564</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10565" name="l10565"></a><span class="lineno">10565</span> </div>
|
|
<div class="line"><a id="l10566" name="l10566"></a><span class="lineno">10566</span> <span class="keywordtype">void</span> pushScopedMessage( MessageInfo <span class="keyword">const</span>& message ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10567" name="l10567"></a><span class="lineno">10567</span> <span class="keywordtype">void</span> popScopedMessage( MessageInfo <span class="keyword">const</span>& message ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10568" name="l10568"></a><span class="lineno">10568</span> </div>
|
|
<div class="line"><a id="l10569" name="l10569"></a><span class="lineno">10569</span> <span class="keywordtype">void</span> emplaceUnscopedMessage( MessageBuilder&& builder ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10570" name="l10570"></a><span class="lineno">10570</span> </div>
|
|
<div class="line"><a id="l10571" name="l10571"></a><span class="lineno">10571</span> std::string getCurrentTestName() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10572" name="l10572"></a><span class="lineno">10572</span> </div>
|
|
<div class="line"><a id="l10573" name="l10573"></a><span class="lineno">10573</span> <span class="keyword">const</span> AssertionResult* getLastResult() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10574" name="l10574"></a><span class="lineno">10574</span> </div>
|
|
<div class="line"><a id="l10575" name="l10575"></a><span class="lineno">10575</span> <span class="keywordtype">void</span> exceptionEarlyReported() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10576" name="l10576"></a><span class="lineno">10576</span> </div>
|
|
<div class="line"><a id="l10577" name="l10577"></a><span class="lineno">10577</span> <span class="keywordtype">void</span> handleFatalErrorCondition( StringRef message ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10578" name="l10578"></a><span class="lineno">10578</span> </div>
|
|
<div class="line"><a id="l10579" name="l10579"></a><span class="lineno">10579</span> <span class="keywordtype">bool</span> lastAssertionPassed() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10580" name="l10580"></a><span class="lineno">10580</span> </div>
|
|
<div class="line"><a id="l10581" name="l10581"></a><span class="lineno">10581</span> <span class="keywordtype">void</span> assertionPassed() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10582" name="l10582"></a><span class="lineno">10582</span> </div>
|
|
<div class="line"><a id="l10583" name="l10583"></a><span class="lineno">10583</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10584" name="l10584"></a><span class="lineno">10584</span> <span class="comment">// !TBD We need to do this another way!</span></div>
|
|
<div class="line"><a id="l10585" name="l10585"></a><span class="lineno">10585</span> <span class="keywordtype">bool</span> aborting() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10586" name="l10586"></a><span class="lineno">10586</span> </div>
|
|
<div class="line"><a id="l10587" name="l10587"></a><span class="lineno">10587</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10588" name="l10588"></a><span class="lineno">10588</span> </div>
|
|
<div class="line"><a id="l10589" name="l10589"></a><span class="lineno">10589</span> <span class="keywordtype">void</span> runCurrentTest();</div>
|
|
<div class="line"><a id="l10590" name="l10590"></a><span class="lineno">10590</span> <span class="keywordtype">void</span> invokeActiveTestCase();</div>
|
|
<div class="line"><a id="l10591" name="l10591"></a><span class="lineno">10591</span> </div>
|
|
<div class="line"><a id="l10592" name="l10592"></a><span class="lineno">10592</span> <span class="keywordtype">void</span> resetAssertionInfo();</div>
|
|
<div class="line"><a id="l10593" name="l10593"></a><span class="lineno">10593</span> <span class="keywordtype">bool</span> testForMissingAssertions( Counts& assertions );</div>
|
|
<div class="line"><a id="l10594" name="l10594"></a><span class="lineno">10594</span> </div>
|
|
<div class="line"><a id="l10595" name="l10595"></a><span class="lineno">10595</span> <span class="keywordtype">void</span> assertionEnded( AssertionResult&& result );</div>
|
|
<div class="line"><a id="l10596" name="l10596"></a><span class="lineno">10596</span> <span class="keywordtype">void</span> reportExpr</div>
|
|
<div class="line"><a id="l10597" name="l10597"></a><span class="lineno">10597</span> ( AssertionInfo <span class="keyword">const</span> &info,</div>
|
|
<div class="line"><a id="l10598" name="l10598"></a><span class="lineno">10598</span> ResultWas::OfType resultType,</div>
|
|
<div class="line"><a id="l10599" name="l10599"></a><span class="lineno">10599</span> ITransientExpression <span class="keyword">const</span> *expr,</div>
|
|
<div class="line"><a id="l10600" name="l10600"></a><span class="lineno">10600</span> <span class="keywordtype">bool</span> negated );</div>
|
|
<div class="line"><a id="l10601" name="l10601"></a><span class="lineno">10601</span> </div>
|
|
<div class="line"><a id="l10602" name="l10602"></a><span class="lineno">10602</span> <span class="keywordtype">void</span> populateReaction( AssertionReaction& reaction );</div>
|
|
<div class="line"><a id="l10603" name="l10603"></a><span class="lineno">10603</span> </div>
|
|
<div class="line"><a id="l10604" name="l10604"></a><span class="lineno">10604</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10605" name="l10605"></a><span class="lineno">10605</span> </div>
|
|
<div class="line"><a id="l10606" name="l10606"></a><span class="lineno">10606</span> <span class="keywordtype">void</span> handleUnfinishedSections();</div>
|
|
<div class="line"><a id="l10607" name="l10607"></a><span class="lineno">10607</span> </div>
|
|
<div class="line"><a id="l10608" name="l10608"></a><span class="lineno">10608</span> TestRunInfo m_runInfo;</div>
|
|
<div class="line"><a id="l10609" name="l10609"></a><span class="lineno">10609</span> TestCaseHandle <span class="keyword">const</span>* m_activeTestCase = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10610" name="l10610"></a><span class="lineno">10610</span> ITracker* m_testCaseTracker = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10611" name="l10611"></a><span class="lineno">10611</span> Optional<AssertionResult> m_lastResult;</div>
|
|
<div class="line"><a id="l10612" name="l10612"></a><span class="lineno">10612</span> </div>
|
|
<div class="line"><a id="l10613" name="l10613"></a><span class="lineno">10613</span> IConfig <span class="keyword">const</span>* m_config;</div>
|
|
<div class="line"><a id="l10614" name="l10614"></a><span class="lineno">10614</span> Totals m_totals;</div>
|
|
<div class="line"><a id="l10615" name="l10615"></a><span class="lineno">10615</span> IEventListenerPtr m_reporter;</div>
|
|
<div class="line"><a id="l10616" name="l10616"></a><span class="lineno">10616</span> std::vector<MessageInfo> m_messages;</div>
|
|
<div class="line"><a id="l10617" name="l10617"></a><span class="lineno">10617</span> std::vector<ScopedMessage> m_messageScopes; <span class="comment">/* Keeps owners of so-called unscoped messages. */</span></div>
|
|
<div class="line"><a id="l10618" name="l10618"></a><span class="lineno">10618</span> AssertionInfo m_lastAssertionInfo;</div>
|
|
<div class="line"><a id="l10619" name="l10619"></a><span class="lineno">10619</span> std::vector<SectionEndInfo> m_unfinishedSections;</div>
|
|
<div class="line"><a id="l10620" name="l10620"></a><span class="lineno">10620</span> std::vector<ITracker*> m_activeSections;</div>
|
|
<div class="line"><a id="l10621" name="l10621"></a><span class="lineno">10621</span> TrackerContext m_trackerContext;</div>
|
|
<div class="line"><a id="l10622" name="l10622"></a><span class="lineno">10622</span> Detail::unique_ptr<OutputRedirect> m_outputRedirect;</div>
|
|
<div class="line"><a id="l10623" name="l10623"></a><span class="lineno">10623</span> FatalConditionHandler m_fatalConditionhandler;</div>
|
|
<div class="line"><a id="l10624" name="l10624"></a><span class="lineno">10624</span> <span class="keywordtype">bool</span> m_lastAssertionPassed = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10625" name="l10625"></a><span class="lineno">10625</span> <span class="keywordtype">bool</span> m_shouldReportUnexpected = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l10626" name="l10626"></a><span class="lineno">10626</span> <span class="keywordtype">bool</span> m_includeSuccessfulResults;</div>
|
|
<div class="line"><a id="l10627" name="l10627"></a><span class="lineno">10627</span> };</div>
|
|
<div class="line"><a id="l10628" name="l10628"></a><span class="lineno">10628</span> </div>
|
|
<div class="line"><a id="l10629" name="l10629"></a><span class="lineno">10629</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a161400810eb0995394d6d8d3cae821ad">seedRng</a>(IConfig <span class="keyword">const</span>& config);</div>
|
|
<div class="line"><a id="l10630" name="l10630"></a><span class="lineno">10630</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceCatch.html#acf5ea05e942d2d7fe79111e12754ed76">rngSeed</a>();</div>
|
|
<div class="line"><a id="l10631" name="l10631"></a><span class="lineno">10631</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10632" name="l10632"></a><span class="lineno">10632</span> </div>
|
|
<div class="line"><a id="l10633" name="l10633"></a><span class="lineno">10633</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_RUN_CONTEXT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10634" name="l10634"></a><span class="lineno">10634</span> </div>
|
|
<div class="line"><a id="l10635" name="l10635"></a><span class="lineno">10635</span> </div>
|
|
<div class="line"><a id="l10636" name="l10636"></a><span class="lineno">10636</span><span class="preprocessor">#ifndef CATCH_SHARDING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10637" name="l10637"></a><span class="lineno">10637</span><span class="preprocessor">#define CATCH_SHARDING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10638" name="l10638"></a><span class="lineno">10638</span> </div>
|
|
<div class="line"><a id="l10639" name="l10639"></a><span class="lineno">10639</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l10640" name="l10640"></a><span class="lineno">10640</span><span class="preprocessor">#include <cmath></span></div>
|
|
<div class="line"><a id="l10641" name="l10641"></a><span class="lineno">10641</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l10642" name="l10642"></a><span class="lineno">10642</span> </div>
|
|
<div class="line"><a id="l10643" name="l10643"></a><span class="lineno">10643</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10644" name="l10644"></a><span class="lineno">10644</span> </div>
|
|
<div class="line"><a id="l10645" name="l10645"></a><span class="lineno">10645</span> <span class="keyword">template</span><<span class="keyword">typename</span> Container></div>
|
|
<div class="line"><a id="l10646" name="l10646"></a><span class="lineno">10646</span> Container createShard(Container <span class="keyword">const</span>& container, std::size_t <span class="keyword">const</span> shardCount, std::size_t <span class="keyword">const</span> shardIndex) {</div>
|
|
<div class="line"><a id="l10647" name="l10647"></a><span class="lineno">10647</span> assert(shardCount > shardIndex);</div>
|
|
<div class="line"><a id="l10648" name="l10648"></a><span class="lineno">10648</span> </div>
|
|
<div class="line"><a id="l10649" name="l10649"></a><span class="lineno">10649</span> <span class="keywordflow">if</span> (shardCount == 1) {</div>
|
|
<div class="line"><a id="l10650" name="l10650"></a><span class="lineno">10650</span> <span class="keywordflow">return</span> container;</div>
|
|
<div class="line"><a id="l10651" name="l10651"></a><span class="lineno">10651</span> }</div>
|
|
<div class="line"><a id="l10652" name="l10652"></a><span class="lineno">10652</span> </div>
|
|
<div class="line"><a id="l10653" name="l10653"></a><span class="lineno">10653</span> <span class="keyword">const</span> std::size_t totalTestCount = container.size();</div>
|
|
<div class="line"><a id="l10654" name="l10654"></a><span class="lineno">10654</span> </div>
|
|
<div class="line"><a id="l10655" name="l10655"></a><span class="lineno">10655</span> <span class="keyword">const</span> std::size_t shardSize = totalTestCount / shardCount;</div>
|
|
<div class="line"><a id="l10656" name="l10656"></a><span class="lineno">10656</span> <span class="keyword">const</span> std::size_t leftoverTests = totalTestCount % shardCount;</div>
|
|
<div class="line"><a id="l10657" name="l10657"></a><span class="lineno">10657</span> </div>
|
|
<div class="line"><a id="l10658" name="l10658"></a><span class="lineno">10658</span> <span class="keyword">const</span> std::size_t startIndex = shardIndex * shardSize + (std::min)(shardIndex, leftoverTests);</div>
|
|
<div class="line"><a id="l10659" name="l10659"></a><span class="lineno">10659</span> <span class="keyword">const</span> std::size_t endIndex = (shardIndex + 1) * shardSize + (std::min)(shardIndex + 1, leftoverTests);</div>
|
|
<div class="line"><a id="l10660" name="l10660"></a><span class="lineno">10660</span> </div>
|
|
<div class="line"><a id="l10661" name="l10661"></a><span class="lineno">10661</span> <span class="keyword">auto</span> startIterator = std::next(container.begin(), <span class="keyword">static_cast<</span>std::ptrdiff_t<span class="keyword">></span>(startIndex));</div>
|
|
<div class="line"><a id="l10662" name="l10662"></a><span class="lineno">10662</span> <span class="keyword">auto</span> endIterator = std::next(container.begin(), <span class="keyword">static_cast<</span>std::ptrdiff_t<span class="keyword">></span>(endIndex));</div>
|
|
<div class="line"><a id="l10663" name="l10663"></a><span class="lineno">10663</span> </div>
|
|
<div class="line"><a id="l10664" name="l10664"></a><span class="lineno">10664</span> <span class="keywordflow">return</span> Container(startIterator, endIterator);</div>
|
|
<div class="line"><a id="l10665" name="l10665"></a><span class="lineno">10665</span> }</div>
|
|
<div class="line"><a id="l10666" name="l10666"></a><span class="lineno">10666</span> </div>
|
|
<div class="line"><a id="l10667" name="l10667"></a><span class="lineno">10667</span>}</div>
|
|
<div class="line"><a id="l10668" name="l10668"></a><span class="lineno">10668</span> </div>
|
|
<div class="line"><a id="l10669" name="l10669"></a><span class="lineno">10669</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SHARDING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10670" name="l10670"></a><span class="lineno">10670</span> </div>
|
|
<div class="line"><a id="l10671" name="l10671"></a><span class="lineno">10671</span> </div>
|
|
<div class="line"><a id="l10672" name="l10672"></a><span class="lineno">10672</span><span class="preprocessor">#ifndef CATCH_SINGLETONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10673" name="l10673"></a><span class="lineno">10673</span><span class="preprocessor">#define CATCH_SINGLETONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10674" name="l10674"></a><span class="lineno">10674</span> </div>
|
|
<div class="line"><a id="l10675" name="l10675"></a><span class="lineno">10675</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10676" name="l10676"></a><span class="lineno">10676</span> </div>
|
|
<div class="line"><a id="l10677" name="l10677"></a><span class="lineno">10677</span> <span class="keyword">struct </span>ISingleton {</div>
|
|
<div class="line"><a id="l10678" name="l10678"></a><span class="lineno">10678</span> <span class="keyword">virtual</span> ~ISingleton(); <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l10679" name="l10679"></a><span class="lineno">10679</span> };</div>
|
|
<div class="line"><a id="l10680" name="l10680"></a><span class="lineno">10680</span> </div>
|
|
<div class="line"><a id="l10681" name="l10681"></a><span class="lineno">10681</span> </div>
|
|
<div class="line"><a id="l10682" name="l10682"></a><span class="lineno">10682</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a788ebefcd83342b7c479222a1eeffaee">addSingleton</a>( ISingleton* singleton );</div>
|
|
<div class="line"><a id="l10683" name="l10683"></a><span class="lineno">10683</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a8bdb92cb53a4e016bc0dee66efd99118">cleanupSingletons</a>();</div>
|
|
<div class="line"><a id="l10684" name="l10684"></a><span class="lineno">10684</span> </div>
|
|
<div class="line"><a id="l10685" name="l10685"></a><span class="lineno">10685</span> </div>
|
|
<div class="line"><a id="l10686" name="l10686"></a><span class="lineno">10686</span> <span class="keyword">template</span><<span class="keyword">typename</span> SingletonImplT, <span class="keyword">typename</span> InterfaceT = SingletonImplT, <span class="keyword">typename</span> MutableInterfaceT = InterfaceT></div>
|
|
<div class="line"><a id="l10687" name="l10687"></a><span class="lineno">10687</span> <span class="keyword">class </span>Singleton : SingletonImplT, <span class="keyword">public</span> ISingleton {</div>
|
|
<div class="line"><a id="l10688" name="l10688"></a><span class="lineno">10688</span> </div>
|
|
<div class="line"><a id="l10689" name="l10689"></a><span class="lineno">10689</span> <span class="keyword">static</span> <span class="keyword">auto</span> getInternal() -> Singleton* {</div>
|
|
<div class="line"><a id="l10690" name="l10690"></a><span class="lineno">10690</span> <span class="keyword">static</span> Singleton* s_instance = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10691" name="l10691"></a><span class="lineno">10691</span> <span class="keywordflow">if</span>( !s_instance ) {</div>
|
|
<div class="line"><a id="l10692" name="l10692"></a><span class="lineno">10692</span> s_instance = <span class="keyword">new</span> Singleton;</div>
|
|
<div class="line"><a id="l10693" name="l10693"></a><span class="lineno">10693</span> <a class="code hl_function" href="namespaceCatch.html#a788ebefcd83342b7c479222a1eeffaee">addSingleton</a>( s_instance );</div>
|
|
<div class="line"><a id="l10694" name="l10694"></a><span class="lineno">10694</span> }</div>
|
|
<div class="line"><a id="l10695" name="l10695"></a><span class="lineno">10695</span> <span class="keywordflow">return</span> s_instance;</div>
|
|
<div class="line"><a id="l10696" name="l10696"></a><span class="lineno">10696</span> }</div>
|
|
<div class="line"><a id="l10697" name="l10697"></a><span class="lineno">10697</span> </div>
|
|
<div class="line"><a id="l10698" name="l10698"></a><span class="lineno">10698</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10699" name="l10699"></a><span class="lineno">10699</span> <span class="keyword">static</span> <span class="keyword">auto</span> get() -> InterfaceT <span class="keyword">const</span>& {</div>
|
|
<div class="line"><a id="l10700" name="l10700"></a><span class="lineno">10700</span> <span class="keywordflow">return</span> *getInternal();</div>
|
|
<div class="line"><a id="l10701" name="l10701"></a><span class="lineno">10701</span> }</div>
|
|
<div class="line"><a id="l10702" name="l10702"></a><span class="lineno">10702</span> <span class="keyword">static</span> <span class="keyword">auto</span> getMutable() -> MutableInterfaceT& {</div>
|
|
<div class="line"><a id="l10703" name="l10703"></a><span class="lineno">10703</span> <span class="keywordflow">return</span> *getInternal();</div>
|
|
<div class="line"><a id="l10704" name="l10704"></a><span class="lineno">10704</span> }</div>
|
|
<div class="line"><a id="l10705" name="l10705"></a><span class="lineno">10705</span> };</div>
|
|
<div class="line"><a id="l10706" name="l10706"></a><span class="lineno">10706</span> </div>
|
|
<div class="line"><a id="l10707" name="l10707"></a><span class="lineno">10707</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10708" name="l10708"></a><span class="lineno">10708</span> </div>
|
|
<div class="line"><a id="l10709" name="l10709"></a><span class="lineno">10709</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_SINGLETONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10710" name="l10710"></a><span class="lineno">10710</span> </div>
|
|
<div class="line"><a id="l10711" name="l10711"></a><span class="lineno">10711</span> </div>
|
|
<div class="line"><a id="l10712" name="l10712"></a><span class="lineno">10712</span><span class="preprocessor">#ifndef CATCH_STARTUP_EXCEPTION_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10713" name="l10713"></a><span class="lineno">10713</span><span class="preprocessor">#define CATCH_STARTUP_EXCEPTION_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10714" name="l10714"></a><span class="lineno">10714</span> </div>
|
|
<div class="line"><a id="l10715" name="l10715"></a><span class="lineno">10715</span> </div>
|
|
<div class="line"><a id="l10716" name="l10716"></a><span class="lineno">10716</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10717" name="l10717"></a><span class="lineno">10717</span><span class="preprocessor">#include <exception></span></div>
|
|
<div class="line"><a id="l10718" name="l10718"></a><span class="lineno">10718</span> </div>
|
|
<div class="line"><a id="l10719" name="l10719"></a><span class="lineno">10719</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10720" name="l10720"></a><span class="lineno">10720</span> </div>
|
|
<div class="line"><a id="l10721" name="l10721"></a><span class="lineno">10721</span> <span class="keyword">class </span>StartupExceptionRegistry {</div>
|
|
<div class="line"><a id="l10722" name="l10722"></a><span class="lineno">10722</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)</span></div>
|
|
<div class="line"><a id="l10723" name="l10723"></a><span class="lineno">10723</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10724" name="l10724"></a><span class="lineno">10724</span> <span class="keywordtype">void</span> add(std::exception_ptr <span class="keyword">const</span>& exception) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l10725" name="l10725"></a><span class="lineno">10725</span> std::vector<std::exception_ptr> <span class="keyword">const</span>& getExceptions() const noexcept;</div>
|
|
<div class="line"><a id="l10726" name="l10726"></a><span class="lineno">10726</span> private:</div>
|
|
<div class="line"><a id="l10727" name="l10727"></a><span class="lineno">10727</span> std::vector<std::exception_ptr> m_exceptions;</div>
|
|
<div class="line"><a id="l10728" name="l10728"></a><span class="lineno">10728</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l10729" name="l10729"></a><span class="lineno">10729</span> };</div>
|
|
<div class="line"><a id="l10730" name="l10730"></a><span class="lineno">10730</span> </div>
|
|
<div class="line"><a id="l10731" name="l10731"></a><span class="lineno">10731</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10732" name="l10732"></a><span class="lineno">10732</span> </div>
|
|
<div class="line"><a id="l10733" name="l10733"></a><span class="lineno">10733</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STARTUP_EXCEPTION_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10734" name="l10734"></a><span class="lineno">10734</span> </div>
|
|
<div class="line"><a id="l10735" name="l10735"></a><span class="lineno">10735</span> </div>
|
|
<div class="line"><a id="l10736" name="l10736"></a><span class="lineno">10736</span> </div>
|
|
<div class="line"><a id="l10737" name="l10737"></a><span class="lineno">10737</span><span class="preprocessor">#ifndef CATCH_STDSTREAMS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10738" name="l10738"></a><span class="lineno">10738</span><span class="preprocessor">#define CATCH_STDSTREAMS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10739" name="l10739"></a><span class="lineno">10739</span> </div>
|
|
<div class="line"><a id="l10740" name="l10740"></a><span class="lineno">10740</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l10741" name="l10741"></a><span class="lineno">10741</span> </div>
|
|
<div class="line"><a id="l10742" name="l10742"></a><span class="lineno">10742</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10743" name="l10743"></a><span class="lineno">10743</span> </div>
|
|
<div class="line"><a id="l10744" name="l10744"></a><span class="lineno">10744</span> std::ostream& <a class="code hl_function" href="namespaceCatch.html#a0179d453617ba2296f2baa99a49e7264">cout</a>();</div>
|
|
<div class="line"><a id="l10745" name="l10745"></a><span class="lineno">10745</span> std::ostream& <a class="code hl_function" href="namespaceCatch.html#a54c1ce08041448d684ae8edc14162cd2">cerr</a>();</div>
|
|
<div class="line"><a id="l10746" name="l10746"></a><span class="lineno">10746</span> std::ostream& <a class="code hl_function" href="namespaceCatch.html#a1b2213f54e4d31a659db49827e81856b">clog</a>();</div>
|
|
<div class="line"><a id="l10747" name="l10747"></a><span class="lineno">10747</span> </div>
|
|
<div class="line"><a id="l10748" name="l10748"></a><span class="lineno">10748</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10749" name="l10749"></a><span class="lineno">10749</span> </div>
|
|
<div class="line"><a id="l10750" name="l10750"></a><span class="lineno">10750</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l10751" name="l10751"></a><span class="lineno">10751</span> </div>
|
|
<div class="line"><a id="l10752" name="l10752"></a><span class="lineno">10752</span> </div>
|
|
<div class="line"><a id="l10753" name="l10753"></a><span class="lineno">10753</span><span class="preprocessor">#ifndef CATCH_STRING_MANIP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10754" name="l10754"></a><span class="lineno">10754</span><span class="preprocessor">#define CATCH_STRING_MANIP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10755" name="l10755"></a><span class="lineno">10755</span> </div>
|
|
<div class="line"><a id="l10756" name="l10756"></a><span class="lineno">10756</span> </div>
|
|
<div class="line"><a id="l10757" name="l10757"></a><span class="lineno">10757</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l10758" name="l10758"></a><span class="lineno">10758</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10759" name="l10759"></a><span class="lineno">10759</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l10760" name="l10760"></a><span class="lineno">10760</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10761" name="l10761"></a><span class="lineno">10761</span> </div>
|
|
<div class="line"><a id="l10762" name="l10762"></a><span class="lineno">10762</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10763" name="l10763"></a><span class="lineno">10763</span> </div>
|
|
<div class="line"><a id="l10764" name="l10764"></a><span class="lineno">10764</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a695f62327be0676e046291eeaae15110">startsWith</a>( std::string <span class="keyword">const</span>& s, std::string <span class="keyword">const</span>& prefix );</div>
|
|
<div class="line"><a id="l10765" name="l10765"></a><span class="lineno">10765</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a695f62327be0676e046291eeaae15110">startsWith</a>( StringRef s, <span class="keywordtype">char</span> prefix );</div>
|
|
<div class="line"><a id="l10766" name="l10766"></a><span class="lineno">10766</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ada025504f627feaf9ac68ca391515dff">endsWith</a>( std::string <span class="keyword">const</span>& s, std::string <span class="keyword">const</span>& suffix );</div>
|
|
<div class="line"><a id="l10767" name="l10767"></a><span class="lineno">10767</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ada025504f627feaf9ac68ca391515dff">endsWith</a>( std::string <span class="keyword">const</span>& s, <span class="keywordtype">char</span> suffix );</div>
|
|
<div class="line"><a id="l10768" name="l10768"></a><span class="lineno">10768</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#aa52974b0e426e7e2fbd725a900e9c36e">contains</a>( std::string <span class="keyword">const</span>& s, std::string <span class="keyword">const</span>& infix );</div>
|
|
<div class="line"><a id="l10769" name="l10769"></a><span class="lineno">10769</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a0760dbe87d090a55a35414db57d272c4">toLowerInPlace</a>( std::string& s );</div>
|
|
<div class="line"><a id="l10770" name="l10770"></a><span class="lineno">10770</span> std::string <a class="code hl_function" href="namespaceCatch.html#ac036a17412d318598ffda8e1fe7a1177">toLower</a>( std::string <span class="keyword">const</span>& s );</div>
|
|
<div class="line"><a id="l10771" name="l10771"></a><span class="lineno">10771</span> <span class="keywordtype">char</span> <a class="code hl_function" href="namespaceCatch.html#ac036a17412d318598ffda8e1fe7a1177">toLower</a>( <span class="keywordtype">char</span> c );</div>
|
|
<div class="line"><a id="l10773" name="l10773"></a><span class="lineno">10773</span> std::string <a class="code hl_function" href="namespaceCatch.html#a084108b47f37d8bfd5db51c50c7451b3">trim</a>( std::string <span class="keyword">const</span>& str );</div>
|
|
<div class="line"><a id="l10775" name="l10775"></a><span class="lineno">10775</span> StringRef <a class="code hl_function" href="namespaceCatch.html#a084108b47f37d8bfd5db51c50c7451b3">trim</a>(StringRef ref);</div>
|
|
<div class="line"><a id="l10776" name="l10776"></a><span class="lineno">10776</span> </div>
|
|
<div class="line"><a id="l10777" name="l10777"></a><span class="lineno">10777</span> <span class="comment">// !!! Be aware, returns refs into original string - make sure original string outlives them</span></div>
|
|
<div class="line"><a id="l10778" name="l10778"></a><span class="lineno">10778</span> std::vector<StringRef> <a class="code hl_function" href="namespaceCatch.html#a678e3c779388970bb3ec5802245f93d7">splitStringRef</a>( StringRef str, <span class="keywordtype">char</span> delimiter );</div>
|
|
<div class="line"><a id="l10779" name="l10779"></a><span class="lineno">10779</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#afe4e6770da547e43e9e4eeaa05f946ea">replaceInPlace</a>( std::string& str, std::string <span class="keyword">const</span>& replaceThis, std::string <span class="keyword">const</span>& withThis );</div>
|
|
<div class="line"><a id="l10780" name="l10780"></a><span class="lineno">10780</span></div>
|
|
<div class="line"><a id="l10791" name="l10791"></a><span class="lineno">10791</span> <span class="keyword">class </span>pluralise {</div>
|
|
<div class="line"><a id="l10792" name="l10792"></a><span class="lineno">10792</span> std::uint64_t m_count;</div>
|
|
<div class="line"><a id="l10793" name="l10793"></a><span class="lineno">10793</span> StringRef m_label;</div>
|
|
<div class="line"><a id="l10794" name="l10794"></a><span class="lineno">10794</span> </div>
|
|
<div class="line"><a id="l10795" name="l10795"></a><span class="lineno">10795</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10796" name="l10796"></a><span class="lineno">10796</span> <span class="keyword">constexpr</span> pluralise(std::uint64_t count, StringRef label):</div>
|
|
<div class="line"><a id="l10797" name="l10797"></a><span class="lineno">10797</span> m_count(count),</div>
|
|
<div class="line"><a id="l10798" name="l10798"></a><span class="lineno">10798</span> m_label(label)</div>
|
|
<div class="line"><a id="l10799" name="l10799"></a><span class="lineno">10799</span> {}</div>
|
|
<div class="line"><a id="l10800" name="l10800"></a><span class="lineno">10800</span> </div>
|
|
<div class="line"><a id="l10801" name="l10801"></a><span class="lineno">10801</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( std::ostream& os, pluralise <span class="keyword">const</span>& pluraliser );</div>
|
|
<div class="line"><a id="l10802" name="l10802"></a><span class="lineno">10802</span> };</div>
|
|
<div class="line"><a id="l10803" name="l10803"></a><span class="lineno">10803</span>}</div>
|
|
<div class="line"><a id="l10804" name="l10804"></a><span class="lineno">10804</span> </div>
|
|
<div class="line"><a id="l10805" name="l10805"></a><span class="lineno">10805</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_STRING_MANIP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10806" name="l10806"></a><span class="lineno">10806</span> </div>
|
|
<div class="line"><a id="l10807" name="l10807"></a><span class="lineno">10807</span> </div>
|
|
<div class="line"><a id="l10808" name="l10808"></a><span class="lineno">10808</span><span class="preprocessor">#ifndef CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10809" name="l10809"></a><span class="lineno">10809</span><span class="preprocessor">#define CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10810" name="l10810"></a><span class="lineno">10810</span> </div>
|
|
<div class="line"><a id="l10811" name="l10811"></a><span class="lineno">10811</span> </div>
|
|
<div class="line"><a id="l10812" name="l10812"></a><span class="lineno">10812</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l10813" name="l10813"></a><span class="lineno">10813</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10814" name="l10814"></a><span class="lineno">10814</span> </div>
|
|
<div class="line"><a id="l10815" name="l10815"></a><span class="lineno">10815</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10816" name="l10816"></a><span class="lineno">10816</span> <span class="keyword">struct </span>SourceLineInfo;</div>
|
|
<div class="line"><a id="l10817" name="l10817"></a><span class="lineno">10817</span> </div>
|
|
<div class="line"><a id="l10818" name="l10818"></a><span class="lineno">10818</span> <span class="keyword">class </span>TagAliasRegistry : <span class="keyword">public</span> ITagAliasRegistry {</div>
|
|
<div class="line"><a id="l10819" name="l10819"></a><span class="lineno">10819</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10820" name="l10820"></a><span class="lineno">10820</span> ~TagAliasRegistry() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l10821" name="l10821"></a><span class="lineno">10821</span> TagAlias <span class="keyword">const</span>* find( std::string <span class="keyword">const</span>& alias ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10822" name="l10822"></a><span class="lineno">10822</span> std::string expandAliases( std::string <span class="keyword">const</span>& unexpandedTestSpec ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10823" name="l10823"></a><span class="lineno">10823</span> <span class="keywordtype">void</span> add( std::string <span class="keyword">const</span>& alias, std::string <span class="keyword">const</span>& tag, SourceLineInfo <span class="keyword">const</span>& lineInfo );</div>
|
|
<div class="line"><a id="l10824" name="l10824"></a><span class="lineno">10824</span> </div>
|
|
<div class="line"><a id="l10825" name="l10825"></a><span class="lineno">10825</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10826" name="l10826"></a><span class="lineno">10826</span> std::map<std::string, TagAlias> m_registry;</div>
|
|
<div class="line"><a id="l10827" name="l10827"></a><span class="lineno">10827</span> };</div>
|
|
<div class="line"><a id="l10828" name="l10828"></a><span class="lineno">10828</span> </div>
|
|
<div class="line"><a id="l10829" name="l10829"></a><span class="lineno">10829</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10830" name="l10830"></a><span class="lineno">10830</span> </div>
|
|
<div class="line"><a id="l10831" name="l10831"></a><span class="lineno">10831</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10832" name="l10832"></a><span class="lineno">10832</span> </div>
|
|
<div class="line"><a id="l10833" name="l10833"></a><span class="lineno">10833</span> </div>
|
|
<div class="line"><a id="l10834" name="l10834"></a><span class="lineno">10834</span><span class="preprocessor">#ifndef CATCH_TEST_CASE_INFO_HASHER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10835" name="l10835"></a><span class="lineno">10835</span><span class="preprocessor">#define CATCH_TEST_CASE_INFO_HASHER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10836" name="l10836"></a><span class="lineno">10836</span> </div>
|
|
<div class="line"><a id="l10837" name="l10837"></a><span class="lineno">10837</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l10838" name="l10838"></a><span class="lineno">10838</span> </div>
|
|
<div class="line"><a id="l10839" name="l10839"></a><span class="lineno">10839</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10840" name="l10840"></a><span class="lineno">10840</span> </div>
|
|
<div class="line"><a id="l10841" name="l10841"></a><span class="lineno">10841</span> <span class="keyword">struct </span>TestCaseInfo;</div>
|
|
<div class="line"><a id="l10842" name="l10842"></a><span class="lineno">10842</span> </div>
|
|
<div class="line"><a id="l10843" name="l10843"></a><span class="lineno">10843</span> <span class="keyword">class </span>TestCaseInfoHasher {</div>
|
|
<div class="line"><a id="l10844" name="l10844"></a><span class="lineno">10844</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10845" name="l10845"></a><span class="lineno">10845</span> <span class="keyword">using </span>hash_t = std::uint64_t;</div>
|
|
<div class="line"><a id="l10846" name="l10846"></a><span class="lineno">10846</span> TestCaseInfoHasher( hash_t seed );</div>
|
|
<div class="line"><a id="l10847" name="l10847"></a><span class="lineno">10847</span> uint32_t operator()( TestCaseInfo <span class="keyword">const</span>& t ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10848" name="l10848"></a><span class="lineno">10848</span> </div>
|
|
<div class="line"><a id="l10849" name="l10849"></a><span class="lineno">10849</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10850" name="l10850"></a><span class="lineno">10850</span> hash_t m_seed;</div>
|
|
<div class="line"><a id="l10851" name="l10851"></a><span class="lineno">10851</span> };</div>
|
|
<div class="line"><a id="l10852" name="l10852"></a><span class="lineno">10852</span> </div>
|
|
<div class="line"><a id="l10853" name="l10853"></a><span class="lineno">10853</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10854" name="l10854"></a><span class="lineno">10854</span> </div>
|
|
<div class="line"><a id="l10855" name="l10855"></a><span class="lineno">10855</span><span class="preprocessor">#endif </span><span class="comment">/* CATCH_TEST_CASE_INFO_HASHER_HPP_INCLUDED */</span><span class="preprocessor"></span></div>
|
|
<div class="line"><a id="l10856" name="l10856"></a><span class="lineno">10856</span> </div>
|
|
<div class="line"><a id="l10857" name="l10857"></a><span class="lineno">10857</span> </div>
|
|
<div class="line"><a id="l10858" name="l10858"></a><span class="lineno">10858</span><span class="preprocessor">#ifndef CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10859" name="l10859"></a><span class="lineno">10859</span><span class="preprocessor">#define CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10860" name="l10860"></a><span class="lineno">10860</span> </div>
|
|
<div class="line"><a id="l10861" name="l10861"></a><span class="lineno">10861</span> </div>
|
|
<div class="line"><a id="l10862" name="l10862"></a><span class="lineno">10862</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10863" name="l10863"></a><span class="lineno">10863</span> </div>
|
|
<div class="line"><a id="l10864" name="l10864"></a><span class="lineno">10864</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10865" name="l10865"></a><span class="lineno">10865</span> </div>
|
|
<div class="line"><a id="l10866" name="l10866"></a><span class="lineno">10866</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l10867" name="l10867"></a><span class="lineno">10867</span> <span class="keyword">class </span>ITestInvoker;</div>
|
|
<div class="line"><a id="l10868" name="l10868"></a><span class="lineno">10868</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l10869" name="l10869"></a><span class="lineno">10869</span> <span class="keyword">class </span>TestSpec;</div>
|
|
<div class="line"><a id="l10870" name="l10870"></a><span class="lineno">10870</span> </div>
|
|
<div class="line"><a id="l10871" name="l10871"></a><span class="lineno">10871</span> std::vector<TestCaseHandle> <a class="code hl_function" href="namespaceCatch.html#ad9dc14789e42b18c6dc26590a49a6eaa">sortTests</a>( IConfig <span class="keyword">const</span>& config, std::vector<TestCaseHandle> <span class="keyword">const</span>& unsortedTestCases );</div>
|
|
<div class="line"><a id="l10872" name="l10872"></a><span class="lineno">10872</span> </div>
|
|
<div class="line"><a id="l10873" name="l10873"></a><span class="lineno">10873</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a12f76a88f2882e9d1d221979dec0324d">isThrowSafe</a>( TestCaseHandle <span class="keyword">const</span>& testCase, IConfig <span class="keyword">const</span>& config );</div>
|
|
<div class="line"><a id="l10874" name="l10874"></a><span class="lineno">10874</span> </div>
|
|
<div class="line"><a id="l10875" name="l10875"></a><span class="lineno">10875</span> std::vector<TestCaseHandle> <a class="code hl_function" href="namespaceCatch.html#af1944a358b260e03c6695aa7ae259c9a">filterTests</a>( std::vector<TestCaseHandle> <span class="keyword">const</span>& testCases, TestSpec <span class="keyword">const</span>& testSpec, IConfig <span class="keyword">const</span>& config );</div>
|
|
<div class="line"><a id="l10876" name="l10876"></a><span class="lineno">10876</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& <a class="code hl_function" href="namespaceCatch.html#aae7d61b3abc9c8d3c82407b380e6a414">getAllTestCasesSorted</a>( IConfig <span class="keyword">const</span>& config );</div>
|
|
<div class="line"><a id="l10877" name="l10877"></a><span class="lineno">10877</span> </div>
|
|
<div class="line"><a id="l10878" name="l10878"></a><span class="lineno">10878</span> <span class="keyword">class </span>TestRegistry : <span class="keyword">public</span> ITestCaseRegistry {</div>
|
|
<div class="line"><a id="l10879" name="l10879"></a><span class="lineno">10879</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10880" name="l10880"></a><span class="lineno">10880</span> <span class="keywordtype">void</span> registerTest( Detail::unique_ptr<TestCaseInfo> testInfo, Detail::unique_ptr<ITestInvoker> testInvoker );</div>
|
|
<div class="line"><a id="l10881" name="l10881"></a><span class="lineno">10881</span> </div>
|
|
<div class="line"><a id="l10882" name="l10882"></a><span class="lineno">10882</span> std::vector<TestCaseInfo*> <span class="keyword">const</span>& getAllInfos() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10883" name="l10883"></a><span class="lineno">10883</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& getAllTests() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10884" name="l10884"></a><span class="lineno">10884</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& getAllTestsSorted( IConfig <span class="keyword">const</span>& config ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l10885" name="l10885"></a><span class="lineno">10885</span> </div>
|
|
<div class="line"><a id="l10886" name="l10886"></a><span class="lineno">10886</span> ~TestRegistry() <span class="keyword">override</span>; <span class="comment">// = default</span></div>
|
|
<div class="line"><a id="l10887" name="l10887"></a><span class="lineno">10887</span> </div>
|
|
<div class="line"><a id="l10888" name="l10888"></a><span class="lineno">10888</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10889" name="l10889"></a><span class="lineno">10889</span> std::vector<Detail::unique_ptr<TestCaseInfo>> m_owned_test_infos;</div>
|
|
<div class="line"><a id="l10890" name="l10890"></a><span class="lineno">10890</span> <span class="comment">// Keeps a materialized vector for `getAllInfos`.</span></div>
|
|
<div class="line"><a id="l10891" name="l10891"></a><span class="lineno">10891</span> <span class="comment">// We should get rid of that eventually (see interface note)</span></div>
|
|
<div class="line"><a id="l10892" name="l10892"></a><span class="lineno">10892</span> std::vector<TestCaseInfo*> m_viewed_test_infos;</div>
|
|
<div class="line"><a id="l10893" name="l10893"></a><span class="lineno">10893</span> </div>
|
|
<div class="line"><a id="l10894" name="l10894"></a><span class="lineno">10894</span> std::vector<Detail::unique_ptr<ITestInvoker>> m_invokers;</div>
|
|
<div class="line"><a id="l10895" name="l10895"></a><span class="lineno">10895</span> std::vector<TestCaseHandle> m_handles;</div>
|
|
<div class="line"><a id="l10896" name="l10896"></a><span class="lineno">10896</span> <span class="keyword">mutable</span> <a class="code hl_enumeration" href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">TestRunOrder</a> m_currentSortOrder = TestRunOrder::Declared;</div>
|
|
<div class="line"><a id="l10897" name="l10897"></a><span class="lineno">10897</span> <span class="keyword">mutable</span> std::vector<TestCaseHandle> m_sortedFunctions;</div>
|
|
<div class="line"><a id="l10898" name="l10898"></a><span class="lineno">10898</span> };</div>
|
|
<div class="line"><a id="l10899" name="l10899"></a><span class="lineno">10899</span></div>
|
|
<div class="line"><a id="l10901" name="l10901"></a><span class="lineno">10901</span> </div>
|
|
<div class="line"><a id="l10902" name="l10902"></a><span class="lineno">10902</span> </div>
|
|
<div class="line"><a id="l10903" name="l10903"></a><span class="lineno">10903</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l10904" name="l10904"></a><span class="lineno">10904</span> </div>
|
|
<div class="line"><a id="l10905" name="l10905"></a><span class="lineno">10905</span> </div>
|
|
<div class="line"><a id="l10906" name="l10906"></a><span class="lineno">10906</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10907" name="l10907"></a><span class="lineno">10907</span> </div>
|
|
<div class="line"><a id="l10908" name="l10908"></a><span class="lineno">10908</span> </div>
|
|
<div class="line"><a id="l10909" name="l10909"></a><span class="lineno">10909</span><span class="preprocessor">#ifndef CATCH_TEST_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10910" name="l10910"></a><span class="lineno">10910</span><span class="preprocessor">#define CATCH_TEST_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10911" name="l10911"></a><span class="lineno">10911</span> </div>
|
|
<div class="line"><a id="l10912" name="l10912"></a><span class="lineno">10912</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l10913" name="l10913"></a><span class="lineno">10913</span><span class="preprocessor">#pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l10914" name="l10914"></a><span class="lineno">10914</span><span class="preprocessor">#pragma clang diagnostic ignored "-Wpadded"</span></div>
|
|
<div class="line"><a id="l10915" name="l10915"></a><span class="lineno">10915</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l10916" name="l10916"></a><span class="lineno">10916</span> </div>
|
|
<div class="line"><a id="l10917" name="l10917"></a><span class="lineno">10917</span> </div>
|
|
<div class="line"><a id="l10918" name="l10918"></a><span class="lineno">10918</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10919" name="l10919"></a><span class="lineno">10919</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10920" name="l10920"></a><span class="lineno">10920</span> </div>
|
|
<div class="line"><a id="l10921" name="l10921"></a><span class="lineno">10921</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10922" name="l10922"></a><span class="lineno">10922</span> </div>
|
|
<div class="line"><a id="l10923" name="l10923"></a><span class="lineno">10923</span> <span class="keyword">class </span>ITagAliasRegistry;</div>
|
|
<div class="line"><a id="l10924" name="l10924"></a><span class="lineno">10924</span> </div>
|
|
<div class="line"><a id="l10925" name="l10925"></a><span class="lineno">10925</span> <span class="keyword">class </span>TestSpecParser {</div>
|
|
<div class="line"><a id="l10926" name="l10926"></a><span class="lineno">10926</span> <span class="keyword">enum</span> Mode{ <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a>, Name, QuotedName, Tag, EscapedName };</div>
|
|
<div class="line"><a id="l10927" name="l10927"></a><span class="lineno">10927</span> Mode m_mode = <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a>;</div>
|
|
<div class="line"><a id="l10928" name="l10928"></a><span class="lineno">10928</span> Mode lastMode = <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a>;</div>
|
|
<div class="line"><a id="l10929" name="l10929"></a><span class="lineno">10929</span> <span class="keywordtype">bool</span> m_exclusion = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l10930" name="l10930"></a><span class="lineno">10930</span> std::size_t m_pos = 0;</div>
|
|
<div class="line"><a id="l10931" name="l10931"></a><span class="lineno">10931</span> std::size_t m_realPatternPos = 0;</div>
|
|
<div class="line"><a id="l10932" name="l10932"></a><span class="lineno">10932</span> std::string m_arg;</div>
|
|
<div class="line"><a id="l10933" name="l10933"></a><span class="lineno">10933</span> std::string m_substring;</div>
|
|
<div class="line"><a id="l10934" name="l10934"></a><span class="lineno">10934</span> std::string m_patternName;</div>
|
|
<div class="line"><a id="l10935" name="l10935"></a><span class="lineno">10935</span> std::vector<std::size_t> m_escapeChars;</div>
|
|
<div class="line"><a id="l10936" name="l10936"></a><span class="lineno">10936</span> TestSpec::Filter m_currentFilter;</div>
|
|
<div class="line"><a id="l10937" name="l10937"></a><span class="lineno">10937</span> TestSpec m_testSpec;</div>
|
|
<div class="line"><a id="l10938" name="l10938"></a><span class="lineno">10938</span> ITagAliasRegistry <span class="keyword">const</span>* m_tagAliases = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l10939" name="l10939"></a><span class="lineno">10939</span> </div>
|
|
<div class="line"><a id="l10940" name="l10940"></a><span class="lineno">10940</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l10941" name="l10941"></a><span class="lineno">10941</span> TestSpecParser( ITagAliasRegistry <span class="keyword">const</span>& tagAliases );</div>
|
|
<div class="line"><a id="l10942" name="l10942"></a><span class="lineno">10942</span> </div>
|
|
<div class="line"><a id="l10943" name="l10943"></a><span class="lineno">10943</span> TestSpecParser& parse( std::string <span class="keyword">const</span>& arg );</div>
|
|
<div class="line"><a id="l10944" name="l10944"></a><span class="lineno">10944</span> TestSpec testSpec();</div>
|
|
<div class="line"><a id="l10945" name="l10945"></a><span class="lineno">10945</span> </div>
|
|
<div class="line"><a id="l10946" name="l10946"></a><span class="lineno">10946</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l10947" name="l10947"></a><span class="lineno">10947</span> <span class="keywordtype">bool</span> visitChar( <span class="keywordtype">char</span> c );</div>
|
|
<div class="line"><a id="l10948" name="l10948"></a><span class="lineno">10948</span> <span class="keywordtype">void</span> startNewMode( Mode mode );</div>
|
|
<div class="line"><a id="l10949" name="l10949"></a><span class="lineno">10949</span> <span class="keywordtype">bool</span> processNoneChar( <span class="keywordtype">char</span> c );</div>
|
|
<div class="line"><a id="l10950" name="l10950"></a><span class="lineno">10950</span> <span class="keywordtype">void</span> processNameChar( <span class="keywordtype">char</span> c );</div>
|
|
<div class="line"><a id="l10951" name="l10951"></a><span class="lineno">10951</span> <span class="keywordtype">bool</span> processOtherChar( <span class="keywordtype">char</span> c );</div>
|
|
<div class="line"><a id="l10952" name="l10952"></a><span class="lineno">10952</span> <span class="keywordtype">void</span> endMode();</div>
|
|
<div class="line"><a id="l10953" name="l10953"></a><span class="lineno">10953</span> <span class="keywordtype">void</span> escape();</div>
|
|
<div class="line"><a id="l10954" name="l10954"></a><span class="lineno">10954</span> <span class="keywordtype">bool</span> isControlChar( <span class="keywordtype">char</span> c ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l10955" name="l10955"></a><span class="lineno">10955</span> <span class="keywordtype">void</span> saveLastMode();</div>
|
|
<div class="line"><a id="l10956" name="l10956"></a><span class="lineno">10956</span> <span class="keywordtype">void</span> revertBackToLastMode();</div>
|
|
<div class="line"><a id="l10957" name="l10957"></a><span class="lineno">10957</span> <span class="keywordtype">void</span> addFilter();</div>
|
|
<div class="line"><a id="l10958" name="l10958"></a><span class="lineno">10958</span> <span class="keywordtype">bool</span> separate();</div>
|
|
<div class="line"><a id="l10959" name="l10959"></a><span class="lineno">10959</span> </div>
|
|
<div class="line"><a id="l10960" name="l10960"></a><span class="lineno">10960</span> <span class="comment">// Handles common preprocessing of the pattern for name/tag patterns</span></div>
|
|
<div class="line"><a id="l10961" name="l10961"></a><span class="lineno">10961</span> std::string preprocessPattern();</div>
|
|
<div class="line"><a id="l10962" name="l10962"></a><span class="lineno">10962</span> <span class="comment">// Adds the current pattern as a test name</span></div>
|
|
<div class="line"><a id="l10963" name="l10963"></a><span class="lineno">10963</span> <span class="keywordtype">void</span> addNamePattern();</div>
|
|
<div class="line"><a id="l10964" name="l10964"></a><span class="lineno">10964</span> <span class="comment">// Adds the current pattern as a tag</span></div>
|
|
<div class="line"><a id="l10965" name="l10965"></a><span class="lineno">10965</span> <span class="keywordtype">void</span> addTagPattern();</div>
|
|
<div class="line"><a id="l10966" name="l10966"></a><span class="lineno">10966</span> </div>
|
|
<div class="line"><a id="l10967" name="l10967"></a><span class="lineno">10967</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> addCharToPattern(<span class="keywordtype">char</span> c) {</div>
|
|
<div class="line"><a id="l10968" name="l10968"></a><span class="lineno">10968</span> m_substring += c;</div>
|
|
<div class="line"><a id="l10969" name="l10969"></a><span class="lineno">10969</span> m_patternName += c;</div>
|
|
<div class="line"><a id="l10970" name="l10970"></a><span class="lineno">10970</span> m_realPatternPos++;</div>
|
|
<div class="line"><a id="l10971" name="l10971"></a><span class="lineno">10971</span> }</div>
|
|
<div class="line"><a id="l10972" name="l10972"></a><span class="lineno">10972</span> </div>
|
|
<div class="line"><a id="l10973" name="l10973"></a><span class="lineno">10973</span> };</div>
|
|
<div class="line"><a id="l10974" name="l10974"></a><span class="lineno">10974</span> </div>
|
|
<div class="line"><a id="l10975" name="l10975"></a><span class="lineno">10975</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l10976" name="l10976"></a><span class="lineno">10976</span> </div>
|
|
<div class="line"><a id="l10977" name="l10977"></a><span class="lineno">10977</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l10978" name="l10978"></a><span class="lineno">10978</span><span class="preprocessor">#pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l10979" name="l10979"></a><span class="lineno">10979</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l10980" name="l10980"></a><span class="lineno">10980</span> </div>
|
|
<div class="line"><a id="l10981" name="l10981"></a><span class="lineno">10981</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEST_SPEC_PARSER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10982" name="l10982"></a><span class="lineno">10982</span> </div>
|
|
<div class="line"><a id="l10983" name="l10983"></a><span class="lineno">10983</span> </div>
|
|
<div class="line"><a id="l10984" name="l10984"></a><span class="lineno">10984</span><span class="preprocessor">#ifndef CATCH_TEXTFLOW_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10985" name="l10985"></a><span class="lineno">10985</span><span class="preprocessor">#define CATCH_TEXTFLOW_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l10986" name="l10986"></a><span class="lineno">10986</span> </div>
|
|
<div class="line"><a id="l10987" name="l10987"></a><span class="lineno">10987</span> </div>
|
|
<div class="line"><a id="l10988" name="l10988"></a><span class="lineno">10988</span><span class="preprocessor">#include <cassert></span></div>
|
|
<div class="line"><a id="l10989" name="l10989"></a><span class="lineno">10989</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l10990" name="l10990"></a><span class="lineno">10990</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l10991" name="l10991"></a><span class="lineno">10991</span> </div>
|
|
<div class="line"><a id="l10992" name="l10992"></a><span class="lineno">10992</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l10993" name="l10993"></a><span class="lineno">10993</span> <span class="keyword">namespace </span>TextFlow {</div>
|
|
<div class="line"><a id="l10994" name="l10994"></a><span class="lineno">10994</span> </div>
|
|
<div class="line"><a id="l10995" name="l10995"></a><span class="lineno">10995</span> <span class="keyword">class </span>Columns;</div>
|
|
<div class="line"><a id="l10996" name="l10996"></a><span class="lineno">10996</span></div>
|
|
<div class="line"><a id="l11009" name="l11009"></a><span class="lineno">11009</span> <span class="keyword">class </span>AnsiSkippingString {</div>
|
|
<div class="line"><a id="l11010" name="l11010"></a><span class="lineno">11010</span> std::string m_string;</div>
|
|
<div class="line"><a id="l11011" name="l11011"></a><span class="lineno">11011</span> std::size_t m_size = 0;</div>
|
|
<div class="line"><a id="l11012" name="l11012"></a><span class="lineno">11012</span> </div>
|
|
<div class="line"><a id="l11013" name="l11013"></a><span class="lineno">11013</span> <span class="comment">// perform 0xff replacement and calculate m_size</span></div>
|
|
<div class="line"><a id="l11014" name="l11014"></a><span class="lineno">11014</span> <span class="keywordtype">void</span> preprocessString();</div>
|
|
<div class="line"><a id="l11015" name="l11015"></a><span class="lineno">11015</span> </div>
|
|
<div class="line"><a id="l11016" name="l11016"></a><span class="lineno">11016</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11017" name="l11017"></a><span class="lineno">11017</span> <span class="keyword">class </span>const_iterator;</div>
|
|
<div class="line"><a id="l11018" name="l11018"></a><span class="lineno">11018</span> <span class="keyword">using </span>iterator = const_iterator;</div>
|
|
<div class="line"><a id="l11019" name="l11019"></a><span class="lineno">11019</span> <span class="comment">// note: must be u-suffixed or this will cause a "truncation of</span></div>
|
|
<div class="line"><a id="l11020" name="l11020"></a><span class="lineno">11020</span> <span class="comment">// constant value" warning on MSVC</span></div>
|
|
<div class="line"><a id="l11021" name="l11021"></a><span class="lineno">11021</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">char</span> sentinel = <span class="keyword">static_cast<</span><span class="keywordtype">char</span><span class="keyword">></span>( 0xffu );</div>
|
|
<div class="line"><a id="l11022" name="l11022"></a><span class="lineno">11022</span> </div>
|
|
<div class="line"><a id="l11023" name="l11023"></a><span class="lineno">11023</span> <span class="keyword">explicit</span> AnsiSkippingString( std::string <span class="keyword">const</span>& text );</div>
|
|
<div class="line"><a id="l11024" name="l11024"></a><span class="lineno">11024</span> <span class="keyword">explicit</span> AnsiSkippingString( std::string&& text );</div>
|
|
<div class="line"><a id="l11025" name="l11025"></a><span class="lineno">11025</span> </div>
|
|
<div class="line"><a id="l11026" name="l11026"></a><span class="lineno">11026</span> const_iterator begin() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11027" name="l11027"></a><span class="lineno">11027</span> const_iterator end() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11028" name="l11028"></a><span class="lineno">11028</span> </div>
|
|
<div class="line"><a id="l11029" name="l11029"></a><span class="lineno">11029</span> <span class="keywordtype">size_t</span> size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_size; }</div>
|
|
<div class="line"><a id="l11030" name="l11030"></a><span class="lineno">11030</span> </div>
|
|
<div class="line"><a id="l11031" name="l11031"></a><span class="lineno">11031</span> std::string substring( const_iterator begin,</div>
|
|
<div class="line"><a id="l11032" name="l11032"></a><span class="lineno">11032</span> const_iterator end ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11033" name="l11033"></a><span class="lineno">11033</span> };</div>
|
|
<div class="line"><a id="l11034" name="l11034"></a><span class="lineno">11034</span> </div>
|
|
<div class="line"><a id="l11035" name="l11035"></a><span class="lineno">11035</span> <span class="keyword">class </span>AnsiSkippingString::const_iterator {</div>
|
|
<div class="line"><a id="l11036" name="l11036"></a><span class="lineno">11036</span> <span class="keyword">friend</span> AnsiSkippingString;</div>
|
|
<div class="line"><a id="l11037" name="l11037"></a><span class="lineno">11037</span> <span class="keyword">struct </span>EndTag {};</div>
|
|
<div class="line"><a id="l11038" name="l11038"></a><span class="lineno">11038</span> </div>
|
|
<div class="line"><a id="l11039" name="l11039"></a><span class="lineno">11039</span> <span class="keyword">const</span> std::string* m_string;</div>
|
|
<div class="line"><a id="l11040" name="l11040"></a><span class="lineno">11040</span> std::string::const_iterator m_it;</div>
|
|
<div class="line"><a id="l11041" name="l11041"></a><span class="lineno">11041</span> </div>
|
|
<div class="line"><a id="l11042" name="l11042"></a><span class="lineno">11042</span> <span class="keyword">explicit</span> const_iterator( <span class="keyword">const</span> std::string& <span class="keywordtype">string</span>, EndTag ):</div>
|
|
<div class="line"><a id="l11043" name="l11043"></a><span class="lineno">11043</span> m_string( &string ), m_it( string.end() ) {}</div>
|
|
<div class="line"><a id="l11044" name="l11044"></a><span class="lineno">11044</span> </div>
|
|
<div class="line"><a id="l11045" name="l11045"></a><span class="lineno">11045</span> <span class="keywordtype">void</span> tryParseAnsiEscapes();</div>
|
|
<div class="line"><a id="l11046" name="l11046"></a><span class="lineno">11046</span> <span class="keywordtype">void</span> advance();</div>
|
|
<div class="line"><a id="l11047" name="l11047"></a><span class="lineno">11047</span> <span class="keywordtype">void</span> unadvance();</div>
|
|
<div class="line"><a id="l11048" name="l11048"></a><span class="lineno">11048</span> </div>
|
|
<div class="line"><a id="l11049" name="l11049"></a><span class="lineno">11049</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11050" name="l11050"></a><span class="lineno">11050</span> <span class="keyword">using </span>difference_type = std::ptrdiff_t;</div>
|
|
<div class="line"><a id="l11051" name="l11051"></a><span class="lineno">11051</span> <span class="keyword">using </span>value_type = char;</div>
|
|
<div class="line"><a id="l11052" name="l11052"></a><span class="lineno">11052</span> <span class="keyword">using </span>pointer = value_type*;</div>
|
|
<div class="line"><a id="l11053" name="l11053"></a><span class="lineno">11053</span> <span class="keyword">using </span>reference = value_type&;</div>
|
|
<div class="line"><a id="l11054" name="l11054"></a><span class="lineno">11054</span> <span class="keyword">using </span>iterator_category = std::bidirectional_iterator_tag;</div>
|
|
<div class="line"><a id="l11055" name="l11055"></a><span class="lineno">11055</span> </div>
|
|
<div class="line"><a id="l11056" name="l11056"></a><span class="lineno">11056</span> <span class="keyword">explicit</span> const_iterator( <span class="keyword">const</span> std::string& <span class="keywordtype">string</span> ):</div>
|
|
<div class="line"><a id="l11057" name="l11057"></a><span class="lineno">11057</span> m_string( &string ), m_it( string.begin() ) {</div>
|
|
<div class="line"><a id="l11058" name="l11058"></a><span class="lineno">11058</span> tryParseAnsiEscapes();</div>
|
|
<div class="line"><a id="l11059" name="l11059"></a><span class="lineno">11059</span> }</div>
|
|
<div class="line"><a id="l11060" name="l11060"></a><span class="lineno">11060</span> </div>
|
|
<div class="line"><a id="l11061" name="l11061"></a><span class="lineno">11061</span> <span class="keywordtype">char</span> operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *m_it; }</div>
|
|
<div class="line"><a id="l11062" name="l11062"></a><span class="lineno">11062</span> </div>
|
|
<div class="line"><a id="l11063" name="l11063"></a><span class="lineno">11063</span> const_iterator& operator++() {</div>
|
|
<div class="line"><a id="l11064" name="l11064"></a><span class="lineno">11064</span> advance();</div>
|
|
<div class="line"><a id="l11065" name="l11065"></a><span class="lineno">11065</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11066" name="l11066"></a><span class="lineno">11066</span> }</div>
|
|
<div class="line"><a id="l11067" name="l11067"></a><span class="lineno">11067</span> const_iterator operator++( <span class="keywordtype">int</span> ) {</div>
|
|
<div class="line"><a id="l11068" name="l11068"></a><span class="lineno">11068</span> iterator prev( *<span class="keyword">this</span> );</div>
|
|
<div class="line"><a id="l11069" name="l11069"></a><span class="lineno">11069</span> operator++();</div>
|
|
<div class="line"><a id="l11070" name="l11070"></a><span class="lineno">11070</span> <span class="keywordflow">return</span> prev;</div>
|
|
<div class="line"><a id="l11071" name="l11071"></a><span class="lineno">11071</span> }</div>
|
|
<div class="line"><a id="l11072" name="l11072"></a><span class="lineno">11072</span> const_iterator& operator--() {</div>
|
|
<div class="line"><a id="l11073" name="l11073"></a><span class="lineno">11073</span> unadvance();</div>
|
|
<div class="line"><a id="l11074" name="l11074"></a><span class="lineno">11074</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11075" name="l11075"></a><span class="lineno">11075</span> }</div>
|
|
<div class="line"><a id="l11076" name="l11076"></a><span class="lineno">11076</span> const_iterator operator--( <span class="keywordtype">int</span> ) {</div>
|
|
<div class="line"><a id="l11077" name="l11077"></a><span class="lineno">11077</span> iterator prev( *<span class="keyword">this</span> );</div>
|
|
<div class="line"><a id="l11078" name="l11078"></a><span class="lineno">11078</span> operator--();</div>
|
|
<div class="line"><a id="l11079" name="l11079"></a><span class="lineno">11079</span> <span class="keywordflow">return</span> prev;</div>
|
|
<div class="line"><a id="l11080" name="l11080"></a><span class="lineno">11080</span> }</div>
|
|
<div class="line"><a id="l11081" name="l11081"></a><span class="lineno">11081</span> </div>
|
|
<div class="line"><a id="l11082" name="l11082"></a><span class="lineno">11082</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( const_iterator <span class="keyword">const</span>& other )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11083" name="l11083"></a><span class="lineno">11083</span> <span class="keywordflow">return</span> m_it == other.m_it;</div>
|
|
<div class="line"><a id="l11084" name="l11084"></a><span class="lineno">11084</span> }</div>
|
|
<div class="line"><a id="l11085" name="l11085"></a><span class="lineno">11085</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">operator!=</a>( const_iterator <span class="keyword">const</span>& other )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11086" name="l11086"></a><span class="lineno">11086</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( other );</div>
|
|
<div class="line"><a id="l11087" name="l11087"></a><span class="lineno">11087</span> }</div>
|
|
<div class="line"><a id="l11088" name="l11088"></a><span class="lineno">11088</span> <span class="keywordtype">bool</span> operator<=( const_iterator <span class="keyword">const</span>& other )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11089" name="l11089"></a><span class="lineno">11089</span> <span class="keywordflow">return</span> m_it <= other.m_it;</div>
|
|
<div class="line"><a id="l11090" name="l11090"></a><span class="lineno">11090</span> }</div>
|
|
<div class="line"><a id="l11091" name="l11091"></a><span class="lineno">11091</span> </div>
|
|
<div class="line"><a id="l11092" name="l11092"></a><span class="lineno">11092</span> const_iterator oneBefore()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11093" name="l11093"></a><span class="lineno">11093</span> <span class="keyword">auto</span> it = *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11094" name="l11094"></a><span class="lineno">11094</span> <span class="keywordflow">return</span> --it;</div>
|
|
<div class="line"><a id="l11095" name="l11095"></a><span class="lineno">11095</span> }</div>
|
|
<div class="line"><a id="l11096" name="l11096"></a><span class="lineno">11096</span> };</div>
|
|
<div class="line"><a id="l11097" name="l11097"></a><span class="lineno">11097</span></div>
|
|
<div class="line"><a id="l11105" name="l11105"></a><span class="lineno">11105</span> <span class="keyword">class </span>Column {</div>
|
|
<div class="line"><a id="l11106" name="l11106"></a><span class="lineno">11106</span> <span class="comment">// String to be written out</span></div>
|
|
<div class="line"><a id="l11107" name="l11107"></a><span class="lineno">11107</span> AnsiSkippingString m_string;</div>
|
|
<div class="line"><a id="l11108" name="l11108"></a><span class="lineno">11108</span> <span class="comment">// Width of the column for linebreaking</span></div>
|
|
<div class="line"><a id="l11109" name="l11109"></a><span class="lineno">11109</span> <span class="keywordtype">size_t</span> m_width = CATCH_CONFIG_CONSOLE_WIDTH - 1;</div>
|
|
<div class="line"><a id="l11110" name="l11110"></a><span class="lineno">11110</span> <span class="comment">// Indentation of other lines (including first if initial indent is</span></div>
|
|
<div class="line"><a id="l11111" name="l11111"></a><span class="lineno">11111</span> <span class="comment">// unset)</span></div>
|
|
<div class="line"><a id="l11112" name="l11112"></a><span class="lineno">11112</span> <span class="keywordtype">size_t</span> m_indent = 0;</div>
|
|
<div class="line"><a id="l11113" name="l11113"></a><span class="lineno">11113</span> <span class="comment">// Indentation of the first line</span></div>
|
|
<div class="line"><a id="l11114" name="l11114"></a><span class="lineno">11114</span> <span class="keywordtype">size_t</span> m_initialIndent = std::string::npos;</div>
|
|
<div class="line"><a id="l11115" name="l11115"></a><span class="lineno">11115</span> </div>
|
|
<div class="line"><a id="l11116" name="l11116"></a><span class="lineno">11116</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11120" name="l11120"></a><span class="lineno">11120</span> <span class="keyword">class </span>const_iterator {</div>
|
|
<div class="line"><a id="l11121" name="l11121"></a><span class="lineno">11121</span> <span class="keyword">friend</span> Column;</div>
|
|
<div class="line"><a id="l11122" name="l11122"></a><span class="lineno">11122</span> <span class="keyword">struct </span>EndTag {};</div>
|
|
<div class="line"><a id="l11123" name="l11123"></a><span class="lineno">11123</span> </div>
|
|
<div class="line"><a id="l11124" name="l11124"></a><span class="lineno">11124</span> Column <span class="keyword">const</span>& m_column;</div>
|
|
<div class="line"><a id="l11125" name="l11125"></a><span class="lineno">11125</span> <span class="comment">// Where does the current line start?</span></div>
|
|
<div class="line"><a id="l11126" name="l11126"></a><span class="lineno">11126</span> AnsiSkippingString::const_iterator m_lineStart;</div>
|
|
<div class="line"><a id="l11127" name="l11127"></a><span class="lineno">11127</span> <span class="comment">// How long should the current line be?</span></div>
|
|
<div class="line"><a id="l11128" name="l11128"></a><span class="lineno">11128</span> AnsiSkippingString::const_iterator m_lineEnd;</div>
|
|
<div class="line"><a id="l11129" name="l11129"></a><span class="lineno">11129</span> <span class="comment">// How far have we checked the string to iterate?</span></div>
|
|
<div class="line"><a id="l11130" name="l11130"></a><span class="lineno">11130</span> AnsiSkippingString::const_iterator m_parsedTo;</div>
|
|
<div class="line"><a id="l11131" name="l11131"></a><span class="lineno">11131</span> <span class="comment">// Should a '-' be appended to the line?</span></div>
|
|
<div class="line"><a id="l11132" name="l11132"></a><span class="lineno">11132</span> <span class="keywordtype">bool</span> m_addHyphen = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11133" name="l11133"></a><span class="lineno">11133</span> </div>
|
|
<div class="line"><a id="l11134" name="l11134"></a><span class="lineno">11134</span> const_iterator( Column <span class="keyword">const</span>& column, EndTag ):</div>
|
|
<div class="line"><a id="l11135" name="l11135"></a><span class="lineno">11135</span> m_column( column ),</div>
|
|
<div class="line"><a id="l11136" name="l11136"></a><span class="lineno">11136</span> m_lineStart( m_column.m_string.end() ),</div>
|
|
<div class="line"><a id="l11137" name="l11137"></a><span class="lineno">11137</span> m_lineEnd( column.m_string.end() ),</div>
|
|
<div class="line"><a id="l11138" name="l11138"></a><span class="lineno">11138</span> m_parsedTo( column.m_string.end() ) {}</div>
|
|
<div class="line"><a id="l11139" name="l11139"></a><span class="lineno">11139</span> </div>
|
|
<div class="line"><a id="l11140" name="l11140"></a><span class="lineno">11140</span> <span class="comment">// Calculates the length of the current line</span></div>
|
|
<div class="line"><a id="l11141" name="l11141"></a><span class="lineno">11141</span> <span class="keywordtype">void</span> calcLength();</div>
|
|
<div class="line"><a id="l11142" name="l11142"></a><span class="lineno">11142</span> </div>
|
|
<div class="line"><a id="l11143" name="l11143"></a><span class="lineno">11143</span> <span class="comment">// Returns current indentation width</span></div>
|
|
<div class="line"><a id="l11144" name="l11144"></a><span class="lineno">11144</span> <span class="keywordtype">size_t</span> indentSize() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11145" name="l11145"></a><span class="lineno">11145</span> </div>
|
|
<div class="line"><a id="l11146" name="l11146"></a><span class="lineno">11146</span> <span class="comment">// Creates an indented and (optionally) suffixed string from</span></div>
|
|
<div class="line"><a id="l11147" name="l11147"></a><span class="lineno">11147</span> <span class="comment">// current iterator position, indentation and length.</span></div>
|
|
<div class="line"><a id="l11148" name="l11148"></a><span class="lineno">11148</span> std::string addIndentAndSuffix(</div>
|
|
<div class="line"><a id="l11149" name="l11149"></a><span class="lineno">11149</span> AnsiSkippingString::const_iterator start,</div>
|
|
<div class="line"><a id="l11150" name="l11150"></a><span class="lineno">11150</span> AnsiSkippingString::const_iterator end ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11151" name="l11151"></a><span class="lineno">11151</span> </div>
|
|
<div class="line"><a id="l11152" name="l11152"></a><span class="lineno">11152</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11153" name="l11153"></a><span class="lineno">11153</span> <span class="keyword">using </span>difference_type = std::ptrdiff_t;</div>
|
|
<div class="line"><a id="l11154" name="l11154"></a><span class="lineno">11154</span> <span class="keyword">using </span>value_type = std::string;</div>
|
|
<div class="line"><a id="l11155" name="l11155"></a><span class="lineno">11155</span> <span class="keyword">using </span>pointer = value_type*;</div>
|
|
<div class="line"><a id="l11156" name="l11156"></a><span class="lineno">11156</span> <span class="keyword">using </span>reference = value_type&;</div>
|
|
<div class="line"><a id="l11157" name="l11157"></a><span class="lineno">11157</span> <span class="keyword">using </span>iterator_category = std::forward_iterator_tag;</div>
|
|
<div class="line"><a id="l11158" name="l11158"></a><span class="lineno">11158</span> </div>
|
|
<div class="line"><a id="l11159" name="l11159"></a><span class="lineno">11159</span> <span class="keyword">explicit</span> const_iterator( Column <span class="keyword">const</span>& column );</div>
|
|
<div class="line"><a id="l11160" name="l11160"></a><span class="lineno">11160</span> </div>
|
|
<div class="line"><a id="l11161" name="l11161"></a><span class="lineno">11161</span> std::string operator*() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11162" name="l11162"></a><span class="lineno">11162</span> </div>
|
|
<div class="line"><a id="l11163" name="l11163"></a><span class="lineno">11163</span> const_iterator& operator++();</div>
|
|
<div class="line"><a id="l11164" name="l11164"></a><span class="lineno">11164</span> const_iterator operator++( <span class="keywordtype">int</span> );</div>
|
|
<div class="line"><a id="l11165" name="l11165"></a><span class="lineno">11165</span> </div>
|
|
<div class="line"><a id="l11166" name="l11166"></a><span class="lineno">11166</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( const_iterator <span class="keyword">const</span>& other )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11167" name="l11167"></a><span class="lineno">11167</span> <span class="keywordflow">return</span> m_lineStart == other.m_lineStart &&</div>
|
|
<div class="line"><a id="l11168" name="l11168"></a><span class="lineno">11168</span> &m_column == &other.m_column;</div>
|
|
<div class="line"><a id="l11169" name="l11169"></a><span class="lineno">11169</span> }</div>
|
|
<div class="line"><a id="l11170" name="l11170"></a><span class="lineno">11170</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">operator!=</a>( const_iterator <span class="keyword">const</span>& other )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11171" name="l11171"></a><span class="lineno">11171</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( other );</div>
|
|
<div class="line"><a id="l11172" name="l11172"></a><span class="lineno">11172</span> }</div>
|
|
<div class="line"><a id="l11173" name="l11173"></a><span class="lineno">11173</span> };</div>
|
|
<div class="line"><a id="l11174" name="l11174"></a><span class="lineno">11174</span> <span class="keyword">using </span>iterator = const_iterator;</div>
|
|
<div class="line"><a id="l11175" name="l11175"></a><span class="lineno">11175</span> </div>
|
|
<div class="line"><a id="l11176" name="l11176"></a><span class="lineno">11176</span> <span class="keyword">explicit</span> Column( std::string <span class="keyword">const</span>& text ): m_string( <a class="code hl_function" href="namespacematplotlibcpp.html#ad765633aecb8e1000c8ee64783d47dd7">text</a> ) {}</div>
|
|
<div class="line"><a id="l11177" name="l11177"></a><span class="lineno">11177</span> <span class="keyword">explicit</span> Column( std::string&& text ):</div>
|
|
<div class="line"><a id="l11178" name="l11178"></a><span class="lineno">11178</span> m_string( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( <a class="code hl_function" href="namespacematplotlibcpp.html#ad765633aecb8e1000c8ee64783d47dd7">text</a> ) ) {}</div>
|
|
<div class="line"><a id="l11179" name="l11179"></a><span class="lineno">11179</span> </div>
|
|
<div class="line"><a id="l11180" name="l11180"></a><span class="lineno">11180</span> Column& width( <span class="keywordtype">size_t</span> newWidth ) & {</div>
|
|
<div class="line"><a id="l11181" name="l11181"></a><span class="lineno">11181</span> assert( newWidth > 0 );</div>
|
|
<div class="line"><a id="l11182" name="l11182"></a><span class="lineno">11182</span> m_width = newWidth;</div>
|
|
<div class="line"><a id="l11183" name="l11183"></a><span class="lineno">11183</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11184" name="l11184"></a><span class="lineno">11184</span> }</div>
|
|
<div class="line"><a id="l11185" name="l11185"></a><span class="lineno">11185</span> Column&& width( <span class="keywordtype">size_t</span> newWidth ) && {</div>
|
|
<div class="line"><a id="l11186" name="l11186"></a><span class="lineno">11186</span> assert( newWidth > 0 );</div>
|
|
<div class="line"><a id="l11187" name="l11187"></a><span class="lineno">11187</span> m_width = newWidth;</div>
|
|
<div class="line"><a id="l11188" name="l11188"></a><span class="lineno">11188</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( *<span class="keyword">this</span> );</div>
|
|
<div class="line"><a id="l11189" name="l11189"></a><span class="lineno">11189</span> }</div>
|
|
<div class="line"><a id="l11190" name="l11190"></a><span class="lineno">11190</span> Column& indent( <span class="keywordtype">size_t</span> newIndent ) & {</div>
|
|
<div class="line"><a id="l11191" name="l11191"></a><span class="lineno">11191</span> m_indent = newIndent;</div>
|
|
<div class="line"><a id="l11192" name="l11192"></a><span class="lineno">11192</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11193" name="l11193"></a><span class="lineno">11193</span> }</div>
|
|
<div class="line"><a id="l11194" name="l11194"></a><span class="lineno">11194</span> Column&& indent( <span class="keywordtype">size_t</span> newIndent ) && {</div>
|
|
<div class="line"><a id="l11195" name="l11195"></a><span class="lineno">11195</span> m_indent = newIndent;</div>
|
|
<div class="line"><a id="l11196" name="l11196"></a><span class="lineno">11196</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( *<span class="keyword">this</span> );</div>
|
|
<div class="line"><a id="l11197" name="l11197"></a><span class="lineno">11197</span> }</div>
|
|
<div class="line"><a id="l11198" name="l11198"></a><span class="lineno">11198</span> Column& initialIndent( <span class="keywordtype">size_t</span> newIndent ) & {</div>
|
|
<div class="line"><a id="l11199" name="l11199"></a><span class="lineno">11199</span> m_initialIndent = newIndent;</div>
|
|
<div class="line"><a id="l11200" name="l11200"></a><span class="lineno">11200</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11201" name="l11201"></a><span class="lineno">11201</span> }</div>
|
|
<div class="line"><a id="l11202" name="l11202"></a><span class="lineno">11202</span> Column&& initialIndent( <span class="keywordtype">size_t</span> newIndent ) && {</div>
|
|
<div class="line"><a id="l11203" name="l11203"></a><span class="lineno">11203</span> m_initialIndent = newIndent;</div>
|
|
<div class="line"><a id="l11204" name="l11204"></a><span class="lineno">11204</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( *<span class="keyword">this</span> );</div>
|
|
<div class="line"><a id="l11205" name="l11205"></a><span class="lineno">11205</span> }</div>
|
|
<div class="line"><a id="l11206" name="l11206"></a><span class="lineno">11206</span> </div>
|
|
<div class="line"><a id="l11207" name="l11207"></a><span class="lineno">11207</span> <span class="keywordtype">size_t</span> width()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_width; }</div>
|
|
<div class="line"><a id="l11208" name="l11208"></a><span class="lineno">11208</span> const_iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator( *<span class="keyword">this</span> ); }</div>
|
|
<div class="line"><a id="l11209" name="l11209"></a><span class="lineno">11209</span> const_iterator end()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11210" name="l11210"></a><span class="lineno">11210</span> <span class="keywordflow">return</span> { *<span class="keyword">this</span>, const_iterator::EndTag{} };</div>
|
|
<div class="line"><a id="l11211" name="l11211"></a><span class="lineno">11211</span> }</div>
|
|
<div class="line"><a id="l11212" name="l11212"></a><span class="lineno">11212</span> </div>
|
|
<div class="line"><a id="l11213" name="l11213"></a><span class="lineno">11213</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>( std::ostream& os,</div>
|
|
<div class="line"><a id="l11214" name="l11214"></a><span class="lineno">11214</span> Column <span class="keyword">const</span>& col );</div>
|
|
<div class="line"><a id="l11215" name="l11215"></a><span class="lineno">11215</span> </div>
|
|
<div class="line"><a id="l11216" name="l11216"></a><span class="lineno">11216</span> <span class="keyword">friend</span> Columns <a class="code hl_function" href="namespaceCatch.html#ae053e7e198e60bf45f2b8bc51050f5f4">operator+</a>( Column <span class="keyword">const</span>& lhs, Column <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l11217" name="l11217"></a><span class="lineno">11217</span> <span class="keyword">friend</span> Columns <a class="code hl_function" href="namespaceCatch.html#ae053e7e198e60bf45f2b8bc51050f5f4">operator+</a>( Column&& lhs, Column&& rhs );</div>
|
|
<div class="line"><a id="l11218" name="l11218"></a><span class="lineno">11218</span> };</div>
|
|
<div class="line"><a id="l11219" name="l11219"></a><span class="lineno">11219</span></div>
|
|
<div class="line"><a id="l11221" name="l11221"></a><span class="lineno">11221</span> Column <a class="code hl_function" href="namespaceCatch_1_1TextFlow.html#a24f631f4606e5664e764e6a6b9df5c04">Spacer</a>( <span class="keywordtype">size_t</span> spaceWidth );</div>
|
|
<div class="line"><a id="l11222" name="l11222"></a><span class="lineno">11222</span> </div>
|
|
<div class="line"><a id="l11223" name="l11223"></a><span class="lineno">11223</span> <span class="keyword">class </span>Columns {</div>
|
|
<div class="line"><a id="l11224" name="l11224"></a><span class="lineno">11224</span> std::vector<Column> m_columns;</div>
|
|
<div class="line"><a id="l11225" name="l11225"></a><span class="lineno">11225</span> </div>
|
|
<div class="line"><a id="l11226" name="l11226"></a><span class="lineno">11226</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11227" name="l11227"></a><span class="lineno">11227</span> <span class="keyword">class </span>iterator {</div>
|
|
<div class="line"><a id="l11228" name="l11228"></a><span class="lineno">11228</span> <span class="keyword">friend</span> Columns;</div>
|
|
<div class="line"><a id="l11229" name="l11229"></a><span class="lineno">11229</span> <span class="keyword">struct </span>EndTag {};</div>
|
|
<div class="line"><a id="l11230" name="l11230"></a><span class="lineno">11230</span> </div>
|
|
<div class="line"><a id="l11231" name="l11231"></a><span class="lineno">11231</span> std::vector<Column> <span class="keyword">const</span>& m_columns;</div>
|
|
<div class="line"><a id="l11232" name="l11232"></a><span class="lineno">11232</span> std::vector<Column::const_iterator> m_iterators;</div>
|
|
<div class="line"><a id="l11233" name="l11233"></a><span class="lineno">11233</span> <span class="keywordtype">size_t</span> m_activeIterators;</div>
|
|
<div class="line"><a id="l11234" name="l11234"></a><span class="lineno">11234</span> </div>
|
|
<div class="line"><a id="l11235" name="l11235"></a><span class="lineno">11235</span> iterator( Columns <span class="keyword">const</span>& columns, EndTag );</div>
|
|
<div class="line"><a id="l11236" name="l11236"></a><span class="lineno">11236</span> </div>
|
|
<div class="line"><a id="l11237" name="l11237"></a><span class="lineno">11237</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11238" name="l11238"></a><span class="lineno">11238</span> <span class="keyword">using </span>difference_type = std::ptrdiff_t;</div>
|
|
<div class="line"><a id="l11239" name="l11239"></a><span class="lineno">11239</span> <span class="keyword">using </span>value_type = std::string;</div>
|
|
<div class="line"><a id="l11240" name="l11240"></a><span class="lineno">11240</span> <span class="keyword">using </span>pointer = value_type*;</div>
|
|
<div class="line"><a id="l11241" name="l11241"></a><span class="lineno">11241</span> <span class="keyword">using </span>reference = value_type&;</div>
|
|
<div class="line"><a id="l11242" name="l11242"></a><span class="lineno">11242</span> <span class="keyword">using </span>iterator_category = std::forward_iterator_tag;</div>
|
|
<div class="line"><a id="l11243" name="l11243"></a><span class="lineno">11243</span> </div>
|
|
<div class="line"><a id="l11244" name="l11244"></a><span class="lineno">11244</span> <span class="keyword">explicit</span> iterator( Columns <span class="keyword">const</span>& columns );</div>
|
|
<div class="line"><a id="l11245" name="l11245"></a><span class="lineno">11245</span> </div>
|
|
<div class="line"><a id="l11246" name="l11246"></a><span class="lineno">11246</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">operator==</a>( iterator <span class="keyword">const</span>& other ) <span class="keyword">const</span> -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l11247" name="l11247"></a><span class="lineno">11247</span> <span class="keywordflow">return</span> m_iterators == other.m_iterators;</div>
|
|
<div class="line"><a id="l11248" name="l11248"></a><span class="lineno">11248</span> }</div>
|
|
<div class="line"><a id="l11249" name="l11249"></a><span class="lineno">11249</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">operator!=</a>( iterator <span class="keyword">const</span>& other ) <span class="keyword">const</span> -> <span class="keywordtype">bool</span> {</div>
|
|
<div class="line"><a id="l11250" name="l11250"></a><span class="lineno">11250</span> <span class="keywordflow">return</span> m_iterators != other.m_iterators;</div>
|
|
<div class="line"><a id="l11251" name="l11251"></a><span class="lineno">11251</span> }</div>
|
|
<div class="line"><a id="l11252" name="l11252"></a><span class="lineno">11252</span> std::string operator*() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11253" name="l11253"></a><span class="lineno">11253</span> iterator& operator++();</div>
|
|
<div class="line"><a id="l11254" name="l11254"></a><span class="lineno">11254</span> iterator operator++( <span class="keywordtype">int</span> );</div>
|
|
<div class="line"><a id="l11255" name="l11255"></a><span class="lineno">11255</span> };</div>
|
|
<div class="line"><a id="l11256" name="l11256"></a><span class="lineno">11256</span> <span class="keyword">using </span>const_iterator = iterator;</div>
|
|
<div class="line"><a id="l11257" name="l11257"></a><span class="lineno">11257</span> </div>
|
|
<div class="line"><a id="l11258" name="l11258"></a><span class="lineno">11258</span> iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator( *<span class="keyword">this</span> ); }</div>
|
|
<div class="line"><a id="l11259" name="l11259"></a><span class="lineno">11259</span> iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { *<span class="keyword">this</span>, iterator::EndTag() }; }</div>
|
|
<div class="line"><a id="l11260" name="l11260"></a><span class="lineno">11260</span> </div>
|
|
<div class="line"><a id="l11261" name="l11261"></a><span class="lineno">11261</span> <span class="keyword">friend</span> Columns& <a class="code hl_function" href="namespaceCatch.html#a1c519834d917d9c6d2df64f26abcf059">operator+=</a>( Columns& lhs, Column <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l11262" name="l11262"></a><span class="lineno">11262</span> <span class="keyword">friend</span> Columns& <a class="code hl_function" href="namespaceCatch.html#a1c519834d917d9c6d2df64f26abcf059">operator+=</a>( Columns& lhs, Column&& rhs );</div>
|
|
<div class="line"><a id="l11263" name="l11263"></a><span class="lineno">11263</span> <span class="keyword">friend</span> Columns <a class="code hl_function" href="namespaceCatch.html#ae053e7e198e60bf45f2b8bc51050f5f4">operator+</a>( Columns <span class="keyword">const</span>& lhs, Column <span class="keyword">const</span>& rhs );</div>
|
|
<div class="line"><a id="l11264" name="l11264"></a><span class="lineno">11264</span> <span class="keyword">friend</span> Columns <a class="code hl_function" href="namespaceCatch.html#ae053e7e198e60bf45f2b8bc51050f5f4">operator+</a>( Columns&& lhs, Column&& rhs );</div>
|
|
<div class="line"><a id="l11265" name="l11265"></a><span class="lineno">11265</span> </div>
|
|
<div class="line"><a id="l11266" name="l11266"></a><span class="lineno">11266</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>( std::ostream& os,</div>
|
|
<div class="line"><a id="l11267" name="l11267"></a><span class="lineno">11267</span> Columns <span class="keyword">const</span>& cols );</div>
|
|
<div class="line"><a id="l11268" name="l11268"></a><span class="lineno">11268</span> };</div>
|
|
<div class="line"><a id="l11269" name="l11269"></a><span class="lineno">11269</span> </div>
|
|
<div class="line"><a id="l11270" name="l11270"></a><span class="lineno">11270</span> } <span class="comment">// namespace TextFlow</span></div>
|
|
<div class="line"><a id="l11271" name="l11271"></a><span class="lineno">11271</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l11272" name="l11272"></a><span class="lineno">11272</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TEXTFLOW_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11273" name="l11273"></a><span class="lineno">11273</span> </div>
|
|
<div class="line"><a id="l11274" name="l11274"></a><span class="lineno">11274</span> </div>
|
|
<div class="line"><a id="l11275" name="l11275"></a><span class="lineno">11275</span><span class="preprocessor">#ifndef CATCH_TO_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11276" name="l11276"></a><span class="lineno">11276</span><span class="preprocessor">#define CATCH_TO_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11277" name="l11277"></a><span class="lineno">11277</span> </div>
|
|
<div class="line"><a id="l11278" name="l11278"></a><span class="lineno">11278</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l11279" name="l11279"></a><span class="lineno">11279</span> </div>
|
|
<div class="line"><a id="l11280" name="l11280"></a><span class="lineno">11280</span> </div>
|
|
<div class="line"><a id="l11281" name="l11281"></a><span class="lineno">11281</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11282" name="l11282"></a><span class="lineno">11282</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11283" name="l11283"></a><span class="lineno">11283</span> std::string to_string(T <span class="keyword">const</span>& t) {</div>
|
|
<div class="line"><a id="l11284" name="l11284"></a><span class="lineno">11284</span><span class="preprocessor">#if defined(CATCH_CONFIG_CPP11_TO_STRING)</span></div>
|
|
<div class="line"><a id="l11285" name="l11285"></a><span class="lineno">11285</span> <span class="keywordflow">return</span> std::to_string(t);</div>
|
|
<div class="line"><a id="l11286" name="l11286"></a><span class="lineno">11286</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l11287" name="l11287"></a><span class="lineno">11287</span> ReusableStringStream rss;</div>
|
|
<div class="line"><a id="l11288" name="l11288"></a><span class="lineno">11288</span> rss << t;</div>
|
|
<div class="line"><a id="l11289" name="l11289"></a><span class="lineno">11289</span> <span class="keywordflow">return</span> rss.str();</div>
|
|
<div class="line"><a id="l11290" name="l11290"></a><span class="lineno">11290</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l11291" name="l11291"></a><span class="lineno">11291</span> }</div>
|
|
<div class="line"><a id="l11292" name="l11292"></a><span class="lineno">11292</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l11293" name="l11293"></a><span class="lineno">11293</span> </div>
|
|
<div class="line"><a id="l11294" name="l11294"></a><span class="lineno">11294</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_TO_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11295" name="l11295"></a><span class="lineno">11295</span> </div>
|
|
<div class="line"><a id="l11296" name="l11296"></a><span class="lineno">11296</span> </div>
|
|
<div class="line"><a id="l11297" name="l11297"></a><span class="lineno">11297</span><span class="preprocessor">#ifndef CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11298" name="l11298"></a><span class="lineno">11298</span><span class="preprocessor">#define CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11299" name="l11299"></a><span class="lineno">11299</span> </div>
|
|
<div class="line"><a id="l11300" name="l11300"></a><span class="lineno">11300</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11301" name="l11301"></a><span class="lineno">11301</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#a4b5a2b34a00e65b753185bbc6a4962be">uncaught_exceptions</a>();</div>
|
|
<div class="line"><a id="l11302" name="l11302"></a><span class="lineno">11302</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l11303" name="l11303"></a><span class="lineno">11303</span> </div>
|
|
<div class="line"><a id="l11304" name="l11304"></a><span class="lineno">11304</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11305" name="l11305"></a><span class="lineno">11305</span> </div>
|
|
<div class="line"><a id="l11306" name="l11306"></a><span class="lineno">11306</span> </div>
|
|
<div class="line"><a id="l11307" name="l11307"></a><span class="lineno">11307</span><span class="preprocessor">#ifndef CATCH_XMLWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11308" name="l11308"></a><span class="lineno">11308</span><span class="preprocessor">#define CATCH_XMLWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11309" name="l11309"></a><span class="lineno">11309</span> </div>
|
|
<div class="line"><a id="l11310" name="l11310"></a><span class="lineno">11310</span> </div>
|
|
<div class="line"><a id="l11311" name="l11311"></a><span class="lineno">11311</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l11312" name="l11312"></a><span class="lineno">11312</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l11313" name="l11313"></a><span class="lineno">11313</span><span class="preprocessor">#include <cstdint></span></div>
|
|
<div class="line"><a id="l11314" name="l11314"></a><span class="lineno">11314</span> </div>
|
|
<div class="line"><a id="l11315" name="l11315"></a><span class="lineno">11315</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11316" name="l11316"></a><span class="lineno">11316</span> <span class="keyword">enum class</span> XmlFormatting : std::uint8_t {</div>
|
|
<div class="line"><a id="l11317" name="l11317"></a><span class="lineno">11317</span> <a class="code hl_enumvalue" href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">None</a> = 0x00,</div>
|
|
<div class="line"><a id="l11318" name="l11318"></a><span class="lineno">11318</span> Indent = 0x01,</div>
|
|
<div class="line"><a id="l11319" name="l11319"></a><span class="lineno">11319</span> Newline = 0x02,</div>
|
|
<div class="line"><a id="l11320" name="l11320"></a><span class="lineno">11320</span> };</div>
|
|
<div class="line"><a id="l11321" name="l11321"></a><span class="lineno">11321</span> </div>
|
|
<div class="line"><a id="l11322" name="l11322"></a><span class="lineno">11322</span> <span class="keyword">constexpr</span> XmlFormatting <a class="code hl_function" href="namespaceCatch.html#a669c2650aec6ea2e3e0710b7fc552e68">operator|</a>( XmlFormatting lhs, XmlFormatting rhs ) {</div>
|
|
<div class="line"><a id="l11323" name="l11323"></a><span class="lineno">11323</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>XmlFormatting<span class="keyword">></span>( <span class="keyword">static_cast<</span>std::uint8_t<span class="keyword">></span>( lhs ) |</div>
|
|
<div class="line"><a id="l11324" name="l11324"></a><span class="lineno">11324</span> <span class="keyword">static_cast<</span>std::uint8_t<span class="keyword">></span>( rhs ) );</div>
|
|
<div class="line"><a id="l11325" name="l11325"></a><span class="lineno">11325</span> }</div>
|
|
<div class="line"><a id="l11326" name="l11326"></a><span class="lineno">11326</span> </div>
|
|
<div class="line"><a id="l11327" name="l11327"></a><span class="lineno">11327</span> <span class="keyword">constexpr</span> XmlFormatting operator&( XmlFormatting lhs, XmlFormatting rhs ) {</div>
|
|
<div class="line"><a id="l11328" name="l11328"></a><span class="lineno">11328</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>XmlFormatting<span class="keyword">></span>( <span class="keyword">static_cast<</span>std::uint8_t<span class="keyword">></span>( lhs ) &</div>
|
|
<div class="line"><a id="l11329" name="l11329"></a><span class="lineno">11329</span> <span class="keyword">static_cast<</span>std::uint8_t<span class="keyword">></span>( rhs ) );</div>
|
|
<div class="line"><a id="l11330" name="l11330"></a><span class="lineno">11330</span> }</div>
|
|
<div class="line"><a id="l11331" name="l11331"></a><span class="lineno">11331</span> </div>
|
|
<div class="line"><a id="l11332" name="l11332"></a><span class="lineno">11332</span></div>
|
|
<div class="line"><a id="l11339" name="l11339"></a><span class="lineno">11339</span> <span class="keyword">class </span>XmlEncode {</div>
|
|
<div class="line"><a id="l11340" name="l11340"></a><span class="lineno">11340</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11341" name="l11341"></a><span class="lineno">11341</span> <span class="keyword">enum</span> ForWhat { ForTextNodes, ForAttributes };</div>
|
|
<div class="line"><a id="l11342" name="l11342"></a><span class="lineno">11342</span> </div>
|
|
<div class="line"><a id="l11343" name="l11343"></a><span class="lineno">11343</span> <span class="keyword">constexpr</span> XmlEncode( StringRef str, ForWhat forWhat = ForTextNodes ):</div>
|
|
<div class="line"><a id="l11344" name="l11344"></a><span class="lineno">11344</span> m_str( str ), m_forWhat( forWhat ) {}</div>
|
|
<div class="line"><a id="l11345" name="l11345"></a><span class="lineno">11345</span> </div>
|
|
<div class="line"><a id="l11346" name="l11346"></a><span class="lineno">11346</span> </div>
|
|
<div class="line"><a id="l11347" name="l11347"></a><span class="lineno">11347</span> <span class="keywordtype">void</span> encodeTo( std::ostream& os ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11348" name="l11348"></a><span class="lineno">11348</span> </div>
|
|
<div class="line"><a id="l11349" name="l11349"></a><span class="lineno">11349</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator << </a>( std::ostream& os, XmlEncode <span class="keyword">const</span>& xmlEncode );</div>
|
|
<div class="line"><a id="l11350" name="l11350"></a><span class="lineno">11350</span> </div>
|
|
<div class="line"><a id="l11351" name="l11351"></a><span class="lineno">11351</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l11352" name="l11352"></a><span class="lineno">11352</span> StringRef m_str;</div>
|
|
<div class="line"><a id="l11353" name="l11353"></a><span class="lineno">11353</span> ForWhat m_forWhat;</div>
|
|
<div class="line"><a id="l11354" name="l11354"></a><span class="lineno">11354</span> };</div>
|
|
<div class="line"><a id="l11355" name="l11355"></a><span class="lineno">11355</span> </div>
|
|
<div class="line"><a id="l11356" name="l11356"></a><span class="lineno">11356</span> <span class="keyword">class </span>XmlWriter {</div>
|
|
<div class="line"><a id="l11357" name="l11357"></a><span class="lineno">11357</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11358" name="l11358"></a><span class="lineno">11358</span> </div>
|
|
<div class="line"><a id="l11359" name="l11359"></a><span class="lineno">11359</span> <span class="keyword">class </span>ScopedElement {</div>
|
|
<div class="line"><a id="l11360" name="l11360"></a><span class="lineno">11360</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11361" name="l11361"></a><span class="lineno">11361</span> ScopedElement( XmlWriter* writer, XmlFormatting fmt );</div>
|
|
<div class="line"><a id="l11362" name="l11362"></a><span class="lineno">11362</span> </div>
|
|
<div class="line"><a id="l11363" name="l11363"></a><span class="lineno">11363</span> ScopedElement( ScopedElement&& other ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l11364" name="l11364"></a><span class="lineno">11364</span> ScopedElement& operator=( ScopedElement&& other ) <span class="keyword">noexcept</span>;</div>
|
|
<div class="line"><a id="l11365" name="l11365"></a><span class="lineno">11365</span> </div>
|
|
<div class="line"><a id="l11366" name="l11366"></a><span class="lineno">11366</span> ~ScopedElement();</div>
|
|
<div class="line"><a id="l11367" name="l11367"></a><span class="lineno">11367</span> </div>
|
|
<div class="line"><a id="l11368" name="l11368"></a><span class="lineno">11368</span> ScopedElement&</div>
|
|
<div class="line"><a id="l11369" name="l11369"></a><span class="lineno">11369</span> writeText( StringRef text,</div>
|
|
<div class="line"><a id="l11370" name="l11370"></a><span class="lineno">11370</span> XmlFormatting fmt = XmlFormatting::Newline |</div>
|
|
<div class="line"><a id="l11371" name="l11371"></a><span class="lineno">11371</span> XmlFormatting::Indent );</div>
|
|
<div class="line"><a id="l11372" name="l11372"></a><span class="lineno">11372</span> </div>
|
|
<div class="line"><a id="l11373" name="l11373"></a><span class="lineno">11373</span> ScopedElement& writeAttribute( StringRef name,</div>
|
|
<div class="line"><a id="l11374" name="l11374"></a><span class="lineno">11374</span> StringRef attribute );</div>
|
|
<div class="line"><a id="l11375" name="l11375"></a><span class="lineno">11375</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l11376" name="l11376"></a><span class="lineno">11376</span> <span class="comment">// Without this SFINAE, this overload is a better match</span></div>
|
|
<div class="line"><a id="l11377" name="l11377"></a><span class="lineno">11377</span> <span class="comment">// for `std::string`, `char const*`, `char const[N]` args.</span></div>
|
|
<div class="line"><a id="l11378" name="l11378"></a><span class="lineno">11378</span> <span class="comment">// While it would still work, it would cause code bloat</span></div>
|
|
<div class="line"><a id="l11379" name="l11379"></a><span class="lineno">11379</span> <span class="comment">// and multiple iteration over the strings</span></div>
|
|
<div class="line"><a id="l11380" name="l11380"></a><span class="lineno">11380</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l11381" name="l11381"></a><span class="lineno">11381</span> !std::is_convertible<T, StringRef>::value>></div>
|
|
<div class="line"><a id="l11382" name="l11382"></a><span class="lineno">11382</span> ScopedElement& writeAttribute( StringRef name,</div>
|
|
<div class="line"><a id="l11383" name="l11383"></a><span class="lineno">11383</span> T <span class="keyword">const</span>& attribute ) {</div>
|
|
<div class="line"><a id="l11384" name="l11384"></a><span class="lineno">11384</span> m_writer->writeAttribute( name, attribute );</div>
|
|
<div class="line"><a id="l11385" name="l11385"></a><span class="lineno">11385</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l11386" name="l11386"></a><span class="lineno">11386</span> }</div>
|
|
<div class="line"><a id="l11387" name="l11387"></a><span class="lineno">11387</span> </div>
|
|
<div class="line"><a id="l11388" name="l11388"></a><span class="lineno">11388</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l11389" name="l11389"></a><span class="lineno">11389</span> XmlWriter* m_writer = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l11390" name="l11390"></a><span class="lineno">11390</span> XmlFormatting m_fmt;</div>
|
|
<div class="line"><a id="l11391" name="l11391"></a><span class="lineno">11391</span> };</div>
|
|
<div class="line"><a id="l11392" name="l11392"></a><span class="lineno">11392</span> </div>
|
|
<div class="line"><a id="l11393" name="l11393"></a><span class="lineno">11393</span> XmlWriter( std::ostream& os );</div>
|
|
<div class="line"><a id="l11394" name="l11394"></a><span class="lineno">11394</span> ~XmlWriter();</div>
|
|
<div class="line"><a id="l11395" name="l11395"></a><span class="lineno">11395</span> </div>
|
|
<div class="line"><a id="l11396" name="l11396"></a><span class="lineno">11396</span> XmlWriter( XmlWriter <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11397" name="l11397"></a><span class="lineno">11397</span> XmlWriter& operator=( XmlWriter <span class="keyword">const</span>& ) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11398" name="l11398"></a><span class="lineno">11398</span> </div>
|
|
<div class="line"><a id="l11399" name="l11399"></a><span class="lineno">11399</span> XmlWriter& startElement( std::string <span class="keyword">const</span>& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);</div>
|
|
<div class="line"><a id="l11400" name="l11400"></a><span class="lineno">11400</span> </div>
|
|
<div class="line"><a id="l11401" name="l11401"></a><span class="lineno">11401</span> ScopedElement scopedElement( std::string <span class="keyword">const</span>& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);</div>
|
|
<div class="line"><a id="l11402" name="l11402"></a><span class="lineno">11402</span> </div>
|
|
<div class="line"><a id="l11403" name="l11403"></a><span class="lineno">11403</span> XmlWriter& endElement(XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);</div>
|
|
<div class="line"><a id="l11404" name="l11404"></a><span class="lineno">11404</span></div>
|
|
<div class="line"><a id="l11406" name="l11406"></a><span class="lineno">11406</span> XmlWriter& writeAttribute( StringRef name, StringRef attribute );</div>
|
|
<div class="line"><a id="l11407" name="l11407"></a><span class="lineno">11407</span></div>
|
|
<div class="line"><a id="l11409" name="l11409"></a><span class="lineno">11409</span> XmlWriter& writeAttribute( StringRef name, <span class="keywordtype">bool</span> attribute );</div>
|
|
<div class="line"><a id="l11410" name="l11410"></a><span class="lineno">11410</span></div>
|
|
<div class="line"><a id="l11412" name="l11412"></a><span class="lineno">11412</span> XmlWriter& writeAttribute( StringRef name, <span class="keywordtype">char</span> <span class="keyword">const</span>* attribute );</div>
|
|
<div class="line"><a id="l11413" name="l11413"></a><span class="lineno">11413</span></div>
|
|
<div class="line"><a id="l11416" name="l11416"></a><span class="lineno">11416</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l11417" name="l11417"></a><span class="lineno">11417</span> <span class="comment">// Without this SFINAE, this overload is a better match</span></div>
|
|
<div class="line"><a id="l11418" name="l11418"></a><span class="lineno">11418</span> <span class="comment">// for `std::string`, `char const*`, `char const[N]` args.</span></div>
|
|
<div class="line"><a id="l11419" name="l11419"></a><span class="lineno">11419</span> <span class="comment">// While it would still work, it would cause code bloat</span></div>
|
|
<div class="line"><a id="l11420" name="l11420"></a><span class="lineno">11420</span> <span class="comment">// and multiple iteration over the strings</span></div>
|
|
<div class="line"><a id="l11421" name="l11421"></a><span class="lineno">11421</span> <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if_t<</div>
|
|
<div class="line"><a id="l11422" name="l11422"></a><span class="lineno">11422</span> !std::is_convertible<T, StringRef>::value>></div>
|
|
<div class="line"><a id="l11423" name="l11423"></a><span class="lineno">11423</span> XmlWriter& writeAttribute( StringRef name, T <span class="keyword">const</span>& attribute ) {</div>
|
|
<div class="line"><a id="l11424" name="l11424"></a><span class="lineno">11424</span> ReusableStringStream rss;</div>
|
|
<div class="line"><a id="l11425" name="l11425"></a><span class="lineno">11425</span> rss << attribute;</div>
|
|
<div class="line"><a id="l11426" name="l11426"></a><span class="lineno">11426</span> <span class="keywordflow">return</span> writeAttribute( name, rss.str() );</div>
|
|
<div class="line"><a id="l11427" name="l11427"></a><span class="lineno">11427</span> }</div>
|
|
<div class="line"><a id="l11428" name="l11428"></a><span class="lineno">11428</span></div>
|
|
<div class="line"><a id="l11430" name="l11430"></a><span class="lineno">11430</span> XmlWriter& writeText( StringRef text,</div>
|
|
<div class="line"><a id="l11431" name="l11431"></a><span class="lineno">11431</span> XmlFormatting fmt = XmlFormatting::Newline |</div>
|
|
<div class="line"><a id="l11432" name="l11432"></a><span class="lineno">11432</span> XmlFormatting::Indent );</div>
|
|
<div class="line"><a id="l11433" name="l11433"></a><span class="lineno">11433</span></div>
|
|
<div class="line"><a id="l11435" name="l11435"></a><span class="lineno">11435</span> XmlWriter& writeComment( StringRef text,</div>
|
|
<div class="line"><a id="l11436" name="l11436"></a><span class="lineno">11436</span> XmlFormatting fmt = XmlFormatting::Newline |</div>
|
|
<div class="line"><a id="l11437" name="l11437"></a><span class="lineno">11437</span> XmlFormatting::Indent );</div>
|
|
<div class="line"><a id="l11438" name="l11438"></a><span class="lineno">11438</span> </div>
|
|
<div class="line"><a id="l11439" name="l11439"></a><span class="lineno">11439</span> <span class="keywordtype">void</span> writeStylesheetRef( StringRef url );</div>
|
|
<div class="line"><a id="l11440" name="l11440"></a><span class="lineno">11440</span> </div>
|
|
<div class="line"><a id="l11441" name="l11441"></a><span class="lineno">11441</span> <span class="keywordtype">void</span> ensureTagClosed();</div>
|
|
<div class="line"><a id="l11442" name="l11442"></a><span class="lineno">11442</span> </div>
|
|
<div class="line"><a id="l11443" name="l11443"></a><span class="lineno">11443</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l11444" name="l11444"></a><span class="lineno">11444</span> </div>
|
|
<div class="line"><a id="l11445" name="l11445"></a><span class="lineno">11445</span> <span class="keywordtype">void</span> applyFormatting(XmlFormatting fmt);</div>
|
|
<div class="line"><a id="l11446" name="l11446"></a><span class="lineno">11446</span> </div>
|
|
<div class="line"><a id="l11447" name="l11447"></a><span class="lineno">11447</span> <span class="keywordtype">void</span> writeDeclaration();</div>
|
|
<div class="line"><a id="l11448" name="l11448"></a><span class="lineno">11448</span> </div>
|
|
<div class="line"><a id="l11449" name="l11449"></a><span class="lineno">11449</span> <span class="keywordtype">void</span> newlineIfNecessary();</div>
|
|
<div class="line"><a id="l11450" name="l11450"></a><span class="lineno">11450</span> </div>
|
|
<div class="line"><a id="l11451" name="l11451"></a><span class="lineno">11451</span> <span class="keywordtype">bool</span> m_tagIsOpen = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11452" name="l11452"></a><span class="lineno">11452</span> <span class="keywordtype">bool</span> m_needsNewline = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11453" name="l11453"></a><span class="lineno">11453</span> std::vector<std::string> m_tags;</div>
|
|
<div class="line"><a id="l11454" name="l11454"></a><span class="lineno">11454</span> std::string m_indent;</div>
|
|
<div class="line"><a id="l11455" name="l11455"></a><span class="lineno">11455</span> std::ostream& m_os;</div>
|
|
<div class="line"><a id="l11456" name="l11456"></a><span class="lineno">11456</span> };</div>
|
|
<div class="line"><a id="l11457" name="l11457"></a><span class="lineno">11457</span> </div>
|
|
<div class="line"><a id="l11458" name="l11458"></a><span class="lineno">11458</span>}</div>
|
|
<div class="line"><a id="l11459" name="l11459"></a><span class="lineno">11459</span> </div>
|
|
<div class="line"><a id="l11460" name="l11460"></a><span class="lineno">11460</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_XMLWRITER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11461" name="l11461"></a><span class="lineno">11461</span> </div>
|
|
<div class="line"><a id="l11462" name="l11462"></a><span class="lineno">11462</span></div>
|
|
<div class="line"><a id="l11474" name="l11474"></a><span class="lineno">11474</span> </div>
|
|
<div class="line"><a id="l11475" name="l11475"></a><span class="lineno">11475</span><span class="preprocessor">#ifndef CATCH_MATCHERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11476" name="l11476"></a><span class="lineno">11476</span><span class="preprocessor">#define CATCH_MATCHERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11477" name="l11477"></a><span class="lineno">11477</span> </div>
|
|
<div class="line"><a id="l11478" name="l11478"></a><span class="lineno">11478</span> </div>
|
|
<div class="line"><a id="l11479" name="l11479"></a><span class="lineno">11479</span> </div>
|
|
<div class="line"><a id="l11480" name="l11480"></a><span class="lineno">11480</span><span class="preprocessor">#ifndef CATCH_MATCHERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11481" name="l11481"></a><span class="lineno">11481</span><span class="preprocessor">#define CATCH_MATCHERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11482" name="l11482"></a><span class="lineno">11482</span> </div>
|
|
<div class="line"><a id="l11483" name="l11483"></a><span class="lineno">11483</span> </div>
|
|
<div class="line"><a id="l11484" name="l11484"></a><span class="lineno">11484</span> </div>
|
|
<div class="line"><a id="l11485" name="l11485"></a><span class="lineno">11485</span><span class="preprocessor">#ifndef CATCH_MATCHERS_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11486" name="l11486"></a><span class="lineno">11486</span><span class="preprocessor">#define CATCH_MATCHERS_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11487" name="l11487"></a><span class="lineno">11487</span> </div>
|
|
<div class="line"><a id="l11488" name="l11488"></a><span class="lineno">11488</span> </div>
|
|
<div class="line"><a id="l11489" name="l11489"></a><span class="lineno">11489</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l11490" name="l11490"></a><span class="lineno">11490</span> </div>
|
|
<div class="line"><a id="l11491" name="l11491"></a><span class="lineno">11491</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11492" name="l11492"></a><span class="lineno">11492</span> </div>
|
|
<div class="line"><a id="l11493" name="l11493"></a><span class="lineno">11493</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l11494" name="l11494"></a><span class="lineno">11494</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l11495" name="l11495"></a><span class="lineno">11495</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wsign-compare"</span></div>
|
|
<div class="line"><a id="l11496" name="l11496"></a><span class="lineno">11496</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wnon-virtual-dtor"</span></div>
|
|
<div class="line"><a id="l11497" name="l11497"></a><span class="lineno">11497</span><span class="preprocessor">#elif defined __GNUC__</span></div>
|
|
<div class="line"><a id="l11498" name="l11498"></a><span class="lineno">11498</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
|
|
<div class="line"><a id="l11499" name="l11499"></a><span class="lineno">11499</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wsign-compare"</span></div>
|
|
<div class="line"><a id="l11500" name="l11500"></a><span class="lineno">11500</span><span class="preprocessor"># pragma GCC diagnostic ignored "-Wnon-virtual-dtor"</span></div>
|
|
<div class="line"><a id="l11501" name="l11501"></a><span class="lineno">11501</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l11502" name="l11502"></a><span class="lineno">11502</span> </div>
|
|
<div class="line"><a id="l11503" name="l11503"></a><span class="lineno">11503</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT, <span class="keyword">typename</span> MatcherT></div>
|
|
<div class="line"><a id="l11504" name="l11504"></a><span class="lineno">11504</span> <span class="keyword">class </span>MatchExpr : <span class="keyword">public</span> ITransientExpression {</div>
|
|
<div class="line"><a id="l11505" name="l11505"></a><span class="lineno">11505</span> ArgT && m_arg;</div>
|
|
<div class="line"><a id="l11506" name="l11506"></a><span class="lineno">11506</span> MatcherT <span class="keyword">const</span>& m_matcher;</div>
|
|
<div class="line"><a id="l11507" name="l11507"></a><span class="lineno">11507</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11508" name="l11508"></a><span class="lineno">11508</span> <span class="keyword">constexpr</span> MatchExpr( ArgT && arg, MatcherT <span class="keyword">const</span>& matcher )</div>
|
|
<div class="line"><a id="l11509" name="l11509"></a><span class="lineno">11509</span> : ITransientExpression{ true, matcher.match( arg ) }, <span class="comment">// not forwarding arg here on purpose</span></div>
|
|
<div class="line"><a id="l11510" name="l11510"></a><span class="lineno">11510</span> m_arg( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(arg) ),</div>
|
|
<div class="line"><a id="l11511" name="l11511"></a><span class="lineno">11511</span> m_matcher( matcher )</div>
|
|
<div class="line"><a id="l11512" name="l11512"></a><span class="lineno">11512</span> {}</div>
|
|
<div class="line"><a id="l11513" name="l11513"></a><span class="lineno">11513</span> </div>
|
|
<div class="line"><a id="l11514" name="l11514"></a><span class="lineno">11514</span> <span class="keywordtype">void</span> streamReconstructedExpression( std::ostream& os )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11515" name="l11515"></a><span class="lineno">11515</span> os << <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( m_arg )</div>
|
|
<div class="line"><a id="l11516" name="l11516"></a><span class="lineno">11516</span> << <span class="charliteral">' '</span></div>
|
|
<div class="line"><a id="l11517" name="l11517"></a><span class="lineno">11517</span> << m_matcher.toString();</div>
|
|
<div class="line"><a id="l11518" name="l11518"></a><span class="lineno">11518</span> }</div>
|
|
<div class="line"><a id="l11519" name="l11519"></a><span class="lineno">11519</span> };</div>
|
|
<div class="line"><a id="l11520" name="l11520"></a><span class="lineno">11520</span> </div>
|
|
<div class="line"><a id="l11521" name="l11521"></a><span class="lineno">11521</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l11522" name="l11522"></a><span class="lineno">11522</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l11523" name="l11523"></a><span class="lineno">11523</span><span class="preprocessor">#elif defined __GNUC__</span></div>
|
|
<div class="line"><a id="l11524" name="l11524"></a><span class="lineno">11524</span><span class="preprocessor"># pragma GCC diagnostic pop</span></div>
|
|
<div class="line"><a id="l11525" name="l11525"></a><span class="lineno">11525</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l11526" name="l11526"></a><span class="lineno">11526</span> </div>
|
|
<div class="line"><a id="l11527" name="l11527"></a><span class="lineno">11527</span> </div>
|
|
<div class="line"><a id="l11528" name="l11528"></a><span class="lineno">11528</span> <span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l11529" name="l11529"></a><span class="lineno">11529</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11530" name="l11530"></a><span class="lineno">11530</span> <span class="keyword">class </span>MatcherBase;</div>
|
|
<div class="line"><a id="l11531" name="l11531"></a><span class="lineno">11531</span> }</div>
|
|
<div class="line"><a id="l11532" name="l11532"></a><span class="lineno">11532</span> </div>
|
|
<div class="line"><a id="l11533" name="l11533"></a><span class="lineno">11533</span> <span class="keyword">using </span>StringMatcher = Matchers::MatcherBase<std::string>;</div>
|
|
<div class="line"><a id="l11534" name="l11534"></a><span class="lineno">11534</span> </div>
|
|
<div class="line"><a id="l11535" name="l11535"></a><span class="lineno">11535</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a26cdeefafe46a4d606b51248eb7bbe7e">handleExceptionMatchExpr</a>( AssertionHandler& handler, StringMatcher <span class="keyword">const</span>& matcher );</div>
|
|
<div class="line"><a id="l11536" name="l11536"></a><span class="lineno">11536</span> </div>
|
|
<div class="line"><a id="l11537" name="l11537"></a><span class="lineno">11537</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT, <span class="keyword">typename</span> MatcherT></div>
|
|
<div class="line"><a id="l11538" name="l11538"></a><span class="lineno">11538</span> <span class="keyword">constexpr</span> MatchExpr<ArgT, MatcherT></div>
|
|
<div class="line"><a id="l11539" name="l11539"></a><span class="lineno">11539</span> makeMatchExpr( ArgT&& arg, MatcherT <span class="keyword">const</span>& matcher ) {</div>
|
|
<div class="line"><a id="l11540" name="l11540"></a><span class="lineno">11540</span> <span class="keywordflow">return</span> MatchExpr<ArgT, MatcherT>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(arg), matcher );</div>
|
|
<div class="line"><a id="l11541" name="l11541"></a><span class="lineno">11541</span> }</div>
|
|
<div class="line"><a id="l11542" name="l11542"></a><span class="lineno">11542</span> </div>
|
|
<div class="line"><a id="l11543" name="l11543"></a><span class="lineno">11543</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l11544" name="l11544"></a><span class="lineno">11544</span> </div>
|
|
<div class="line"><a id="l11545" name="l11545"></a><span class="lineno">11545</span></div>
|
|
<div class="line"><a id="l11547" name="l11547"></a><span class="lineno">11547</span><span class="preprocessor">#define INTERNAL_CHECK_THAT( macroName, matcher, resultDisposition, arg ) \</span></div>
|
|
<div class="line"><a id="l11548" name="l11548"></a><span class="lineno">11548</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l11549" name="l11549"></a><span class="lineno">11549</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l11550" name="l11550"></a><span class="lineno">11550</span><span class="preprocessor"> INTERNAL_CATCH_TRY { \</span></div>
|
|
<div class="line"><a id="l11551" name="l11551"></a><span class="lineno">11551</span><span class="preprocessor"> catchAssertionHandler.handleExpr( Catch::makeMatchExpr( arg, matcher ) ); \</span></div>
|
|
<div class="line"><a id="l11552" name="l11552"></a><span class="lineno">11552</span><span class="preprocessor"> } INTERNAL_CATCH_CATCH( catchAssertionHandler ) \</span></div>
|
|
<div class="line"><a id="l11553" name="l11553"></a><span class="lineno">11553</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l11554" name="l11554"></a><span class="lineno">11554</span><span class="preprocessor"> } while( false )</span></div>
|
|
<div class="line"><a id="l11555" name="l11555"></a><span class="lineno">11555</span> </div>
|
|
<div class="line"><a id="l11556" name="l11556"></a><span class="lineno">11556</span></div>
|
|
<div class="line"><a id="l11558" name="l11558"></a><span class="lineno">11558</span><span class="preprocessor">#define INTERNAL_CATCH_THROWS_MATCHES( macroName, exceptionType, resultDisposition, matcher, ... ) \</span></div>
|
|
<div class="line"><a id="l11559" name="l11559"></a><span class="lineno">11559</span><span class="preprocessor"> do { \</span></div>
|
|
<div class="line"><a id="l11560" name="l11560"></a><span class="lineno">11560</span><span class="preprocessor"> Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(exceptionType) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \</span></div>
|
|
<div class="line"><a id="l11561" name="l11561"></a><span class="lineno">11561</span><span class="preprocessor"> if( catchAssertionHandler.allowThrows() ) \</span></div>
|
|
<div class="line"><a id="l11562" name="l11562"></a><span class="lineno">11562</span><span class="preprocessor"> try { \</span></div>
|
|
<div class="line"><a id="l11563" name="l11563"></a><span class="lineno">11563</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l11564" name="l11564"></a><span class="lineno">11564</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_USELESS_CAST_WARNINGS \</span></div>
|
|
<div class="line"><a id="l11565" name="l11565"></a><span class="lineno">11565</span><span class="preprocessor"> static_cast<void>(__VA_ARGS__ ); \</span></div>
|
|
<div class="line"><a id="l11566" name="l11566"></a><span class="lineno">11566</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l11567" name="l11567"></a><span class="lineno">11567</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \</span></div>
|
|
<div class="line"><a id="l11568" name="l11568"></a><span class="lineno">11568</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l11569" name="l11569"></a><span class="lineno">11569</span><span class="preprocessor"> catch( exceptionType const& ex ) { \</span></div>
|
|
<div class="line"><a id="l11570" name="l11570"></a><span class="lineno">11570</span><span class="preprocessor"> catchAssertionHandler.handleExpr( Catch::makeMatchExpr( ex, matcher ) ); \</span></div>
|
|
<div class="line"><a id="l11571" name="l11571"></a><span class="lineno">11571</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l11572" name="l11572"></a><span class="lineno">11572</span><span class="preprocessor"> catch( ... ) { \</span></div>
|
|
<div class="line"><a id="l11573" name="l11573"></a><span class="lineno">11573</span><span class="preprocessor"> catchAssertionHandler.handleUnexpectedInflightException(); \</span></div>
|
|
<div class="line"><a id="l11574" name="l11574"></a><span class="lineno">11574</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l11575" name="l11575"></a><span class="lineno">11575</span><span class="preprocessor"> else \</span></div>
|
|
<div class="line"><a id="l11576" name="l11576"></a><span class="lineno">11576</span><span class="preprocessor"> catchAssertionHandler.handleThrowingCallSkipped(); \</span></div>
|
|
<div class="line"><a id="l11577" name="l11577"></a><span class="lineno">11577</span><span class="preprocessor"> catchAssertionHandler.complete(); \</span></div>
|
|
<div class="line"><a id="l11578" name="l11578"></a><span class="lineno">11578</span><span class="preprocessor"> } while( false )</span></div>
|
|
<div class="line"><a id="l11579" name="l11579"></a><span class="lineno">11579</span> </div>
|
|
<div class="line"><a id="l11580" name="l11580"></a><span class="lineno">11580</span> </div>
|
|
<div class="line"><a id="l11581" name="l11581"></a><span class="lineno">11581</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_IMPL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11582" name="l11582"></a><span class="lineno">11582</span> </div>
|
|
<div class="line"><a id="l11583" name="l11583"></a><span class="lineno">11583</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l11584" name="l11584"></a><span class="lineno">11584</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l11585" name="l11585"></a><span class="lineno">11585</span> </div>
|
|
<div class="line"><a id="l11586" name="l11586"></a><span class="lineno">11586</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11587" name="l11587"></a><span class="lineno">11587</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l11588" name="l11588"></a><span class="lineno">11588</span> </div>
|
|
<div class="line"><a id="l11589" name="l11589"></a><span class="lineno">11589</span> <span class="keyword">class </span>MatcherUntypedBase {</div>
|
|
<div class="line"><a id="l11590" name="l11590"></a><span class="lineno">11590</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11591" name="l11591"></a><span class="lineno">11591</span> MatcherUntypedBase() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11592" name="l11592"></a><span class="lineno">11592</span> </div>
|
|
<div class="line"><a id="l11593" name="l11593"></a><span class="lineno">11593</span> MatcherUntypedBase(MatcherUntypedBase <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11594" name="l11594"></a><span class="lineno">11594</span> MatcherUntypedBase(MatcherUntypedBase&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11595" name="l11595"></a><span class="lineno">11595</span> </div>
|
|
<div class="line"><a id="l11596" name="l11596"></a><span class="lineno">11596</span> MatcherUntypedBase& operator = (MatcherUntypedBase <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11597" name="l11597"></a><span class="lineno">11597</span> MatcherUntypedBase& operator = (MatcherUntypedBase&&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11598" name="l11598"></a><span class="lineno">11598</span> </div>
|
|
<div class="line"><a id="l11599" name="l11599"></a><span class="lineno">11599</span> std::string toString() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l11600" name="l11600"></a><span class="lineno">11600</span> </div>
|
|
<div class="line"><a id="l11601" name="l11601"></a><span class="lineno">11601</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l11602" name="l11602"></a><span class="lineno">11602</span> <span class="keyword">virtual</span> ~MatcherUntypedBase(); <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l11603" name="l11603"></a><span class="lineno">11603</span> <span class="keyword">virtual</span> std::string describe() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l11604" name="l11604"></a><span class="lineno">11604</span> <span class="keyword">mutable</span> std::string m_cachedToString;</div>
|
|
<div class="line"><a id="l11605" name="l11605"></a><span class="lineno">11605</span> };</div>
|
|
<div class="line"><a id="l11606" name="l11606"></a><span class="lineno">11606</span> </div>
|
|
<div class="line"><a id="l11607" name="l11607"></a><span class="lineno">11607</span> </div>
|
|
<div class="line"><a id="l11608" name="l11608"></a><span class="lineno">11608</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11609" name="l11609"></a><span class="lineno">11609</span> <span class="keyword">class </span>MatcherBase : <span class="keyword">public</span> MatcherUntypedBase {</div>
|
|
<div class="line"><a id="l11610" name="l11610"></a><span class="lineno">11610</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11611" name="l11611"></a><span class="lineno">11611</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> match( T <span class="keyword">const</span>& arg ) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l11612" name="l11612"></a><span class="lineno">11612</span> };</div>
|
|
<div class="line"><a id="l11613" name="l11613"></a><span class="lineno">11613</span> </div>
|
|
<div class="line"><a id="l11614" name="l11614"></a><span class="lineno">11614</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l11615" name="l11615"></a><span class="lineno">11615</span> </div>
|
|
<div class="line"><a id="l11616" name="l11616"></a><span class="lineno">11616</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11617" name="l11617"></a><span class="lineno">11617</span> <span class="keyword">class </span>MatchAllOf final : <span class="keyword">public</span> MatcherBase<ArgT> {</div>
|
|
<div class="line"><a id="l11618" name="l11618"></a><span class="lineno">11618</span> std::vector<MatcherBase<ArgT> <span class="keyword">const</span>*> m_matchers;</div>
|
|
<div class="line"><a id="l11619" name="l11619"></a><span class="lineno">11619</span> </div>
|
|
<div class="line"><a id="l11620" name="l11620"></a><span class="lineno">11620</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11621" name="l11621"></a><span class="lineno">11621</span> MatchAllOf() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11622" name="l11622"></a><span class="lineno">11622</span> MatchAllOf(MatchAllOf <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11623" name="l11623"></a><span class="lineno">11623</span> MatchAllOf& operator=(MatchAllOf <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11624" name="l11624"></a><span class="lineno">11624</span> MatchAllOf(MatchAllOf&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11625" name="l11625"></a><span class="lineno">11625</span> MatchAllOf& operator=(MatchAllOf&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11626" name="l11626"></a><span class="lineno">11626</span> </div>
|
|
<div class="line"><a id="l11627" name="l11627"></a><span class="lineno">11627</span> </div>
|
|
<div class="line"><a id="l11628" name="l11628"></a><span class="lineno">11628</span> <span class="keywordtype">bool</span> match( ArgT <span class="keyword">const</span>& arg )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11629" name="l11629"></a><span class="lineno">11629</span> <span class="keywordflow">for</span>( <span class="keyword">auto</span> matcher : m_matchers ) {</div>
|
|
<div class="line"><a id="l11630" name="l11630"></a><span class="lineno">11630</span> <span class="keywordflow">if</span> (!matcher->match(arg))</div>
|
|
<div class="line"><a id="l11631" name="l11631"></a><span class="lineno">11631</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11632" name="l11632"></a><span class="lineno">11632</span> }</div>
|
|
<div class="line"><a id="l11633" name="l11633"></a><span class="lineno">11633</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l11634" name="l11634"></a><span class="lineno">11634</span> }</div>
|
|
<div class="line"><a id="l11635" name="l11635"></a><span class="lineno">11635</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11636" name="l11636"></a><span class="lineno">11636</span> std::string description;</div>
|
|
<div class="line"><a id="l11637" name="l11637"></a><span class="lineno">11637</span> description.reserve( 4 + m_matchers.size()*32 );</div>
|
|
<div class="line"><a id="l11638" name="l11638"></a><span class="lineno">11638</span> description += <span class="stringliteral">"( "</span>;</div>
|
|
<div class="line"><a id="l11639" name="l11639"></a><span class="lineno">11639</span> <span class="keywordtype">bool</span> first = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l11640" name="l11640"></a><span class="lineno">11640</span> <span class="keywordflow">for</span>( <span class="keyword">auto</span> matcher : m_matchers ) {</div>
|
|
<div class="line"><a id="l11641" name="l11641"></a><span class="lineno">11641</span> <span class="keywordflow">if</span>( first )</div>
|
|
<div class="line"><a id="l11642" name="l11642"></a><span class="lineno">11642</span> first = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11643" name="l11643"></a><span class="lineno">11643</span> <span class="keywordflow">else</span></div>
|
|
<div class="line"><a id="l11644" name="l11644"></a><span class="lineno">11644</span> description += <span class="stringliteral">" and "</span>;</div>
|
|
<div class="line"><a id="l11645" name="l11645"></a><span class="lineno">11645</span> description += matcher->toString();</div>
|
|
<div class="line"><a id="l11646" name="l11646"></a><span class="lineno">11646</span> }</div>
|
|
<div class="line"><a id="l11647" name="l11647"></a><span class="lineno">11647</span> description += <span class="stringliteral">" )"</span>;</div>
|
|
<div class="line"><a id="l11648" name="l11648"></a><span class="lineno">11648</span> <span class="keywordflow">return</span> description;</div>
|
|
<div class="line"><a id="l11649" name="l11649"></a><span class="lineno">11649</span> }</div>
|
|
<div class="line"><a id="l11650" name="l11650"></a><span class="lineno">11650</span> </div>
|
|
<div class="line"><a id="l11651" name="l11651"></a><span class="lineno">11651</span> <span class="keyword">friend</span> MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l11652" name="l11652"></a><span class="lineno">11652</span> lhs.m_matchers.push_back(&rhs);</div>
|
|
<div class="line"><a id="l11653" name="l11653"></a><span class="lineno">11653</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs);</div>
|
|
<div class="line"><a id="l11654" name="l11654"></a><span class="lineno">11654</span> }</div>
|
|
<div class="line"><a id="l11655" name="l11655"></a><span class="lineno">11655</span> <span class="keyword">friend</span> MatchAllOf operator&& (MatcherBase<ArgT> <span class="keyword">const</span>& lhs, MatchAllOf&& rhs) {</div>
|
|
<div class="line"><a id="l11656" name="l11656"></a><span class="lineno">11656</span> rhs.m_matchers.insert(rhs.m_matchers.begin(), &lhs);</div>
|
|
<div class="line"><a id="l11657" name="l11657"></a><span class="lineno">11657</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs);</div>
|
|
<div class="line"><a id="l11658" name="l11658"></a><span class="lineno">11658</span> }</div>
|
|
<div class="line"><a id="l11659" name="l11659"></a><span class="lineno">11659</span> };</div>
|
|
<div class="line"><a id="l11660" name="l11660"></a><span class="lineno">11660</span></div>
|
|
<div class="line"><a id="l11663" name="l11663"></a><span class="lineno">11663</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11664" name="l11664"></a><span class="lineno">11664</span> MatchAllOf<ArgT> operator&& (MatchAllOf<ArgT> <span class="keyword">const</span>& lhs, MatcherBase<ArgT> <span class="keyword">const</span>& rhs) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11667" name="l11667"></a><span class="lineno">11667</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11668" name="l11668"></a><span class="lineno">11668</span> MatchAllOf<ArgT> operator&& (MatcherBase<ArgT> <span class="keyword">const</span>& lhs, MatchAllOf<ArgT> <span class="keyword">const</span>& rhs) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11669" name="l11669"></a><span class="lineno">11669</span> </div>
|
|
<div class="line"><a id="l11670" name="l11670"></a><span class="lineno">11670</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11671" name="l11671"></a><span class="lineno">11671</span> <span class="keyword">class </span>MatchAnyOf final : <span class="keyword">public</span> MatcherBase<ArgT> {</div>
|
|
<div class="line"><a id="l11672" name="l11672"></a><span class="lineno">11672</span> std::vector<MatcherBase<ArgT> <span class="keyword">const</span>*> m_matchers;</div>
|
|
<div class="line"><a id="l11673" name="l11673"></a><span class="lineno">11673</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11674" name="l11674"></a><span class="lineno">11674</span> MatchAnyOf() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11675" name="l11675"></a><span class="lineno">11675</span> MatchAnyOf(MatchAnyOf <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11676" name="l11676"></a><span class="lineno">11676</span> MatchAnyOf& operator=(MatchAnyOf <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11677" name="l11677"></a><span class="lineno">11677</span> MatchAnyOf(MatchAnyOf&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11678" name="l11678"></a><span class="lineno">11678</span> MatchAnyOf& operator=(MatchAnyOf&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11679" name="l11679"></a><span class="lineno">11679</span> </div>
|
|
<div class="line"><a id="l11680" name="l11680"></a><span class="lineno">11680</span> <span class="keywordtype">bool</span> match( ArgT <span class="keyword">const</span>& arg )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11681" name="l11681"></a><span class="lineno">11681</span> <span class="keywordflow">for</span>( <span class="keyword">auto</span> matcher : m_matchers ) {</div>
|
|
<div class="line"><a id="l11682" name="l11682"></a><span class="lineno">11682</span> <span class="keywordflow">if</span> (matcher->match(arg))</div>
|
|
<div class="line"><a id="l11683" name="l11683"></a><span class="lineno">11683</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l11684" name="l11684"></a><span class="lineno">11684</span> }</div>
|
|
<div class="line"><a id="l11685" name="l11685"></a><span class="lineno">11685</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11686" name="l11686"></a><span class="lineno">11686</span> }</div>
|
|
<div class="line"><a id="l11687" name="l11687"></a><span class="lineno">11687</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11688" name="l11688"></a><span class="lineno">11688</span> std::string description;</div>
|
|
<div class="line"><a id="l11689" name="l11689"></a><span class="lineno">11689</span> description.reserve( 4 + m_matchers.size()*32 );</div>
|
|
<div class="line"><a id="l11690" name="l11690"></a><span class="lineno">11690</span> description += <span class="stringliteral">"( "</span>;</div>
|
|
<div class="line"><a id="l11691" name="l11691"></a><span class="lineno">11691</span> <span class="keywordtype">bool</span> first = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l11692" name="l11692"></a><span class="lineno">11692</span> <span class="keywordflow">for</span>( <span class="keyword">auto</span> matcher : m_matchers ) {</div>
|
|
<div class="line"><a id="l11693" name="l11693"></a><span class="lineno">11693</span> <span class="keywordflow">if</span>( first )</div>
|
|
<div class="line"><a id="l11694" name="l11694"></a><span class="lineno">11694</span> first = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11695" name="l11695"></a><span class="lineno">11695</span> <span class="keywordflow">else</span></div>
|
|
<div class="line"><a id="l11696" name="l11696"></a><span class="lineno">11696</span> description += <span class="stringliteral">" or "</span>;</div>
|
|
<div class="line"><a id="l11697" name="l11697"></a><span class="lineno">11697</span> description += matcher->toString();</div>
|
|
<div class="line"><a id="l11698" name="l11698"></a><span class="lineno">11698</span> }</div>
|
|
<div class="line"><a id="l11699" name="l11699"></a><span class="lineno">11699</span> description += <span class="stringliteral">" )"</span>;</div>
|
|
<div class="line"><a id="l11700" name="l11700"></a><span class="lineno">11700</span> <span class="keywordflow">return</span> description;</div>
|
|
<div class="line"><a id="l11701" name="l11701"></a><span class="lineno">11701</span> }</div>
|
|
<div class="line"><a id="l11702" name="l11702"></a><span class="lineno">11702</span> </div>
|
|
<div class="line"><a id="l11703" name="l11703"></a><span class="lineno">11703</span> <span class="keyword">friend</span> MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l11704" name="l11704"></a><span class="lineno">11704</span> lhs.m_matchers.push_back(&rhs);</div>
|
|
<div class="line"><a id="l11705" name="l11705"></a><span class="lineno">11705</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs);</div>
|
|
<div class="line"><a id="l11706" name="l11706"></a><span class="lineno">11706</span> }</div>
|
|
<div class="line"><a id="l11707" name="l11707"></a><span class="lineno">11707</span> <span class="keyword">friend</span> MatchAnyOf operator|| (MatcherBase<ArgT> <span class="keyword">const</span>& lhs, MatchAnyOf&& rhs) {</div>
|
|
<div class="line"><a id="l11708" name="l11708"></a><span class="lineno">11708</span> rhs.m_matchers.insert(rhs.m_matchers.begin(), &lhs);</div>
|
|
<div class="line"><a id="l11709" name="l11709"></a><span class="lineno">11709</span> <span class="keywordflow">return</span> <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs);</div>
|
|
<div class="line"><a id="l11710" name="l11710"></a><span class="lineno">11710</span> }</div>
|
|
<div class="line"><a id="l11711" name="l11711"></a><span class="lineno">11711</span> };</div>
|
|
<div class="line"><a id="l11712" name="l11712"></a><span class="lineno">11712</span></div>
|
|
<div class="line"><a id="l11715" name="l11715"></a><span class="lineno">11715</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11716" name="l11716"></a><span class="lineno">11716</span> MatchAnyOf<ArgT> operator|| (MatchAnyOf<ArgT> <span class="keyword">const</span>& lhs, MatcherBase<ArgT> <span class="keyword">const</span>& rhs) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11719" name="l11719"></a><span class="lineno">11719</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11720" name="l11720"></a><span class="lineno">11720</span> MatchAnyOf<ArgT> operator|| (MatcherBase<ArgT> <span class="keyword">const</span>& lhs, MatchAnyOf<ArgT> <span class="keyword">const</span>& rhs) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11721" name="l11721"></a><span class="lineno">11721</span> </div>
|
|
<div class="line"><a id="l11722" name="l11722"></a><span class="lineno">11722</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgT></div>
|
|
<div class="line"><a id="l11723" name="l11723"></a><span class="lineno">11723</span> <span class="keyword">class </span>MatchNotOf final : <span class="keyword">public</span> MatcherBase<ArgT> {</div>
|
|
<div class="line"><a id="l11724" name="l11724"></a><span class="lineno">11724</span> MatcherBase<ArgT> <span class="keyword">const</span>& m_underlyingMatcher;</div>
|
|
<div class="line"><a id="l11725" name="l11725"></a><span class="lineno">11725</span> </div>
|
|
<div class="line"><a id="l11726" name="l11726"></a><span class="lineno">11726</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11727" name="l11727"></a><span class="lineno">11727</span> <span class="keyword">explicit</span> MatchNotOf( MatcherBase<ArgT> <span class="keyword">const</span>& underlyingMatcher ):</div>
|
|
<div class="line"><a id="l11728" name="l11728"></a><span class="lineno">11728</span> m_underlyingMatcher( underlyingMatcher )</div>
|
|
<div class="line"><a id="l11729" name="l11729"></a><span class="lineno">11729</span> {}</div>
|
|
<div class="line"><a id="l11730" name="l11730"></a><span class="lineno">11730</span> </div>
|
|
<div class="line"><a id="l11731" name="l11731"></a><span class="lineno">11731</span> <span class="keywordtype">bool</span> match( ArgT <span class="keyword">const</span>& arg )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11732" name="l11732"></a><span class="lineno">11732</span> <span class="keywordflow">return</span> !m_underlyingMatcher.match( arg );</div>
|
|
<div class="line"><a id="l11733" name="l11733"></a><span class="lineno">11733</span> }</div>
|
|
<div class="line"><a id="l11734" name="l11734"></a><span class="lineno">11734</span> </div>
|
|
<div class="line"><a id="l11735" name="l11735"></a><span class="lineno">11735</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11736" name="l11736"></a><span class="lineno">11736</span> <span class="keywordflow">return</span> <span class="stringliteral">"not "</span> + m_underlyingMatcher.toString();</div>
|
|
<div class="line"><a id="l11737" name="l11737"></a><span class="lineno">11737</span> }</div>
|
|
<div class="line"><a id="l11738" name="l11738"></a><span class="lineno">11738</span> };</div>
|
|
<div class="line"><a id="l11739" name="l11739"></a><span class="lineno">11739</span> </div>
|
|
<div class="line"><a id="l11740" name="l11740"></a><span class="lineno">11740</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l11741" name="l11741"></a><span class="lineno">11741</span> </div>
|
|
<div class="line"><a id="l11742" name="l11742"></a><span class="lineno">11742</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11743" name="l11743"></a><span class="lineno">11743</span> Detail::MatchAllOf<T> operator&& (MatcherBase<T> <span class="keyword">const</span>& lhs, MatcherBase<T> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l11744" name="l11744"></a><span class="lineno">11744</span> <span class="keywordflow">return</span> Detail::MatchAllOf<T>{} && lhs && rhs;</div>
|
|
<div class="line"><a id="l11745" name="l11745"></a><span class="lineno">11745</span> }</div>
|
|
<div class="line"><a id="l11746" name="l11746"></a><span class="lineno">11746</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11747" name="l11747"></a><span class="lineno">11747</span> Detail::MatchAnyOf<T> operator|| (MatcherBase<T> <span class="keyword">const</span>& lhs, MatcherBase<T> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l11748" name="l11748"></a><span class="lineno">11748</span> <span class="keywordflow">return</span> Detail::MatchAnyOf<T>{} || lhs || rhs;</div>
|
|
<div class="line"><a id="l11749" name="l11749"></a><span class="lineno">11749</span> }</div>
|
|
<div class="line"><a id="l11750" name="l11750"></a><span class="lineno">11750</span> </div>
|
|
<div class="line"><a id="l11751" name="l11751"></a><span class="lineno">11751</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11752" name="l11752"></a><span class="lineno">11752</span> Detail::MatchNotOf<T> operator! (MatcherBase<T> <span class="keyword">const</span>& matcher) {</div>
|
|
<div class="line"><a id="l11753" name="l11753"></a><span class="lineno">11753</span> <span class="keywordflow">return</span> Detail::MatchNotOf<T>{ matcher };</div>
|
|
<div class="line"><a id="l11754" name="l11754"></a><span class="lineno">11754</span> }</div>
|
|
<div class="line"><a id="l11755" name="l11755"></a><span class="lineno">11755</span> </div>
|
|
<div class="line"><a id="l11756" name="l11756"></a><span class="lineno">11756</span> </div>
|
|
<div class="line"><a id="l11757" name="l11757"></a><span class="lineno">11757</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l11758" name="l11758"></a><span class="lineno">11758</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l11759" name="l11759"></a><span class="lineno">11759</span> </div>
|
|
<div class="line"><a id="l11760" name="l11760"></a><span class="lineno">11760</span> </div>
|
|
<div class="line"><a id="l11761" name="l11761"></a><span class="lineno">11761</span><span class="preprocessor">#if defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l11762" name="l11762"></a><span class="lineno">11762</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11763" name="l11763"></a><span class="lineno">11763</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11764" name="l11764"></a><span class="lineno">11764</span> </div>
|
|
<div class="line"><a id="l11765" name="l11765"></a><span class="lineno">11765</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11766" name="l11766"></a><span class="lineno">11766</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11767" name="l11767"></a><span class="lineno">11767</span> </div>
|
|
<div class="line"><a id="l11768" name="l11768"></a><span class="lineno">11768</span><span class="preprocessor"> #define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )</span></div>
|
|
<div class="line"><a id="l11769" name="l11769"></a><span class="lineno">11769</span><span class="preprocessor"> #define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )</span></div>
|
|
<div class="line"><a id="l11770" name="l11770"></a><span class="lineno">11770</span> </div>
|
|
<div class="line"><a id="l11771" name="l11771"></a><span class="lineno">11771</span><span class="preprocessor">#elif defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l11772" name="l11772"></a><span class="lineno">11772</span> </div>
|
|
<div class="line"><a id="l11773" name="l11773"></a><span class="lineno">11773</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11774" name="l11774"></a><span class="lineno">11774</span><span class="preprocessor"> #define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11775" name="l11775"></a><span class="lineno">11775</span> </div>
|
|
<div class="line"><a id="l11776" name="l11776"></a><span class="lineno">11776</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_WITH( expr, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11777" name="l11777"></a><span class="lineno">11777</span><span class="preprocessor"> #define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11778" name="l11778"></a><span class="lineno">11778</span> </div>
|
|
<div class="line"><a id="l11779" name="l11779"></a><span class="lineno">11779</span><span class="preprocessor"> #define CATCH_CHECK_THAT( arg, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11780" name="l11780"></a><span class="lineno">11780</span><span class="preprocessor"> #define CATCH_REQUIRE_THAT( arg, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11781" name="l11781"></a><span class="lineno">11781</span> </div>
|
|
<div class="line"><a id="l11782" name="l11782"></a><span class="lineno">11782</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l11783" name="l11783"></a><span class="lineno">11783</span> </div>
|
|
<div class="line"><a id="l11784" name="l11784"></a><span class="lineno">11784</span><span class="preprocessor"> #define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11785" name="l11785"></a><span class="lineno">11785</span><span class="preprocessor"> #define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11786" name="l11786"></a><span class="lineno">11786</span> </div>
|
|
<div class="line"><a id="l11787" name="l11787"></a><span class="lineno">11787</span><span class="preprocessor"> #define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11788" name="l11788"></a><span class="lineno">11788</span><span class="preprocessor"> #define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )</span></div>
|
|
<div class="line"><a id="l11789" name="l11789"></a><span class="lineno">11789</span> </div>
|
|
<div class="line"><a id="l11790" name="l11790"></a><span class="lineno">11790</span><span class="preprocessor"> #define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )</span></div>
|
|
<div class="line"><a id="l11791" name="l11791"></a><span class="lineno">11791</span><span class="preprocessor"> #define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )</span></div>
|
|
<div class="line"><a id="l11792" name="l11792"></a><span class="lineno">11792</span> </div>
|
|
<div class="line"><a id="l11793" name="l11793"></a><span class="lineno">11793</span><span class="preprocessor">#elif !defined(CATCH_CONFIG_PREFIX_ALL) && defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l11794" name="l11794"></a><span class="lineno">11794</span> </div>
|
|
<div class="line"><a id="l11795" name="l11795"></a><span class="lineno">11795</span><span class="preprocessor"> #define REQUIRE_THROWS_WITH( expr, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11796" name="l11796"></a><span class="lineno">11796</span><span class="preprocessor"> #define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11797" name="l11797"></a><span class="lineno">11797</span> </div>
|
|
<div class="line"><a id="l11798" name="l11798"></a><span class="lineno">11798</span><span class="preprocessor"> #define CHECK_THROWS_WITH( expr, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11799" name="l11799"></a><span class="lineno">11799</span><span class="preprocessor"> #define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11800" name="l11800"></a><span class="lineno">11800</span> </div>
|
|
<div class="line"><a id="l11801" name="l11801"></a><span class="lineno">11801</span><span class="preprocessor"> #define CHECK_THAT( arg, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11802" name="l11802"></a><span class="lineno">11802</span><span class="preprocessor"> #define REQUIRE_THAT( arg, matcher ) (void)(0)</span></div>
|
|
<div class="line"><a id="l11803" name="l11803"></a><span class="lineno">11803</span> </div>
|
|
<div class="line"><a id="l11804" name="l11804"></a><span class="lineno">11804</span><span class="preprocessor">#endif </span><span class="comment">// end of user facing macro declarations</span></div>
|
|
<div class="line"><a id="l11805" name="l11805"></a><span class="lineno">11805</span> </div>
|
|
<div class="line"><a id="l11806" name="l11806"></a><span class="lineno">11806</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11807" name="l11807"></a><span class="lineno">11807</span> </div>
|
|
<div class="line"><a id="l11808" name="l11808"></a><span class="lineno">11808</span> </div>
|
|
<div class="line"><a id="l11809" name="l11809"></a><span class="lineno">11809</span><span class="preprocessor">#ifndef CATCH_MATCHERS_CONTAINER_PROPERTIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11810" name="l11810"></a><span class="lineno">11810</span><span class="preprocessor">#define CATCH_MATCHERS_CONTAINER_PROPERTIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11811" name="l11811"></a><span class="lineno">11811</span> </div>
|
|
<div class="line"><a id="l11812" name="l11812"></a><span class="lineno">11812</span> </div>
|
|
<div class="line"><a id="l11813" name="l11813"></a><span class="lineno">11813</span> </div>
|
|
<div class="line"><a id="l11814" name="l11814"></a><span class="lineno">11814</span><span class="preprocessor">#ifndef CATCH_MATCHERS_TEMPLATED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11815" name="l11815"></a><span class="lineno">11815</span><span class="preprocessor">#define CATCH_MATCHERS_TEMPLATED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l11816" name="l11816"></a><span class="lineno">11816</span> </div>
|
|
<div class="line"><a id="l11817" name="l11817"></a><span class="lineno">11817</span> </div>
|
|
<div class="line"><a id="l11818" name="l11818"></a><span class="lineno">11818</span><span class="preprocessor">#include <array></span></div>
|
|
<div class="line"><a id="l11819" name="l11819"></a><span class="lineno">11819</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l11820" name="l11820"></a><span class="lineno">11820</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l11821" name="l11821"></a><span class="lineno">11821</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l11822" name="l11822"></a><span class="lineno">11822</span> </div>
|
|
<div class="line"><a id="l11823" name="l11823"></a><span class="lineno">11823</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l11824" name="l11824"></a><span class="lineno">11824</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l11825" name="l11825"></a><span class="lineno">11825</span> <span class="keyword">class </span>MatcherGenericBase : <span class="keyword">public</span> MatcherUntypedBase {</div>
|
|
<div class="line"><a id="l11826" name="l11826"></a><span class="lineno">11826</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11827" name="l11827"></a><span class="lineno">11827</span> MatcherGenericBase() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11828" name="l11828"></a><span class="lineno">11828</span> ~MatcherGenericBase() <span class="keyword">override</span>; <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l11829" name="l11829"></a><span class="lineno">11829</span> </div>
|
|
<div class="line"><a id="l11830" name="l11830"></a><span class="lineno">11830</span> MatcherGenericBase(MatcherGenericBase <span class="keyword">const</span>&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11831" name="l11831"></a><span class="lineno">11831</span> MatcherGenericBase(MatcherGenericBase&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11832" name="l11832"></a><span class="lineno">11832</span> </div>
|
|
<div class="line"><a id="l11833" name="l11833"></a><span class="lineno">11833</span> MatcherGenericBase& operator=(MatcherGenericBase <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11834" name="l11834"></a><span class="lineno">11834</span> MatcherGenericBase& operator=(MatcherGenericBase&&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11835" name="l11835"></a><span class="lineno">11835</span> };</div>
|
|
<div class="line"><a id="l11836" name="l11836"></a><span class="lineno">11836</span> </div>
|
|
<div class="line"><a id="l11837" name="l11837"></a><span class="lineno">11837</span> </div>
|
|
<div class="line"><a id="l11838" name="l11838"></a><span class="lineno">11838</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l11839" name="l11839"></a><span class="lineno">11839</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N, std::<span class="keywordtype">size_t</span> M></div>
|
|
<div class="line"><a id="l11840" name="l11840"></a><span class="lineno">11840</span> std::array<void const*, N + M> array_cat(std::array<void const*, N> && lhs, std::array<void const*, M> && rhs) {</div>
|
|
<div class="line"><a id="l11841" name="l11841"></a><span class="lineno">11841</span> std::array<void const*, N + M> arr{};</div>
|
|
<div class="line"><a id="l11842" name="l11842"></a><span class="lineno">11842</span> std::copy_n(lhs.begin(), N, arr.begin());</div>
|
|
<div class="line"><a id="l11843" name="l11843"></a><span class="lineno">11843</span> std::copy_n(rhs.begin(), M, arr.begin() + N);</div>
|
|
<div class="line"><a id="l11844" name="l11844"></a><span class="lineno">11844</span> <span class="keywordflow">return</span> arr;</div>
|
|
<div class="line"><a id="l11845" name="l11845"></a><span class="lineno">11845</span> }</div>
|
|
<div class="line"><a id="l11846" name="l11846"></a><span class="lineno">11846</span> </div>
|
|
<div class="line"><a id="l11847" name="l11847"></a><span class="lineno">11847</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N></div>
|
|
<div class="line"><a id="l11848" name="l11848"></a><span class="lineno">11848</span> std::array<void const*, N+1> array_cat(std::array<void const*, N> && lhs, <span class="keywordtype">void</span> <span class="keyword">const</span>* rhs) {</div>
|
|
<div class="line"><a id="l11849" name="l11849"></a><span class="lineno">11849</span> std::array<void const*, N+1> arr{};</div>
|
|
<div class="line"><a id="l11850" name="l11850"></a><span class="lineno">11850</span> std::copy_n(lhs.begin(), N, arr.begin());</div>
|
|
<div class="line"><a id="l11851" name="l11851"></a><span class="lineno">11851</span> arr[N] = rhs;</div>
|
|
<div class="line"><a id="l11852" name="l11852"></a><span class="lineno">11852</span> <span class="keywordflow">return</span> arr;</div>
|
|
<div class="line"><a id="l11853" name="l11853"></a><span class="lineno">11853</span> }</div>
|
|
<div class="line"><a id="l11854" name="l11854"></a><span class="lineno">11854</span> </div>
|
|
<div class="line"><a id="l11855" name="l11855"></a><span class="lineno">11855</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N></div>
|
|
<div class="line"><a id="l11856" name="l11856"></a><span class="lineno">11856</span> std::array<void const*, N+1> array_cat(<span class="keywordtype">void</span> <span class="keyword">const</span>* lhs, std::array<void const*, N> && rhs) {</div>
|
|
<div class="line"><a id="l11857" name="l11857"></a><span class="lineno">11857</span> std::array<void const*, N + 1> arr{ {lhs} };</div>
|
|
<div class="line"><a id="l11858" name="l11858"></a><span class="lineno">11858</span> std::copy_n(rhs.begin(), N, arr.begin() + 1);</div>
|
|
<div class="line"><a id="l11859" name="l11859"></a><span class="lineno">11859</span> <span class="keywordflow">return</span> arr;</div>
|
|
<div class="line"><a id="l11860" name="l11860"></a><span class="lineno">11860</span> }</div>
|
|
<div class="line"><a id="l11861" name="l11861"></a><span class="lineno">11861</span> </div>
|
|
<div class="line"><a id="l11862" name="l11862"></a><span class="lineno">11862</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11863" name="l11863"></a><span class="lineno">11863</span> <span class="keyword">using </span>is_generic_matcher = std::is_base_of<</div>
|
|
<div class="line"><a id="l11864" name="l11864"></a><span class="lineno">11864</span> Catch::Matchers::MatcherGenericBase,</div>
|
|
<div class="line"><a id="l11865" name="l11865"></a><span class="lineno">11865</span> std::remove_cv_t<std::remove_reference_t<T>></div>
|
|
<div class="line"><a id="l11866" name="l11866"></a><span class="lineno">11866</span> >;</div>
|
|
<div class="line"><a id="l11867" name="l11867"></a><span class="lineno">11867</span> </div>
|
|
<div class="line"><a id="l11868" name="l11868"></a><span class="lineno">11868</span> <span class="keyword">template</span><<span class="keyword">typename</span>... Ts></div>
|
|
<div class="line"><a id="l11869" name="l11869"></a><span class="lineno">11869</span> <span class="keyword">using </span>are_generic_matchers = Catch::Detail::conjunction<is_generic_matcher<Ts>...>;</div>
|
|
<div class="line"><a id="l11870" name="l11870"></a><span class="lineno">11870</span> </div>
|
|
<div class="line"><a id="l11871" name="l11871"></a><span class="lineno">11871</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l11872" name="l11872"></a><span class="lineno">11872</span> <span class="keyword">using </span>is_matcher = std::is_base_of<</div>
|
|
<div class="line"><a id="l11873" name="l11873"></a><span class="lineno">11873</span> Catch::Matchers::MatcherUntypedBase,</div>
|
|
<div class="line"><a id="l11874" name="l11874"></a><span class="lineno">11874</span> std::remove_cv_t<std::remove_reference_t<T>></div>
|
|
<div class="line"><a id="l11875" name="l11875"></a><span class="lineno">11875</span> >;</div>
|
|
<div class="line"><a id="l11876" name="l11876"></a><span class="lineno">11876</span> </div>
|
|
<div class="line"><a id="l11877" name="l11877"></a><span class="lineno">11877</span> </div>
|
|
<div class="line"><a id="l11878" name="l11878"></a><span class="lineno">11878</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N, <span class="keyword">typename</span> Arg></div>
|
|
<div class="line"><a id="l11879" name="l11879"></a><span class="lineno">11879</span> <span class="keywordtype">bool</span> match_all_of(Arg&&, std::array<void const*, N> <span class="keyword">const</span>&, std::index_sequence<>) {</div>
|
|
<div class="line"><a id="l11880" name="l11880"></a><span class="lineno">11880</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l11881" name="l11881"></a><span class="lineno">11881</span> }</div>
|
|
<div class="line"><a id="l11882" name="l11882"></a><span class="lineno">11882</span> </div>
|
|
<div class="line"><a id="l11883" name="l11883"></a><span class="lineno">11883</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... MatcherTs, std::size_t N, <span class="keyword">typename</span> Arg, std::size_t Idx, std::size_t... Indices></div>
|
|
<div class="line"><a id="l11884" name="l11884"></a><span class="lineno">11884</span> <span class="keywordtype">bool</span> match_all_of(Arg&& arg, std::array<void const*, N> <span class="keyword">const</span>& matchers, std::index_sequence<Idx, Indices...>) {</div>
|
|
<div class="line"><a id="l11885" name="l11885"></a><span class="lineno">11885</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>T const*<span class="keyword">></span>(matchers[Idx])->match(arg) && match_all_of<MatcherTs...>(arg, matchers, std::index_sequence<Indices...>{});</div>
|
|
<div class="line"><a id="l11886" name="l11886"></a><span class="lineno">11886</span> }</div>
|
|
<div class="line"><a id="l11887" name="l11887"></a><span class="lineno">11887</span> </div>
|
|
<div class="line"><a id="l11888" name="l11888"></a><span class="lineno">11888</span> </div>
|
|
<div class="line"><a id="l11889" name="l11889"></a><span class="lineno">11889</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N, <span class="keyword">typename</span> Arg></div>
|
|
<div class="line"><a id="l11890" name="l11890"></a><span class="lineno">11890</span> <span class="keywordtype">bool</span> match_any_of(Arg&&, std::array<void const*, N> <span class="keyword">const</span>&, std::index_sequence<>) {</div>
|
|
<div class="line"><a id="l11891" name="l11891"></a><span class="lineno">11891</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l11892" name="l11892"></a><span class="lineno">11892</span> }</div>
|
|
<div class="line"><a id="l11893" name="l11893"></a><span class="lineno">11893</span> </div>
|
|
<div class="line"><a id="l11894" name="l11894"></a><span class="lineno">11894</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... MatcherTs, std::size_t N, <span class="keyword">typename</span> Arg, std::size_t Idx, std::size_t... Indices></div>
|
|
<div class="line"><a id="l11895" name="l11895"></a><span class="lineno">11895</span> <span class="keywordtype">bool</span> match_any_of(Arg&& arg, std::array<void const*, N> <span class="keyword">const</span>& matchers, std::index_sequence<Idx, Indices...>) {</div>
|
|
<div class="line"><a id="l11896" name="l11896"></a><span class="lineno">11896</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>T const*<span class="keyword">></span>(matchers[Idx])->match(arg) || match_any_of<MatcherTs...>(arg, matchers, std::index_sequence<Indices...>{});</div>
|
|
<div class="line"><a id="l11897" name="l11897"></a><span class="lineno">11897</span> }</div>
|
|
<div class="line"><a id="l11898" name="l11898"></a><span class="lineno">11898</span> </div>
|
|
<div class="line"><a id="l11899" name="l11899"></a><span class="lineno">11899</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">describe_multi_matcher</a>(StringRef combine, std::string <span class="keyword">const</span>* descriptions_begin, std::string <span class="keyword">const</span>* descriptions_end);</div>
|
|
<div class="line"><a id="l11900" name="l11900"></a><span class="lineno">11900</span> </div>
|
|
<div class="line"><a id="l11901" name="l11901"></a><span class="lineno">11901</span> <span class="keyword">template</span><<span class="keyword">typename</span>... MatcherTs, std::size_t... Idx></div>
|
|
<div class="line"><a id="l11902" name="l11902"></a><span class="lineno">11902</span> std::string <a class="code hl_function" href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">describe_multi_matcher</a>(StringRef combine, std::array<<span class="keywordtype">void</span> <span class="keyword">const</span>*, <span class="keyword">sizeof</span>...(MatcherTs)> <span class="keyword">const</span>& matchers, std::index_sequence<Idx...>) {</div>
|
|
<div class="line"><a id="l11903" name="l11903"></a><span class="lineno">11903</span> std::array<std::string, <span class="keyword">sizeof</span>...(MatcherTs)> descriptions {{</div>
|
|
<div class="line"><a id="l11904" name="l11904"></a><span class="lineno">11904</span> <span class="keyword">static_cast<</span>MatcherTs const*<span class="keyword">></span>(matchers[Idx])->toString()...</div>
|
|
<div class="line"><a id="l11905" name="l11905"></a><span class="lineno">11905</span> }};</div>
|
|
<div class="line"><a id="l11906" name="l11906"></a><span class="lineno">11906</span> </div>
|
|
<div class="line"><a id="l11907" name="l11907"></a><span class="lineno">11907</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">describe_multi_matcher</a>(combine, descriptions.data(), descriptions.data() + descriptions.size());</div>
|
|
<div class="line"><a id="l11908" name="l11908"></a><span class="lineno">11908</span> }</div>
|
|
<div class="line"><a id="l11909" name="l11909"></a><span class="lineno">11909</span> </div>
|
|
<div class="line"><a id="l11910" name="l11910"></a><span class="lineno">11910</span> </div>
|
|
<div class="line"><a id="l11911" name="l11911"></a><span class="lineno">11911</span> <span class="keyword">template</span><<span class="keyword">typename</span>... MatcherTs></div>
|
|
<div class="line"><a id="l11912" name="l11912"></a><span class="lineno">11912</span> <span class="keyword">class </span>MatchAllOfGeneric final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l11913" name="l11913"></a><span class="lineno">11913</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11914" name="l11914"></a><span class="lineno">11914</span> MatchAllOfGeneric(MatchAllOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11915" name="l11915"></a><span class="lineno">11915</span> MatchAllOfGeneric& operator=(MatchAllOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11916" name="l11916"></a><span class="lineno">11916</span> MatchAllOfGeneric(MatchAllOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11917" name="l11917"></a><span class="lineno">11917</span> MatchAllOfGeneric& operator=(MatchAllOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11918" name="l11918"></a><span class="lineno">11918</span> </div>
|
|
<div class="line"><a id="l11919" name="l11919"></a><span class="lineno">11919</span> MatchAllOfGeneric(MatcherTs <span class="keyword">const</span>&... matchers) : m_matchers{ {std::addressof(matchers)...} } {}</div>
|
|
<div class="line"><a id="l11920" name="l11920"></a><span class="lineno">11920</span> <span class="keyword">explicit</span> MatchAllOfGeneric(std::array<<span class="keywordtype">void</span> <span class="keyword">const</span>*, <span class="keyword">sizeof</span>...(MatcherTs)> matchers) : m_matchers{matchers} {}</div>
|
|
<div class="line"><a id="l11921" name="l11921"></a><span class="lineno">11921</span> </div>
|
|
<div class="line"><a id="l11922" name="l11922"></a><span class="lineno">11922</span> <span class="keyword">template</span><<span class="keyword">typename</span> Arg></div>
|
|
<div class="line"><a id="l11923" name="l11923"></a><span class="lineno">11923</span> <span class="keywordtype">bool</span> match(Arg&& arg)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11924" name="l11924"></a><span class="lineno">11924</span> <span class="keywordflow">return</span> match_all_of<MatcherTs...>(arg, m_matchers, std::index_sequence_for<MatcherTs...>{});</div>
|
|
<div class="line"><a id="l11925" name="l11925"></a><span class="lineno">11925</span> }</div>
|
|
<div class="line"><a id="l11926" name="l11926"></a><span class="lineno">11926</span> </div>
|
|
<div class="line"><a id="l11927" name="l11927"></a><span class="lineno">11927</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11928" name="l11928"></a><span class="lineno">11928</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">describe_multi_matcher</a><MatcherTs...>(<span class="stringliteral">" and "</span>_sr, m_matchers, std::index_sequence_for<MatcherTs...>{});</div>
|
|
<div class="line"><a id="l11929" name="l11929"></a><span class="lineno">11929</span> }</div>
|
|
<div class="line"><a id="l11930" name="l11930"></a><span class="lineno">11930</span> </div>
|
|
<div class="line"><a id="l11931" name="l11931"></a><span class="lineno">11931</span> <span class="comment">// Has to be public to enable the concatenating operators</span></div>
|
|
<div class="line"><a id="l11932" name="l11932"></a><span class="lineno">11932</span> <span class="comment">// below, because they are not friend of the RHS, only LHS,</span></div>
|
|
<div class="line"><a id="l11933" name="l11933"></a><span class="lineno">11933</span> <span class="comment">// and thus cannot access private fields of RHS</span></div>
|
|
<div class="line"><a id="l11934" name="l11934"></a><span class="lineno">11934</span> std::array<<span class="keywordtype">void</span> <span class="keyword">const</span>*, <span class="keyword">sizeof</span>...( MatcherTs )> m_matchers;</div>
|
|
<div class="line"><a id="l11935" name="l11935"></a><span class="lineno">11935</span> </div>
|
|
<div class="line"><a id="l11936" name="l11936"></a><span class="lineno">11936</span></div>
|
|
<div class="line"><a id="l11938" name="l11938"></a><span class="lineno">11938</span> <span class="keyword">template</span><<span class="keyword">typename</span>... MatchersRHS></div>
|
|
<div class="line"><a id="l11939" name="l11939"></a><span class="lineno">11939</span> <span class="keyword">friend</span></div>
|
|
<div class="line"><a id="l11940" name="l11940"></a><span class="lineno">11940</span> MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (</div>
|
|
<div class="line"><a id="l11941" name="l11941"></a><span class="lineno">11941</span> MatchAllOfGeneric<MatcherTs...>&& lhs,</div>
|
|
<div class="line"><a id="l11942" name="l11942"></a><span class="lineno">11942</span> MatchAllOfGeneric<MatchersRHS...>&& rhs) {</div>
|
|
<div class="line"><a id="l11943" name="l11943"></a><span class="lineno">11943</span> <span class="keywordflow">return</span> MatchAllOfGeneric<MatcherTs..., MatchersRHS...>{array_cat(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs.m_matchers), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs.m_matchers))};</div>
|
|
<div class="line"><a id="l11944" name="l11944"></a><span class="lineno">11944</span> }</div>
|
|
<div class="line"><a id="l11945" name="l11945"></a><span class="lineno">11945</span></div>
|
|
<div class="line"><a id="l11947" name="l11947"></a><span class="lineno">11947</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l11948" name="l11948"></a><span class="lineno">11948</span> <span class="keyword">friend</span> std::enable_if_t<is_matcher<MatcherRHS>::value,</div>
|
|
<div class="line"><a id="l11949" name="l11949"></a><span class="lineno">11949</span> MatchAllOfGeneric<MatcherTs..., MatcherRHS>> operator && (</div>
|
|
<div class="line"><a id="l11950" name="l11950"></a><span class="lineno">11950</span> MatchAllOfGeneric<MatcherTs...>&& lhs,</div>
|
|
<div class="line"><a id="l11951" name="l11951"></a><span class="lineno">11951</span> MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l11952" name="l11952"></a><span class="lineno">11952</span> <span class="keywordflow">return</span> MatchAllOfGeneric<MatcherTs..., MatcherRHS>{array_cat(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs.m_matchers), <span class="keyword">static_cast<</span><span class="keywordtype">void</span> const*<span class="keyword">></span>(&rhs))};</div>
|
|
<div class="line"><a id="l11953" name="l11953"></a><span class="lineno">11953</span> }</div>
|
|
<div class="line"><a id="l11954" name="l11954"></a><span class="lineno">11954</span></div>
|
|
<div class="line"><a id="l11956" name="l11956"></a><span class="lineno">11956</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS></div>
|
|
<div class="line"><a id="l11957" name="l11957"></a><span class="lineno">11957</span> <span class="keyword">friend</span> std::enable_if_t<is_matcher<MatcherLHS>::value,</div>
|
|
<div class="line"><a id="l11958" name="l11958"></a><span class="lineno">11958</span> MatchAllOfGeneric<MatcherLHS, MatcherTs...>> operator && (</div>
|
|
<div class="line"><a id="l11959" name="l11959"></a><span class="lineno">11959</span> MatcherLHS <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l11960" name="l11960"></a><span class="lineno">11960</span> MatchAllOfGeneric<MatcherTs...>&& rhs) {</div>
|
|
<div class="line"><a id="l11961" name="l11961"></a><span class="lineno">11961</span> <span class="keywordflow">return</span> MatchAllOfGeneric<MatcherLHS, MatcherTs...>{array_cat(<span class="keyword">static_cast<</span><span class="keywordtype">void</span> const*<span class="keyword">></span>(std::addressof(lhs)), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs.m_matchers))};</div>
|
|
<div class="line"><a id="l11962" name="l11962"></a><span class="lineno">11962</span> }</div>
|
|
<div class="line"><a id="l11963" name="l11963"></a><span class="lineno">11963</span> };</div>
|
|
<div class="line"><a id="l11964" name="l11964"></a><span class="lineno">11964</span> </div>
|
|
<div class="line"><a id="l11965" name="l11965"></a><span class="lineno">11965</span> </div>
|
|
<div class="line"><a id="l11966" name="l11966"></a><span class="lineno">11966</span> <span class="keyword">template</span><<span class="keyword">typename</span>... MatcherTs></div>
|
|
<div class="line"><a id="l11967" name="l11967"></a><span class="lineno">11967</span> <span class="keyword">class </span>MatchAnyOfGeneric final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l11968" name="l11968"></a><span class="lineno">11968</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l11969" name="l11969"></a><span class="lineno">11969</span> MatchAnyOfGeneric(MatchAnyOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11970" name="l11970"></a><span class="lineno">11970</span> MatchAnyOfGeneric& operator=(MatchAnyOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l11971" name="l11971"></a><span class="lineno">11971</span> MatchAnyOfGeneric(MatchAnyOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11972" name="l11972"></a><span class="lineno">11972</span> MatchAnyOfGeneric& operator=(MatchAnyOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l11973" name="l11973"></a><span class="lineno">11973</span> </div>
|
|
<div class="line"><a id="l11974" name="l11974"></a><span class="lineno">11974</span> MatchAnyOfGeneric(MatcherTs <span class="keyword">const</span>&... matchers) : m_matchers{ {std::addressof(matchers)...} } {}</div>
|
|
<div class="line"><a id="l11975" name="l11975"></a><span class="lineno">11975</span> <span class="keyword">explicit</span> MatchAnyOfGeneric(std::array<<span class="keywordtype">void</span> <span class="keyword">const</span>*, <span class="keyword">sizeof</span>...(MatcherTs)> matchers) : m_matchers{matchers} {}</div>
|
|
<div class="line"><a id="l11976" name="l11976"></a><span class="lineno">11976</span> </div>
|
|
<div class="line"><a id="l11977" name="l11977"></a><span class="lineno">11977</span> <span class="keyword">template</span><<span class="keyword">typename</span> Arg></div>
|
|
<div class="line"><a id="l11978" name="l11978"></a><span class="lineno">11978</span> <span class="keywordtype">bool</span> match(Arg&& arg)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l11979" name="l11979"></a><span class="lineno">11979</span> <span class="keywordflow">return</span> match_any_of<MatcherTs...>(arg, m_matchers, std::index_sequence_for<MatcherTs...>{});</div>
|
|
<div class="line"><a id="l11980" name="l11980"></a><span class="lineno">11980</span> }</div>
|
|
<div class="line"><a id="l11981" name="l11981"></a><span class="lineno">11981</span> </div>
|
|
<div class="line"><a id="l11982" name="l11982"></a><span class="lineno">11982</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l11983" name="l11983"></a><span class="lineno">11983</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">describe_multi_matcher</a><MatcherTs...>(<span class="stringliteral">" or "</span>_sr, m_matchers, std::index_sequence_for<MatcherTs...>{});</div>
|
|
<div class="line"><a id="l11984" name="l11984"></a><span class="lineno">11984</span> }</div>
|
|
<div class="line"><a id="l11985" name="l11985"></a><span class="lineno">11985</span> </div>
|
|
<div class="line"><a id="l11986" name="l11986"></a><span class="lineno">11986</span> </div>
|
|
<div class="line"><a id="l11987" name="l11987"></a><span class="lineno">11987</span> <span class="comment">// Has to be public to enable the concatenating operators</span></div>
|
|
<div class="line"><a id="l11988" name="l11988"></a><span class="lineno">11988</span> <span class="comment">// below, because they are not friend of the RHS, only LHS,</span></div>
|
|
<div class="line"><a id="l11989" name="l11989"></a><span class="lineno">11989</span> <span class="comment">// and thus cannot access private fields of RHS</span></div>
|
|
<div class="line"><a id="l11990" name="l11990"></a><span class="lineno">11990</span> std::array<<span class="keywordtype">void</span> <span class="keyword">const</span>*, <span class="keyword">sizeof</span>...( MatcherTs )> m_matchers;</div>
|
|
<div class="line"><a id="l11991" name="l11991"></a><span class="lineno">11991</span></div>
|
|
<div class="line"><a id="l11993" name="l11993"></a><span class="lineno">11993</span> <span class="keyword">template</span><<span class="keyword">typename</span>... MatchersRHS></div>
|
|
<div class="line"><a id="l11994" name="l11994"></a><span class="lineno">11994</span> <span class="keyword">friend</span> MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (</div>
|
|
<div class="line"><a id="l11995" name="l11995"></a><span class="lineno">11995</span> MatchAnyOfGeneric<MatcherTs...>&& lhs,</div>
|
|
<div class="line"><a id="l11996" name="l11996"></a><span class="lineno">11996</span> MatchAnyOfGeneric<MatchersRHS...>&& rhs) {</div>
|
|
<div class="line"><a id="l11997" name="l11997"></a><span class="lineno">11997</span> <span class="keywordflow">return</span> MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>{array_cat(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs.m_matchers), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs.m_matchers))};</div>
|
|
<div class="line"><a id="l11998" name="l11998"></a><span class="lineno">11998</span> }</div>
|
|
<div class="line"><a id="l11999" name="l11999"></a><span class="lineno">11999</span></div>
|
|
<div class="line"><a id="l12001" name="l12001"></a><span class="lineno">12001</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l12002" name="l12002"></a><span class="lineno">12002</span> <span class="keyword">friend</span> std::enable_if_t<is_matcher<MatcherRHS>::value,</div>
|
|
<div class="line"><a id="l12003" name="l12003"></a><span class="lineno">12003</span> MatchAnyOfGeneric<MatcherTs..., MatcherRHS>> operator || (</div>
|
|
<div class="line"><a id="l12004" name="l12004"></a><span class="lineno">12004</span> MatchAnyOfGeneric<MatcherTs...>&& lhs,</div>
|
|
<div class="line"><a id="l12005" name="l12005"></a><span class="lineno">12005</span> MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12006" name="l12006"></a><span class="lineno">12006</span> <span class="keywordflow">return</span> MatchAnyOfGeneric<MatcherTs..., MatcherRHS>{array_cat(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(lhs.m_matchers), <span class="keyword">static_cast<</span><span class="keywordtype">void</span> const*<span class="keyword">></span>(std::addressof(rhs)))};</div>
|
|
<div class="line"><a id="l12007" name="l12007"></a><span class="lineno">12007</span> }</div>
|
|
<div class="line"><a id="l12008" name="l12008"></a><span class="lineno">12008</span></div>
|
|
<div class="line"><a id="l12010" name="l12010"></a><span class="lineno">12010</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS></div>
|
|
<div class="line"><a id="l12011" name="l12011"></a><span class="lineno">12011</span> <span class="keyword">friend</span> std::enable_if_t<is_matcher<MatcherLHS>::value,</div>
|
|
<div class="line"><a id="l12012" name="l12012"></a><span class="lineno">12012</span> MatchAnyOfGeneric<MatcherLHS, MatcherTs...>> operator || (</div>
|
|
<div class="line"><a id="l12013" name="l12013"></a><span class="lineno">12013</span> MatcherLHS <span class="keyword">const</span>& lhs,</div>
|
|
<div class="line"><a id="l12014" name="l12014"></a><span class="lineno">12014</span> MatchAnyOfGeneric<MatcherTs...>&& rhs) {</div>
|
|
<div class="line"><a id="l12015" name="l12015"></a><span class="lineno">12015</span> <span class="keywordflow">return</span> MatchAnyOfGeneric<MatcherLHS, MatcherTs...>{array_cat(<span class="keyword">static_cast<</span><span class="keywordtype">void</span> const*<span class="keyword">></span>(std::addressof(lhs)), <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(rhs.m_matchers))};</div>
|
|
<div class="line"><a id="l12016" name="l12016"></a><span class="lineno">12016</span> }</div>
|
|
<div class="line"><a id="l12017" name="l12017"></a><span class="lineno">12017</span> };</div>
|
|
<div class="line"><a id="l12018" name="l12018"></a><span class="lineno">12018</span> </div>
|
|
<div class="line"><a id="l12019" name="l12019"></a><span class="lineno">12019</span> </div>
|
|
<div class="line"><a id="l12020" name="l12020"></a><span class="lineno">12020</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherT></div>
|
|
<div class="line"><a id="l12021" name="l12021"></a><span class="lineno">12021</span> <span class="keyword">class </span>MatchNotOfGeneric final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12022" name="l12022"></a><span class="lineno">12022</span> MatcherT <span class="keyword">const</span>& m_matcher;</div>
|
|
<div class="line"><a id="l12023" name="l12023"></a><span class="lineno">12023</span> </div>
|
|
<div class="line"><a id="l12024" name="l12024"></a><span class="lineno">12024</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12025" name="l12025"></a><span class="lineno">12025</span> MatchNotOfGeneric(MatchNotOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l12026" name="l12026"></a><span class="lineno">12026</span> MatchNotOfGeneric& operator=(MatchNotOfGeneric <span class="keyword">const</span>&) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l12027" name="l12027"></a><span class="lineno">12027</span> MatchNotOfGeneric(MatchNotOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l12028" name="l12028"></a><span class="lineno">12028</span> MatchNotOfGeneric& operator=(MatchNotOfGeneric&&) = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l12029" name="l12029"></a><span class="lineno">12029</span> </div>
|
|
<div class="line"><a id="l12030" name="l12030"></a><span class="lineno">12030</span> <span class="keyword">explicit</span> MatchNotOfGeneric(MatcherT <span class="keyword">const</span>& matcher) : m_matcher{matcher} {}</div>
|
|
<div class="line"><a id="l12031" name="l12031"></a><span class="lineno">12031</span> </div>
|
|
<div class="line"><a id="l12032" name="l12032"></a><span class="lineno">12032</span> <span class="keyword">template</span><<span class="keyword">typename</span> Arg></div>
|
|
<div class="line"><a id="l12033" name="l12033"></a><span class="lineno">12033</span> <span class="keywordtype">bool</span> match(Arg&& arg)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12034" name="l12034"></a><span class="lineno">12034</span> <span class="keywordflow">return</span> !m_matcher.match(arg);</div>
|
|
<div class="line"><a id="l12035" name="l12035"></a><span class="lineno">12035</span> }</div>
|
|
<div class="line"><a id="l12036" name="l12036"></a><span class="lineno">12036</span> </div>
|
|
<div class="line"><a id="l12037" name="l12037"></a><span class="lineno">12037</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12038" name="l12038"></a><span class="lineno">12038</span> <span class="keywordflow">return</span> <span class="stringliteral">"not "</span> + m_matcher.toString();</div>
|
|
<div class="line"><a id="l12039" name="l12039"></a><span class="lineno">12039</span> }</div>
|
|
<div class="line"><a id="l12040" name="l12040"></a><span class="lineno">12040</span></div>
|
|
<div class="line"><a id="l12042" name="l12042"></a><span class="lineno">12042</span> <span class="keyword">friend</span> MatcherT <span class="keyword">const</span>& operator ! (MatchNotOfGeneric<MatcherT> <span class="keyword">const</span>& matcher) {</div>
|
|
<div class="line"><a id="l12043" name="l12043"></a><span class="lineno">12043</span> <span class="keywordflow">return</span> matcher.m_matcher;</div>
|
|
<div class="line"><a id="l12044" name="l12044"></a><span class="lineno">12044</span> }</div>
|
|
<div class="line"><a id="l12045" name="l12045"></a><span class="lineno">12045</span> };</div>
|
|
<div class="line"><a id="l12046" name="l12046"></a><span class="lineno">12046</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l12047" name="l12047"></a><span class="lineno">12047</span> </div>
|
|
<div class="line"><a id="l12048" name="l12048"></a><span class="lineno">12048</span> </div>
|
|
<div class="line"><a id="l12049" name="l12049"></a><span class="lineno">12049</span> <span class="comment">// compose only generic matchers</span></div>
|
|
<div class="line"><a id="l12050" name="l12050"></a><span class="lineno">12050</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS, <span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l12051" name="l12051"></a><span class="lineno">12051</span> std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>></div>
|
|
<div class="line"><a id="l12052" name="l12052"></a><span class="lineno">12052</span> operator && (MatcherLHS <span class="keyword">const</span>& lhs, MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12053" name="l12053"></a><span class="lineno">12053</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12054" name="l12054"></a><span class="lineno">12054</span> }</div>
|
|
<div class="line"><a id="l12055" name="l12055"></a><span class="lineno">12055</span> </div>
|
|
<div class="line"><a id="l12056" name="l12056"></a><span class="lineno">12056</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS, <span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l12057" name="l12057"></a><span class="lineno">12057</span> std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>></div>
|
|
<div class="line"><a id="l12058" name="l12058"></a><span class="lineno">12058</span> operator || (MatcherLHS <span class="keyword">const</span>& lhs, MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12059" name="l12059"></a><span class="lineno">12059</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12060" name="l12060"></a><span class="lineno">12060</span> }</div>
|
|
<div class="line"><a id="l12061" name="l12061"></a><span class="lineno">12061</span></div>
|
|
<div class="line"><a id="l12063" name="l12063"></a><span class="lineno">12063</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherT></div>
|
|
<div class="line"><a id="l12064" name="l12064"></a><span class="lineno">12064</span> std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>></div>
|
|
<div class="line"><a id="l12065" name="l12065"></a><span class="lineno">12065</span> operator ! (MatcherT <span class="keyword">const</span>& matcher) {</div>
|
|
<div class="line"><a id="l12066" name="l12066"></a><span class="lineno">12066</span> <span class="keywordflow">return</span> Detail::MatchNotOfGeneric<MatcherT>{matcher};</div>
|
|
<div class="line"><a id="l12067" name="l12067"></a><span class="lineno">12067</span> }</div>
|
|
<div class="line"><a id="l12068" name="l12068"></a><span class="lineno">12068</span> </div>
|
|
<div class="line"><a id="l12069" name="l12069"></a><span class="lineno">12069</span> </div>
|
|
<div class="line"><a id="l12070" name="l12070"></a><span class="lineno">12070</span> <span class="comment">// compose mixed generic and non-generic matchers</span></div>
|
|
<div class="line"><a id="l12071" name="l12071"></a><span class="lineno">12071</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS, <span class="keyword">typename</span> ArgRHS></div>
|
|
<div class="line"><a id="l12072" name="l12072"></a><span class="lineno">12072</span> std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>></div>
|
|
<div class="line"><a id="l12073" name="l12073"></a><span class="lineno">12073</span> operator && (MatcherLHS <span class="keyword">const</span>& lhs, MatcherBase<ArgRHS> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12074" name="l12074"></a><span class="lineno">12074</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12075" name="l12075"></a><span class="lineno">12075</span> }</div>
|
|
<div class="line"><a id="l12076" name="l12076"></a><span class="lineno">12076</span> </div>
|
|
<div class="line"><a id="l12077" name="l12077"></a><span class="lineno">12077</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgLHS, <span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l12078" name="l12078"></a><span class="lineno">12078</span> std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>></div>
|
|
<div class="line"><a id="l12079" name="l12079"></a><span class="lineno">12079</span> operator && (MatcherBase<ArgLHS> <span class="keyword">const</span>& lhs, MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12080" name="l12080"></a><span class="lineno">12080</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12081" name="l12081"></a><span class="lineno">12081</span> }</div>
|
|
<div class="line"><a id="l12082" name="l12082"></a><span class="lineno">12082</span> </div>
|
|
<div class="line"><a id="l12083" name="l12083"></a><span class="lineno">12083</span> <span class="keyword">template</span><<span class="keyword">typename</span> MatcherLHS, <span class="keyword">typename</span> ArgRHS></div>
|
|
<div class="line"><a id="l12084" name="l12084"></a><span class="lineno">12084</span> std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>></div>
|
|
<div class="line"><a id="l12085" name="l12085"></a><span class="lineno">12085</span> operator || (MatcherLHS <span class="keyword">const</span>& lhs, MatcherBase<ArgRHS> <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12086" name="l12086"></a><span class="lineno">12086</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12087" name="l12087"></a><span class="lineno">12087</span> }</div>
|
|
<div class="line"><a id="l12088" name="l12088"></a><span class="lineno">12088</span> </div>
|
|
<div class="line"><a id="l12089" name="l12089"></a><span class="lineno">12089</span> <span class="keyword">template</span><<span class="keyword">typename</span> ArgLHS, <span class="keyword">typename</span> MatcherRHS></div>
|
|
<div class="line"><a id="l12090" name="l12090"></a><span class="lineno">12090</span> std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>></div>
|
|
<div class="line"><a id="l12091" name="l12091"></a><span class="lineno">12091</span> operator || (MatcherBase<ArgLHS> <span class="keyword">const</span>& lhs, MatcherRHS <span class="keyword">const</span>& rhs) {</div>
|
|
<div class="line"><a id="l12092" name="l12092"></a><span class="lineno">12092</span> <span class="keywordflow">return</span> { lhs, rhs };</div>
|
|
<div class="line"><a id="l12093" name="l12093"></a><span class="lineno">12093</span> }</div>
|
|
<div class="line"><a id="l12094" name="l12094"></a><span class="lineno">12094</span> </div>
|
|
<div class="line"><a id="l12095" name="l12095"></a><span class="lineno">12095</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12096" name="l12096"></a><span class="lineno">12096</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12097" name="l12097"></a><span class="lineno">12097</span> </div>
|
|
<div class="line"><a id="l12098" name="l12098"></a><span class="lineno">12098</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_TEMPLATED_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12099" name="l12099"></a><span class="lineno">12099</span> </div>
|
|
<div class="line"><a id="l12100" name="l12100"></a><span class="lineno">12100</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12101" name="l12101"></a><span class="lineno">12101</span> <span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12102" name="l12102"></a><span class="lineno">12102</span> </div>
|
|
<div class="line"><a id="l12103" name="l12103"></a><span class="lineno">12103</span> <span class="keyword">class </span>IsEmptyMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12104" name="l12104"></a><span class="lineno">12104</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12105" name="l12105"></a><span class="lineno">12105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12106" name="l12106"></a><span class="lineno">12106</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12107" name="l12107"></a><span class="lineno">12107</span><span class="preprocessor">#if defined(CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS)</span></div>
|
|
<div class="line"><a id="l12108" name="l12108"></a><span class="lineno">12108</span> <span class="keyword">using </span>Catch::Detail::empty;</div>
|
|
<div class="line"><a id="l12109" name="l12109"></a><span class="lineno">12109</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l12110" name="l12110"></a><span class="lineno">12110</span> <span class="keyword">using </span>std::empty;</div>
|
|
<div class="line"><a id="l12111" name="l12111"></a><span class="lineno">12111</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l12112" name="l12112"></a><span class="lineno">12112</span> <span class="keywordflow">return</span> empty(rng);</div>
|
|
<div class="line"><a id="l12113" name="l12113"></a><span class="lineno">12113</span> }</div>
|
|
<div class="line"><a id="l12114" name="l12114"></a><span class="lineno">12114</span> </div>
|
|
<div class="line"><a id="l12115" name="l12115"></a><span class="lineno">12115</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12116" name="l12116"></a><span class="lineno">12116</span> };</div>
|
|
<div class="line"><a id="l12117" name="l12117"></a><span class="lineno">12117</span> </div>
|
|
<div class="line"><a id="l12118" name="l12118"></a><span class="lineno">12118</span> <span class="keyword">class </span>HasSizeMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12119" name="l12119"></a><span class="lineno">12119</span> std::size_t m_target_size;</div>
|
|
<div class="line"><a id="l12120" name="l12120"></a><span class="lineno">12120</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12121" name="l12121"></a><span class="lineno">12121</span> <span class="keyword">explicit</span> HasSizeMatcher(std::size_t target_size):</div>
|
|
<div class="line"><a id="l12122" name="l12122"></a><span class="lineno">12122</span> m_target_size(target_size)</div>
|
|
<div class="line"><a id="l12123" name="l12123"></a><span class="lineno">12123</span> {}</div>
|
|
<div class="line"><a id="l12124" name="l12124"></a><span class="lineno">12124</span> </div>
|
|
<div class="line"><a id="l12125" name="l12125"></a><span class="lineno">12125</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12126" name="l12126"></a><span class="lineno">12126</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12127" name="l12127"></a><span class="lineno">12127</span><span class="preprocessor">#if defined(CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS)</span></div>
|
|
<div class="line"><a id="l12128" name="l12128"></a><span class="lineno">12128</span> <span class="keyword">using </span>Catch::Detail::size;</div>
|
|
<div class="line"><a id="l12129" name="l12129"></a><span class="lineno">12129</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l12130" name="l12130"></a><span class="lineno">12130</span> <span class="keyword">using </span>std::size;</div>
|
|
<div class="line"><a id="l12131" name="l12131"></a><span class="lineno">12131</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l12132" name="l12132"></a><span class="lineno">12132</span> <span class="keywordflow">return</span> size(rng) == m_target_size;</div>
|
|
<div class="line"><a id="l12133" name="l12133"></a><span class="lineno">12133</span> }</div>
|
|
<div class="line"><a id="l12134" name="l12134"></a><span class="lineno">12134</span> </div>
|
|
<div class="line"><a id="l12135" name="l12135"></a><span class="lineno">12135</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12136" name="l12136"></a><span class="lineno">12136</span> };</div>
|
|
<div class="line"><a id="l12137" name="l12137"></a><span class="lineno">12137</span> </div>
|
|
<div class="line"><a id="l12138" name="l12138"></a><span class="lineno">12138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12139" name="l12139"></a><span class="lineno">12139</span> <span class="keyword">class </span>SizeMatchesMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12140" name="l12140"></a><span class="lineno">12140</span> Matcher m_matcher;</div>
|
|
<div class="line"><a id="l12141" name="l12141"></a><span class="lineno">12141</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12142" name="l12142"></a><span class="lineno">12142</span> <span class="keyword">explicit</span> SizeMatchesMatcher(Matcher m):</div>
|
|
<div class="line"><a id="l12143" name="l12143"></a><span class="lineno">12143</span> m_matcher(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(m))</div>
|
|
<div class="line"><a id="l12144" name="l12144"></a><span class="lineno">12144</span> {}</div>
|
|
<div class="line"><a id="l12145" name="l12145"></a><span class="lineno">12145</span> </div>
|
|
<div class="line"><a id="l12146" name="l12146"></a><span class="lineno">12146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12147" name="l12147"></a><span class="lineno">12147</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12148" name="l12148"></a><span class="lineno">12148</span><span class="preprocessor">#if defined(CATCH_CONFIG_POLYFILL_NONMEMBER_CONTAINER_ACCESS)</span></div>
|
|
<div class="line"><a id="l12149" name="l12149"></a><span class="lineno">12149</span> <span class="keyword">using </span>Catch::Detail::size;</div>
|
|
<div class="line"><a id="l12150" name="l12150"></a><span class="lineno">12150</span><span class="preprocessor">#else</span></div>
|
|
<div class="line"><a id="l12151" name="l12151"></a><span class="lineno">12151</span> <span class="keyword">using </span>std::size;</div>
|
|
<div class="line"><a id="l12152" name="l12152"></a><span class="lineno">12152</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l12153" name="l12153"></a><span class="lineno">12153</span> <span class="keywordflow">return</span> m_matcher.match(size(rng));</div>
|
|
<div class="line"><a id="l12154" name="l12154"></a><span class="lineno">12154</span> }</div>
|
|
<div class="line"><a id="l12155" name="l12155"></a><span class="lineno">12155</span> </div>
|
|
<div class="line"><a id="l12156" name="l12156"></a><span class="lineno">12156</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12157" name="l12157"></a><span class="lineno">12157</span> <span class="keywordflow">return</span> <span class="stringliteral">"size matches "</span> + m_matcher.describe();</div>
|
|
<div class="line"><a id="l12158" name="l12158"></a><span class="lineno">12158</span> }</div>
|
|
<div class="line"><a id="l12159" name="l12159"></a><span class="lineno">12159</span> };</div>
|
|
<div class="line"><a id="l12160" name="l12160"></a><span class="lineno">12160</span> </div>
|
|
<div class="line"><a id="l12161" name="l12161"></a><span class="lineno">12161</span></div>
|
|
<div class="line"><a id="l12163" name="l12163"></a><span class="lineno">12163</span> IsEmptyMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#ae345560f84f68d52fc5df4ac77eb4b92">IsEmpty</a>();</div>
|
|
<div class="line"><a id="l12165" name="l12165"></a><span class="lineno">12165</span> HasSizeMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a640c1714c014191cc131b37f955f83ed">SizeIs</a>(std::size_t sz);</div>
|
|
<div class="line"><a id="l12166" name="l12166"></a><span class="lineno">12166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12167" name="l12167"></a><span class="lineno">12167</span> std::enable_if_t<Detail::is_matcher<Matcher>::value,</div>
|
|
<div class="line"><a id="l12168" name="l12168"></a><span class="lineno">12168</span> SizeMatchesMatcher<Matcher>> <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a640c1714c014191cc131b37f955f83ed">SizeIs</a>(Matcher&& m) {</div>
|
|
<div class="line"><a id="l12169" name="l12169"></a><span class="lineno">12169</span> <span class="keywordflow">return</span> SizeMatchesMatcher<Matcher>{<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(m)};</div>
|
|
<div class="line"><a id="l12170" name="l12170"></a><span class="lineno">12170</span> }</div>
|
|
<div class="line"><a id="l12171" name="l12171"></a><span class="lineno">12171</span> </div>
|
|
<div class="line"><a id="l12172" name="l12172"></a><span class="lineno">12172</span> } <span class="comment">// end namespace Matchers</span></div>
|
|
<div class="line"><a id="l12173" name="l12173"></a><span class="lineno">12173</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l12174" name="l12174"></a><span class="lineno">12174</span> </div>
|
|
<div class="line"><a id="l12175" name="l12175"></a><span class="lineno">12175</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_CONTAINER_PROPERTIES_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12176" name="l12176"></a><span class="lineno">12176</span> </div>
|
|
<div class="line"><a id="l12177" name="l12177"></a><span class="lineno">12177</span> </div>
|
|
<div class="line"><a id="l12178" name="l12178"></a><span class="lineno">12178</span><span class="preprocessor">#ifndef CATCH_MATCHERS_CONTAINS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12179" name="l12179"></a><span class="lineno">12179</span><span class="preprocessor">#define CATCH_MATCHERS_CONTAINS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12180" name="l12180"></a><span class="lineno">12180</span> </div>
|
|
<div class="line"><a id="l12181" name="l12181"></a><span class="lineno">12181</span> </div>
|
|
<div class="line"><a id="l12182" name="l12182"></a><span class="lineno">12182</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l12183" name="l12183"></a><span class="lineno">12183</span><span class="preprocessor">#include <functional></span></div>
|
|
<div class="line"><a id="l12184" name="l12184"></a><span class="lineno">12184</span> </div>
|
|
<div class="line"><a id="l12185" name="l12185"></a><span class="lineno">12185</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12186" name="l12186"></a><span class="lineno">12186</span> <span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12188" name="l12188"></a><span class="lineno">12188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Equality></div>
|
|
<div class="line"><a id="l12189" name="l12189"></a><span class="lineno">12189</span> <span class="keyword">class </span>ContainsElementMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12190" name="l12190"></a><span class="lineno">12190</span> T m_desired;</div>
|
|
<div class="line"><a id="l12191" name="l12191"></a><span class="lineno">12191</span> Equality m_eq;</div>
|
|
<div class="line"><a id="l12192" name="l12192"></a><span class="lineno">12192</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12193" name="l12193"></a><span class="lineno">12193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T2, <span class="keyword">typename</span> Equality2></div>
|
|
<div class="line"><a id="l12194" name="l12194"></a><span class="lineno">12194</span> ContainsElementMatcher(T2&& target, Equality2&& predicate):</div>
|
|
<div class="line"><a id="l12195" name="l12195"></a><span class="lineno">12195</span> m_desired(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(target)),</div>
|
|
<div class="line"><a id="l12196" name="l12196"></a><span class="lineno">12196</span> m_eq(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(predicate))</div>
|
|
<div class="line"><a id="l12197" name="l12197"></a><span class="lineno">12197</span> {}</div>
|
|
<div class="line"><a id="l12198" name="l12198"></a><span class="lineno">12198</span> </div>
|
|
<div class="line"><a id="l12199" name="l12199"></a><span class="lineno">12199</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12200" name="l12200"></a><span class="lineno">12200</span> <span class="keywordflow">return</span> <span class="stringliteral">"contains element "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>(m_desired);</div>
|
|
<div class="line"><a id="l12201" name="l12201"></a><span class="lineno">12201</span> }</div>
|
|
<div class="line"><a id="l12202" name="l12202"></a><span class="lineno">12202</span> </div>
|
|
<div class="line"><a id="l12203" name="l12203"></a><span class="lineno">12203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12204" name="l12204"></a><span class="lineno">12204</span> <span class="keywordtype">bool</span> match( RangeLike&& rng )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12205" name="l12205"></a><span class="lineno">12205</span> <span class="keywordflow">for</span> ( <span class="keyword">auto</span>&& elem : rng ) {</div>
|
|
<div class="line"><a id="l12206" name="l12206"></a><span class="lineno">12206</span> <span class="keywordflow">if</span> ( m_eq( elem, m_desired ) ) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
|
|
<div class="line"><a id="l12207" name="l12207"></a><span class="lineno">12207</span> }</div>
|
|
<div class="line"><a id="l12208" name="l12208"></a><span class="lineno">12208</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12209" name="l12209"></a><span class="lineno">12209</span> }</div>
|
|
<div class="line"><a id="l12210" name="l12210"></a><span class="lineno">12210</span> };</div>
|
|
<div class="line"><a id="l12211" name="l12211"></a><span class="lineno">12211</span></div>
|
|
<div class="line"><a id="l12213" name="l12213"></a><span class="lineno">12213</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12214" name="l12214"></a><span class="lineno">12214</span> <span class="keyword">class </span>ContainsMatcherMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12215" name="l12215"></a><span class="lineno">12215</span> Matcher m_matcher;</div>
|
|
<div class="line"><a id="l12216" name="l12216"></a><span class="lineno">12216</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12217" name="l12217"></a><span class="lineno">12217</span> <span class="comment">// Note that we do a copy+move to avoid having to SFINAE this</span></div>
|
|
<div class="line"><a id="l12218" name="l12218"></a><span class="lineno">12218</span> <span class="comment">// constructor (and also avoid some perfect forwarding failure</span></div>
|
|
<div class="line"><a id="l12219" name="l12219"></a><span class="lineno">12219</span> <span class="comment">// cases)</span></div>
|
|
<div class="line"><a id="l12220" name="l12220"></a><span class="lineno">12220</span> ContainsMatcherMatcher(Matcher matcher):</div>
|
|
<div class="line"><a id="l12221" name="l12221"></a><span class="lineno">12221</span> m_matcher(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(matcher))</div>
|
|
<div class="line"><a id="l12222" name="l12222"></a><span class="lineno">12222</span> {}</div>
|
|
<div class="line"><a id="l12223" name="l12223"></a><span class="lineno">12223</span> </div>
|
|
<div class="line"><a id="l12224" name="l12224"></a><span class="lineno">12224</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12225" name="l12225"></a><span class="lineno">12225</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12226" name="l12226"></a><span class="lineno">12226</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12227" name="l12227"></a><span class="lineno">12227</span> <span class="keywordflow">if</span> (m_matcher.match(elem)) {</div>
|
|
<div class="line"><a id="l12228" name="l12228"></a><span class="lineno">12228</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12229" name="l12229"></a><span class="lineno">12229</span> }</div>
|
|
<div class="line"><a id="l12230" name="l12230"></a><span class="lineno">12230</span> }</div>
|
|
<div class="line"><a id="l12231" name="l12231"></a><span class="lineno">12231</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12232" name="l12232"></a><span class="lineno">12232</span> }</div>
|
|
<div class="line"><a id="l12233" name="l12233"></a><span class="lineno">12233</span> </div>
|
|
<div class="line"><a id="l12234" name="l12234"></a><span class="lineno">12234</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12235" name="l12235"></a><span class="lineno">12235</span> <span class="keywordflow">return</span> <span class="stringliteral">"contains element matching "</span> + m_matcher.describe();</div>
|
|
<div class="line"><a id="l12236" name="l12236"></a><span class="lineno">12236</span> }</div>
|
|
<div class="line"><a id="l12237" name="l12237"></a><span class="lineno">12237</span> };</div>
|
|
<div class="line"><a id="l12238" name="l12238"></a><span class="lineno">12238</span></div>
|
|
<div class="line"><a id="l12244" name="l12244"></a><span class="lineno">12244</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l12245" name="l12245"></a><span class="lineno">12245</span> std::enable_if_t<!Detail::is_matcher<T>::value,</div>
|
|
<div class="line"><a id="l12246" name="l12246"></a><span class="lineno">12246</span> ContainsElementMatcher<T, std::equal_to<>>> Contains(T&& elem) {</div>
|
|
<div class="line"><a id="l12247" name="l12247"></a><span class="lineno">12247</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(elem), std::equal_to<>{} };</div>
|
|
<div class="line"><a id="l12248" name="l12248"></a><span class="lineno">12248</span> }</div>
|
|
<div class="line"><a id="l12249" name="l12249"></a><span class="lineno">12249</span></div>
|
|
<div class="line"><a id="l12251" name="l12251"></a><span class="lineno">12251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12252" name="l12252"></a><span class="lineno">12252</span> std::enable_if_t<Detail::is_matcher<Matcher>::value,</div>
|
|
<div class="line"><a id="l12253" name="l12253"></a><span class="lineno">12253</span> ContainsMatcherMatcher<Matcher>> Contains(Matcher&& matcher) {</div>
|
|
<div class="line"><a id="l12254" name="l12254"></a><span class="lineno">12254</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(matcher) };</div>
|
|
<div class="line"><a id="l12255" name="l12255"></a><span class="lineno">12255</span> }</div>
|
|
<div class="line"><a id="l12256" name="l12256"></a><span class="lineno">12256</span></div>
|
|
<div class="line"><a id="l12262" name="l12262"></a><span class="lineno">12262</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Equality></div>
|
|
<div class="line"><a id="l12263" name="l12263"></a><span class="lineno">12263</span> ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq) {</div>
|
|
<div class="line"><a id="l12264" name="l12264"></a><span class="lineno">12264</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(elem), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(eq) };</div>
|
|
<div class="line"><a id="l12265" name="l12265"></a><span class="lineno">12265</span> }</div>
|
|
<div class="line"><a id="l12266" name="l12266"></a><span class="lineno">12266</span> </div>
|
|
<div class="line"><a id="l12267" name="l12267"></a><span class="lineno">12267</span> }</div>
|
|
<div class="line"><a id="l12268" name="l12268"></a><span class="lineno">12268</span>}</div>
|
|
<div class="line"><a id="l12269" name="l12269"></a><span class="lineno">12269</span> </div>
|
|
<div class="line"><a id="l12270" name="l12270"></a><span class="lineno">12270</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_CONTAINS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12271" name="l12271"></a><span class="lineno">12271</span> </div>
|
|
<div class="line"><a id="l12272" name="l12272"></a><span class="lineno">12272</span> </div>
|
|
<div class="line"><a id="l12273" name="l12273"></a><span class="lineno">12273</span><span class="preprocessor">#ifndef CATCH_MATCHERS_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12274" name="l12274"></a><span class="lineno">12274</span><span class="preprocessor">#define CATCH_MATCHERS_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12275" name="l12275"></a><span class="lineno">12275</span> </div>
|
|
<div class="line"><a id="l12276" name="l12276"></a><span class="lineno">12276</span> </div>
|
|
<div class="line"><a id="l12277" name="l12277"></a><span class="lineno">12277</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12278" name="l12278"></a><span class="lineno">12278</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12279" name="l12279"></a><span class="lineno">12279</span> </div>
|
|
<div class="line"><a id="l12280" name="l12280"></a><span class="lineno">12280</span><span class="keyword">class </span>ExceptionMessageMatcher final : <span class="keyword">public</span> MatcherBase<std::exception> {</div>
|
|
<div class="line"><a id="l12281" name="l12281"></a><span class="lineno">12281</span> std::string m_message;</div>
|
|
<div class="line"><a id="l12282" name="l12282"></a><span class="lineno">12282</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12283" name="l12283"></a><span class="lineno">12283</span> </div>
|
|
<div class="line"><a id="l12284" name="l12284"></a><span class="lineno">12284</span> ExceptionMessageMatcher(std::string <span class="keyword">const</span>& message):</div>
|
|
<div class="line"><a id="l12285" name="l12285"></a><span class="lineno">12285</span> m_message(message)</div>
|
|
<div class="line"><a id="l12286" name="l12286"></a><span class="lineno">12286</span> {}</div>
|
|
<div class="line"><a id="l12287" name="l12287"></a><span class="lineno">12287</span> </div>
|
|
<div class="line"><a id="l12288" name="l12288"></a><span class="lineno">12288</span> <span class="keywordtype">bool</span> match(std::exception <span class="keyword">const</span>& ex) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12289" name="l12289"></a><span class="lineno">12289</span> </div>
|
|
<div class="line"><a id="l12290" name="l12290"></a><span class="lineno">12290</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12291" name="l12291"></a><span class="lineno">12291</span>};</div>
|
|
<div class="line"><a id="l12292" name="l12292"></a><span class="lineno">12292</span></div>
|
|
<div class="line"><a id="l12294" name="l12294"></a><span class="lineno">12294</span>ExceptionMessageMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a4c7d45a32d4ecf1d71b24b37920a5be7">Message</a>(std::string <span class="keyword">const</span>& message);</div>
|
|
<div class="line"><a id="l12295" name="l12295"></a><span class="lineno">12295</span> </div>
|
|
<div class="line"><a id="l12296" name="l12296"></a><span class="lineno">12296</span><span class="keyword">template</span> <<span class="keyword">typename</span> StringMatcherType></div>
|
|
<div class="line"><a id="l12297" name="l12297"></a><span class="lineno">12297</span><span class="keyword">class </span>ExceptionMessageMatchesMatcher final</div>
|
|
<div class="line"><a id="l12298" name="l12298"></a><span class="lineno">12298</span> : <span class="keyword">public</span> MatcherBase<std::exception> {</div>
|
|
<div class="line"><a id="l12299" name="l12299"></a><span class="lineno">12299</span> StringMatcherType m_matcher;</div>
|
|
<div class="line"><a id="l12300" name="l12300"></a><span class="lineno">12300</span> </div>
|
|
<div class="line"><a id="l12301" name="l12301"></a><span class="lineno">12301</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12302" name="l12302"></a><span class="lineno">12302</span> ExceptionMessageMatchesMatcher( StringMatcherType matcher ):</div>
|
|
<div class="line"><a id="l12303" name="l12303"></a><span class="lineno">12303</span> m_matcher( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>( matcher ) ) {}</div>
|
|
<div class="line"><a id="l12304" name="l12304"></a><span class="lineno">12304</span> </div>
|
|
<div class="line"><a id="l12305" name="l12305"></a><span class="lineno">12305</span> <span class="keywordtype">bool</span> match( std::exception <span class="keyword">const</span>& ex )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12306" name="l12306"></a><span class="lineno">12306</span> <span class="keywordflow">return</span> m_matcher.match( ex.what() );</div>
|
|
<div class="line"><a id="l12307" name="l12307"></a><span class="lineno">12307</span> }</div>
|
|
<div class="line"><a id="l12308" name="l12308"></a><span class="lineno">12308</span> </div>
|
|
<div class="line"><a id="l12309" name="l12309"></a><span class="lineno">12309</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12310" name="l12310"></a><span class="lineno">12310</span> <span class="keywordflow">return</span> <span class="stringliteral">" matches \""</span> + m_matcher.describe() + <span class="charliteral">'"'</span>;</div>
|
|
<div class="line"><a id="l12311" name="l12311"></a><span class="lineno">12311</span> }</div>
|
|
<div class="line"><a id="l12312" name="l12312"></a><span class="lineno">12312</span>};</div>
|
|
<div class="line"><a id="l12313" name="l12313"></a><span class="lineno">12313</span></div>
|
|
<div class="line"><a id="l12316" name="l12316"></a><span class="lineno">12316</span><span class="keyword">template</span> <<span class="keyword">typename</span> StringMatcherType></div>
|
|
<div class="line"><a id="l12317" name="l12317"></a><span class="lineno">12317</span>ExceptionMessageMatchesMatcher<StringMatcherType></div>
|
|
<div class="line"><a id="l12318" name="l12318"></a><span class="lineno">12318</span>MessageMatches( StringMatcherType&& matcher ) {</div>
|
|
<div class="line"><a id="l12319" name="l12319"></a><span class="lineno">12319</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( matcher ) };</div>
|
|
<div class="line"><a id="l12320" name="l12320"></a><span class="lineno">12320</span>}</div>
|
|
<div class="line"><a id="l12321" name="l12321"></a><span class="lineno">12321</span> </div>
|
|
<div class="line"><a id="l12322" name="l12322"></a><span class="lineno">12322</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12323" name="l12323"></a><span class="lineno">12323</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12324" name="l12324"></a><span class="lineno">12324</span> </div>
|
|
<div class="line"><a id="l12325" name="l12325"></a><span class="lineno">12325</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_EXCEPTION_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12326" name="l12326"></a><span class="lineno">12326</span> </div>
|
|
<div class="line"><a id="l12327" name="l12327"></a><span class="lineno">12327</span> </div>
|
|
<div class="line"><a id="l12328" name="l12328"></a><span class="lineno">12328</span><span class="preprocessor">#ifndef CATCH_MATCHERS_FLOATING_POINT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12329" name="l12329"></a><span class="lineno">12329</span><span class="preprocessor">#define CATCH_MATCHERS_FLOATING_POINT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12330" name="l12330"></a><span class="lineno">12330</span> </div>
|
|
<div class="line"><a id="l12331" name="l12331"></a><span class="lineno">12331</span> </div>
|
|
<div class="line"><a id="l12332" name="l12332"></a><span class="lineno">12332</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12333" name="l12333"></a><span class="lineno">12333</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12334" name="l12334"></a><span class="lineno">12334</span> </div>
|
|
<div class="line"><a id="l12335" name="l12335"></a><span class="lineno">12335</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l12336" name="l12336"></a><span class="lineno">12336</span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceCatch_1_1Matchers_1_1Detail.html#a65dcb4c6cc6803847848523398ae680c">FloatingPointKind</a> : uint8_t;</div>
|
|
<div class="line"><a id="l12337" name="l12337"></a><span class="lineno">12337</span> }</div>
|
|
<div class="line"><a id="l12338" name="l12338"></a><span class="lineno">12338</span> </div>
|
|
<div class="line"><a id="l12339" name="l12339"></a><span class="lineno">12339</span> <span class="keyword">class </span>WithinAbsMatcher final : <span class="keyword">public</span> MatcherBase<double> {</div>
|
|
<div class="line"><a id="l12340" name="l12340"></a><span class="lineno">12340</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12341" name="l12341"></a><span class="lineno">12341</span> WithinAbsMatcher(<span class="keywordtype">double</span> target, <span class="keywordtype">double</span> margin);</div>
|
|
<div class="line"><a id="l12342" name="l12342"></a><span class="lineno">12342</span> <span class="keywordtype">bool</span> match(<span class="keywordtype">double</span> <span class="keyword">const</span>& matchee) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12343" name="l12343"></a><span class="lineno">12343</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12344" name="l12344"></a><span class="lineno">12344</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l12345" name="l12345"></a><span class="lineno">12345</span> <span class="keywordtype">double</span> m_target;</div>
|
|
<div class="line"><a id="l12346" name="l12346"></a><span class="lineno">12346</span> <span class="keywordtype">double</span> m_margin;</div>
|
|
<div class="line"><a id="l12347" name="l12347"></a><span class="lineno">12347</span> };</div>
|
|
<div class="line"><a id="l12348" name="l12348"></a><span class="lineno">12348</span></div>
|
|
<div class="line"><a id="l12350" name="l12350"></a><span class="lineno">12350</span> WithinAbsMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a13a915665906ab3efb39e118c649285f">WithinAbs</a>( <span class="keywordtype">double</span> target, <span class="keywordtype">double</span> margin );</div>
|
|
<div class="line"><a id="l12351" name="l12351"></a><span class="lineno">12351</span> </div>
|
|
<div class="line"><a id="l12352" name="l12352"></a><span class="lineno">12352</span> </div>
|
|
<div class="line"><a id="l12353" name="l12353"></a><span class="lineno">12353</span> </div>
|
|
<div class="line"><a id="l12354" name="l12354"></a><span class="lineno">12354</span> <span class="keyword">class </span>WithinUlpsMatcher final : <span class="keyword">public</span> MatcherBase<double> {</div>
|
|
<div class="line"><a id="l12355" name="l12355"></a><span class="lineno">12355</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12356" name="l12356"></a><span class="lineno">12356</span> WithinUlpsMatcher( <span class="keywordtype">double</span> target,</div>
|
|
<div class="line"><a id="l12357" name="l12357"></a><span class="lineno">12357</span> uint64_t ulps,</div>
|
|
<div class="line"><a id="l12358" name="l12358"></a><span class="lineno">12358</span> Detail::FloatingPointKind baseType );</div>
|
|
<div class="line"><a id="l12359" name="l12359"></a><span class="lineno">12359</span> <span class="keywordtype">bool</span> match(<span class="keywordtype">double</span> <span class="keyword">const</span>& matchee) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12360" name="l12360"></a><span class="lineno">12360</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12361" name="l12361"></a><span class="lineno">12361</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l12362" name="l12362"></a><span class="lineno">12362</span> <span class="keywordtype">double</span> m_target;</div>
|
|
<div class="line"><a id="l12363" name="l12363"></a><span class="lineno">12363</span> uint64_t m_ulps;</div>
|
|
<div class="line"><a id="l12364" name="l12364"></a><span class="lineno">12364</span> Detail::FloatingPointKind m_type;</div>
|
|
<div class="line"><a id="l12365" name="l12365"></a><span class="lineno">12365</span> };</div>
|
|
<div class="line"><a id="l12366" name="l12366"></a><span class="lineno">12366</span></div>
|
|
<div class="line"><a id="l12368" name="l12368"></a><span class="lineno">12368</span> WithinUlpsMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a88361ad809aab09ff75c87bf6cdd7fad">WithinULP</a>(<span class="keywordtype">double</span> target, uint64_t maxUlpDiff);</div>
|
|
<div class="line"><a id="l12370" name="l12370"></a><span class="lineno">12370</span> WithinUlpsMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a88361ad809aab09ff75c87bf6cdd7fad">WithinULP</a>(<span class="keywordtype">float</span> target, uint64_t maxUlpDiff);</div>
|
|
<div class="line"><a id="l12371" name="l12371"></a><span class="lineno">12371</span> </div>
|
|
<div class="line"><a id="l12372" name="l12372"></a><span class="lineno">12372</span> </div>
|
|
<div class="line"><a id="l12373" name="l12373"></a><span class="lineno">12373</span> </div>
|
|
<div class="line"><a id="l12374" name="l12374"></a><span class="lineno">12374</span> <span class="comment">// Given IEEE-754 format for floats and doubles, we can assume</span></div>
|
|
<div class="line"><a id="l12375" name="l12375"></a><span class="lineno">12375</span> <span class="comment">// that float -> double promotion is lossless. Given this, we can</span></div>
|
|
<div class="line"><a id="l12376" name="l12376"></a><span class="lineno">12376</span> <span class="comment">// assume that if we do the standard relative comparison of</span></div>
|
|
<div class="line"><a id="l12377" name="l12377"></a><span class="lineno">12377</span> <span class="comment">// |lhs - rhs| <= epsilon * max(fabs(lhs), fabs(rhs)), then we get</span></div>
|
|
<div class="line"><a id="l12378" name="l12378"></a><span class="lineno">12378</span> <span class="comment">// the same result if we do this for floats, as if we do this for</span></div>
|
|
<div class="line"><a id="l12379" name="l12379"></a><span class="lineno">12379</span> <span class="comment">// doubles that were promoted from floats.</span></div>
|
|
<div class="line"><a id="l12380" name="l12380"></a><span class="lineno">12380</span> <span class="keyword">class </span>WithinRelMatcher final : <span class="keyword">public</span> MatcherBase<double> {</div>
|
|
<div class="line"><a id="l12381" name="l12381"></a><span class="lineno">12381</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12382" name="l12382"></a><span class="lineno">12382</span> WithinRelMatcher( <span class="keywordtype">double</span> target, <span class="keywordtype">double</span> epsilon );</div>
|
|
<div class="line"><a id="l12383" name="l12383"></a><span class="lineno">12383</span> <span class="keywordtype">bool</span> match(<span class="keywordtype">double</span> <span class="keyword">const</span>& matchee) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12384" name="l12384"></a><span class="lineno">12384</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12385" name="l12385"></a><span class="lineno">12385</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l12386" name="l12386"></a><span class="lineno">12386</span> <span class="keywordtype">double</span> m_target;</div>
|
|
<div class="line"><a id="l12387" name="l12387"></a><span class="lineno">12387</span> <span class="keywordtype">double</span> m_epsilon;</div>
|
|
<div class="line"><a id="l12388" name="l12388"></a><span class="lineno">12388</span> };</div>
|
|
<div class="line"><a id="l12389" name="l12389"></a><span class="lineno">12389</span></div>
|
|
<div class="line"><a id="l12391" name="l12391"></a><span class="lineno">12391</span> WithinRelMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a78dba3ba1112c48a6376a38b48ea70e2">WithinRel</a>(<span class="keywordtype">double</span> target, <span class="keywordtype">double</span> eps);</div>
|
|
<div class="line"><a id="l12393" name="l12393"></a><span class="lineno">12393</span> WithinRelMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a78dba3ba1112c48a6376a38b48ea70e2">WithinRel</a>(<span class="keywordtype">double</span> target);</div>
|
|
<div class="line"><a id="l12395" name="l12395"></a><span class="lineno">12395</span> WithinRelMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a78dba3ba1112c48a6376a38b48ea70e2">WithinRel</a>(<span class="keywordtype">float</span> target, <span class="keywordtype">float</span> eps);</div>
|
|
<div class="line"><a id="l12397" name="l12397"></a><span class="lineno">12397</span> WithinRelMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a78dba3ba1112c48a6376a38b48ea70e2">WithinRel</a>(<span class="keywordtype">float</span> target);</div>
|
|
<div class="line"><a id="l12398" name="l12398"></a><span class="lineno">12398</span> </div>
|
|
<div class="line"><a id="l12399" name="l12399"></a><span class="lineno">12399</span> </div>
|
|
<div class="line"><a id="l12400" name="l12400"></a><span class="lineno">12400</span> </div>
|
|
<div class="line"><a id="l12401" name="l12401"></a><span class="lineno">12401</span> <span class="keyword">class </span>IsNaNMatcher final : <span class="keyword">public</span> MatcherBase<double> {</div>
|
|
<div class="line"><a id="l12402" name="l12402"></a><span class="lineno">12402</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12403" name="l12403"></a><span class="lineno">12403</span> IsNaNMatcher() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l12404" name="l12404"></a><span class="lineno">12404</span> <span class="keywordtype">bool</span> match( <span class="keywordtype">double</span> <span class="keyword">const</span>& matchee ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12405" name="l12405"></a><span class="lineno">12405</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12406" name="l12406"></a><span class="lineno">12406</span> };</div>
|
|
<div class="line"><a id="l12407" name="l12407"></a><span class="lineno">12407</span> </div>
|
|
<div class="line"><a id="l12408" name="l12408"></a><span class="lineno">12408</span> IsNaNMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a0d170fa146d9a4ec0d908acce010128e">IsNaN</a>();</div>
|
|
<div class="line"><a id="l12409" name="l12409"></a><span class="lineno">12409</span> </div>
|
|
<div class="line"><a id="l12410" name="l12410"></a><span class="lineno">12410</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12411" name="l12411"></a><span class="lineno">12411</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12412" name="l12412"></a><span class="lineno">12412</span> </div>
|
|
<div class="line"><a id="l12413" name="l12413"></a><span class="lineno">12413</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_FLOATING_POINT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12414" name="l12414"></a><span class="lineno">12414</span> </div>
|
|
<div class="line"><a id="l12415" name="l12415"></a><span class="lineno">12415</span> </div>
|
|
<div class="line"><a id="l12416" name="l12416"></a><span class="lineno">12416</span><span class="preprocessor">#ifndef CATCH_MATCHERS_PREDICATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12417" name="l12417"></a><span class="lineno">12417</span><span class="preprocessor">#define CATCH_MATCHERS_PREDICATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12418" name="l12418"></a><span class="lineno">12418</span> </div>
|
|
<div class="line"><a id="l12419" name="l12419"></a><span class="lineno">12419</span> </div>
|
|
<div class="line"><a id="l12420" name="l12420"></a><span class="lineno">12420</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l12421" name="l12421"></a><span class="lineno">12421</span> </div>
|
|
<div class="line"><a id="l12422" name="l12422"></a><span class="lineno">12422</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12423" name="l12423"></a><span class="lineno">12423</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12424" name="l12424"></a><span class="lineno">12424</span> </div>
|
|
<div class="line"><a id="l12425" name="l12425"></a><span class="lineno">12425</span><span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l12426" name="l12426"></a><span class="lineno">12426</span> std::string finalizeDescription(<span class="keyword">const</span> std::string& desc);</div>
|
|
<div class="line"><a id="l12427" name="l12427"></a><span class="lineno">12427</span>} <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l12428" name="l12428"></a><span class="lineno">12428</span> </div>
|
|
<div class="line"><a id="l12429" name="l12429"></a><span class="lineno">12429</span><span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Predicate></div>
|
|
<div class="line"><a id="l12430" name="l12430"></a><span class="lineno">12430</span><span class="keyword">class </span>PredicateMatcher final : <span class="keyword">public</span> MatcherBase<T> {</div>
|
|
<div class="line"><a id="l12431" name="l12431"></a><span class="lineno">12431</span> Predicate m_predicate;</div>
|
|
<div class="line"><a id="l12432" name="l12432"></a><span class="lineno">12432</span> std::string m_description;</div>
|
|
<div class="line"><a id="l12433" name="l12433"></a><span class="lineno">12433</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12434" name="l12434"></a><span class="lineno">12434</span> </div>
|
|
<div class="line"><a id="l12435" name="l12435"></a><span class="lineno">12435</span> PredicateMatcher(Predicate&& elem, std::string <span class="keyword">const</span>& descr)</div>
|
|
<div class="line"><a id="l12436" name="l12436"></a><span class="lineno">12436</span> :m_predicate(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(elem)),</div>
|
|
<div class="line"><a id="l12437" name="l12437"></a><span class="lineno">12437</span> m_description(Detail::finalizeDescription(descr))</div>
|
|
<div class="line"><a id="l12438" name="l12438"></a><span class="lineno">12438</span> {}</div>
|
|
<div class="line"><a id="l12439" name="l12439"></a><span class="lineno">12439</span> </div>
|
|
<div class="line"><a id="l12440" name="l12440"></a><span class="lineno">12440</span> <span class="keywordtype">bool</span> match( T <span class="keyword">const</span>& item )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12441" name="l12441"></a><span class="lineno">12441</span> <span class="keywordflow">return</span> m_predicate(item);</div>
|
|
<div class="line"><a id="l12442" name="l12442"></a><span class="lineno">12442</span> }</div>
|
|
<div class="line"><a id="l12443" name="l12443"></a><span class="lineno">12443</span> </div>
|
|
<div class="line"><a id="l12444" name="l12444"></a><span class="lineno">12444</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12445" name="l12445"></a><span class="lineno">12445</span> <span class="keywordflow">return</span> m_description;</div>
|
|
<div class="line"><a id="l12446" name="l12446"></a><span class="lineno">12446</span> }</div>
|
|
<div class="line"><a id="l12447" name="l12447"></a><span class="lineno">12447</span>};</div>
|
|
<div class="line"><a id="l12448" name="l12448"></a><span class="lineno">12448</span></div>
|
|
<div class="line"><a id="l12454" name="l12454"></a><span class="lineno">12454</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> Pred></div>
|
|
<div class="line"><a id="l12455" name="l12455"></a><span class="lineno">12455</span> PredicateMatcher<T, Pred> Predicate(Pred&& predicate, std::string <span class="keyword">const</span>& description = <span class="stringliteral">""</span>) {</div>
|
|
<div class="line"><a id="l12456" name="l12456"></a><span class="lineno">12456</span> <span class="keyword">static_assert</span>(is_callable<Pred(T)>::value, <span class="stringliteral">"Predicate not callable with argument T"</span>);</div>
|
|
<div class="line"><a id="l12457" name="l12457"></a><span class="lineno">12457</span> <span class="keyword">static_assert</span>(std::is_same<bool, FunctionReturnType<Pred, T>>::value, <span class="stringliteral">"Predicate does not return bool"</span>);</div>
|
|
<div class="line"><a id="l12458" name="l12458"></a><span class="lineno">12458</span> <span class="keywordflow">return</span> PredicateMatcher<T, Pred>(<a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(predicate), description);</div>
|
|
<div class="line"><a id="l12459" name="l12459"></a><span class="lineno">12459</span> }</div>
|
|
<div class="line"><a id="l12460" name="l12460"></a><span class="lineno">12460</span> </div>
|
|
<div class="line"><a id="l12461" name="l12461"></a><span class="lineno">12461</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12462" name="l12462"></a><span class="lineno">12462</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12463" name="l12463"></a><span class="lineno">12463</span> </div>
|
|
<div class="line"><a id="l12464" name="l12464"></a><span class="lineno">12464</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_PREDICATE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12465" name="l12465"></a><span class="lineno">12465</span> </div>
|
|
<div class="line"><a id="l12466" name="l12466"></a><span class="lineno">12466</span> </div>
|
|
<div class="line"><a id="l12467" name="l12467"></a><span class="lineno">12467</span><span class="preprocessor">#ifndef CATCH_MATCHERS_QUANTIFIERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12468" name="l12468"></a><span class="lineno">12468</span><span class="preprocessor">#define CATCH_MATCHERS_QUANTIFIERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12469" name="l12469"></a><span class="lineno">12469</span> </div>
|
|
<div class="line"><a id="l12470" name="l12470"></a><span class="lineno">12470</span> </div>
|
|
<div class="line"><a id="l12471" name="l12471"></a><span class="lineno">12471</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12472" name="l12472"></a><span class="lineno">12472</span> <span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12473" name="l12473"></a><span class="lineno">12473</span> <span class="comment">// Matcher for checking that all elements in range matches a given matcher.</span></div>
|
|
<div class="line"><a id="l12474" name="l12474"></a><span class="lineno">12474</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12475" name="l12475"></a><span class="lineno">12475</span> <span class="keyword">class </span>AllMatchMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12476" name="l12476"></a><span class="lineno">12476</span> Matcher m_matcher;</div>
|
|
<div class="line"><a id="l12477" name="l12477"></a><span class="lineno">12477</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12478" name="l12478"></a><span class="lineno">12478</span> AllMatchMatcher(Matcher matcher):</div>
|
|
<div class="line"><a id="l12479" name="l12479"></a><span class="lineno">12479</span> m_matcher(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(matcher))</div>
|
|
<div class="line"><a id="l12480" name="l12480"></a><span class="lineno">12480</span> {}</div>
|
|
<div class="line"><a id="l12481" name="l12481"></a><span class="lineno">12481</span> </div>
|
|
<div class="line"><a id="l12482" name="l12482"></a><span class="lineno">12482</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12483" name="l12483"></a><span class="lineno">12483</span> <span class="keywordflow">return</span> <span class="stringliteral">"all match "</span> + m_matcher.describe();</div>
|
|
<div class="line"><a id="l12484" name="l12484"></a><span class="lineno">12484</span> }</div>
|
|
<div class="line"><a id="l12485" name="l12485"></a><span class="lineno">12485</span> </div>
|
|
<div class="line"><a id="l12486" name="l12486"></a><span class="lineno">12486</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12487" name="l12487"></a><span class="lineno">12487</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12488" name="l12488"></a><span class="lineno">12488</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12489" name="l12489"></a><span class="lineno">12489</span> <span class="keywordflow">if</span> (!m_matcher.match(elem)) {</div>
|
|
<div class="line"><a id="l12490" name="l12490"></a><span class="lineno">12490</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12491" name="l12491"></a><span class="lineno">12491</span> }</div>
|
|
<div class="line"><a id="l12492" name="l12492"></a><span class="lineno">12492</span> }</div>
|
|
<div class="line"><a id="l12493" name="l12493"></a><span class="lineno">12493</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12494" name="l12494"></a><span class="lineno">12494</span> }</div>
|
|
<div class="line"><a id="l12495" name="l12495"></a><span class="lineno">12495</span> };</div>
|
|
<div class="line"><a id="l12496" name="l12496"></a><span class="lineno">12496</span> </div>
|
|
<div class="line"><a id="l12497" name="l12497"></a><span class="lineno">12497</span> <span class="comment">// Matcher for checking that no element in range matches a given matcher.</span></div>
|
|
<div class="line"><a id="l12498" name="l12498"></a><span class="lineno">12498</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12499" name="l12499"></a><span class="lineno">12499</span> <span class="keyword">class </span>NoneMatchMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12500" name="l12500"></a><span class="lineno">12500</span> Matcher m_matcher;</div>
|
|
<div class="line"><a id="l12501" name="l12501"></a><span class="lineno">12501</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12502" name="l12502"></a><span class="lineno">12502</span> NoneMatchMatcher(Matcher matcher):</div>
|
|
<div class="line"><a id="l12503" name="l12503"></a><span class="lineno">12503</span> m_matcher(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(matcher))</div>
|
|
<div class="line"><a id="l12504" name="l12504"></a><span class="lineno">12504</span> {}</div>
|
|
<div class="line"><a id="l12505" name="l12505"></a><span class="lineno">12505</span> </div>
|
|
<div class="line"><a id="l12506" name="l12506"></a><span class="lineno">12506</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12507" name="l12507"></a><span class="lineno">12507</span> <span class="keywordflow">return</span> <span class="stringliteral">"none match "</span> + m_matcher.describe();</div>
|
|
<div class="line"><a id="l12508" name="l12508"></a><span class="lineno">12508</span> }</div>
|
|
<div class="line"><a id="l12509" name="l12509"></a><span class="lineno">12509</span> </div>
|
|
<div class="line"><a id="l12510" name="l12510"></a><span class="lineno">12510</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12511" name="l12511"></a><span class="lineno">12511</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12512" name="l12512"></a><span class="lineno">12512</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12513" name="l12513"></a><span class="lineno">12513</span> <span class="keywordflow">if</span> (m_matcher.match(elem)) {</div>
|
|
<div class="line"><a id="l12514" name="l12514"></a><span class="lineno">12514</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12515" name="l12515"></a><span class="lineno">12515</span> }</div>
|
|
<div class="line"><a id="l12516" name="l12516"></a><span class="lineno">12516</span> }</div>
|
|
<div class="line"><a id="l12517" name="l12517"></a><span class="lineno">12517</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12518" name="l12518"></a><span class="lineno">12518</span> }</div>
|
|
<div class="line"><a id="l12519" name="l12519"></a><span class="lineno">12519</span> };</div>
|
|
<div class="line"><a id="l12520" name="l12520"></a><span class="lineno">12520</span> </div>
|
|
<div class="line"><a id="l12521" name="l12521"></a><span class="lineno">12521</span> <span class="comment">// Matcher for checking that at least one element in range matches a given matcher.</span></div>
|
|
<div class="line"><a id="l12522" name="l12522"></a><span class="lineno">12522</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12523" name="l12523"></a><span class="lineno">12523</span> <span class="keyword">class </span>AnyMatchMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12524" name="l12524"></a><span class="lineno">12524</span> Matcher m_matcher;</div>
|
|
<div class="line"><a id="l12525" name="l12525"></a><span class="lineno">12525</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12526" name="l12526"></a><span class="lineno">12526</span> AnyMatchMatcher(Matcher matcher):</div>
|
|
<div class="line"><a id="l12527" name="l12527"></a><span class="lineno">12527</span> m_matcher(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(matcher))</div>
|
|
<div class="line"><a id="l12528" name="l12528"></a><span class="lineno">12528</span> {}</div>
|
|
<div class="line"><a id="l12529" name="l12529"></a><span class="lineno">12529</span> </div>
|
|
<div class="line"><a id="l12530" name="l12530"></a><span class="lineno">12530</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12531" name="l12531"></a><span class="lineno">12531</span> <span class="keywordflow">return</span> <span class="stringliteral">"any match "</span> + m_matcher.describe();</div>
|
|
<div class="line"><a id="l12532" name="l12532"></a><span class="lineno">12532</span> }</div>
|
|
<div class="line"><a id="l12533" name="l12533"></a><span class="lineno">12533</span> </div>
|
|
<div class="line"><a id="l12534" name="l12534"></a><span class="lineno">12534</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12535" name="l12535"></a><span class="lineno">12535</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12536" name="l12536"></a><span class="lineno">12536</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12537" name="l12537"></a><span class="lineno">12537</span> <span class="keywordflow">if</span> (m_matcher.match(elem)) {</div>
|
|
<div class="line"><a id="l12538" name="l12538"></a><span class="lineno">12538</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12539" name="l12539"></a><span class="lineno">12539</span> }</div>
|
|
<div class="line"><a id="l12540" name="l12540"></a><span class="lineno">12540</span> }</div>
|
|
<div class="line"><a id="l12541" name="l12541"></a><span class="lineno">12541</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12542" name="l12542"></a><span class="lineno">12542</span> }</div>
|
|
<div class="line"><a id="l12543" name="l12543"></a><span class="lineno">12543</span> };</div>
|
|
<div class="line"><a id="l12544" name="l12544"></a><span class="lineno">12544</span> </div>
|
|
<div class="line"><a id="l12545" name="l12545"></a><span class="lineno">12545</span> <span class="comment">// Matcher for checking that all elements in range are true.</span></div>
|
|
<div class="line"><a id="l12546" name="l12546"></a><span class="lineno">12546</span> <span class="keyword">class </span>AllTrueMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12547" name="l12547"></a><span class="lineno">12547</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12548" name="l12548"></a><span class="lineno">12548</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12549" name="l12549"></a><span class="lineno">12549</span> </div>
|
|
<div class="line"><a id="l12550" name="l12550"></a><span class="lineno">12550</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12551" name="l12551"></a><span class="lineno">12551</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12552" name="l12552"></a><span class="lineno">12552</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12553" name="l12553"></a><span class="lineno">12553</span> <span class="keywordflow">if</span> (!elem) {</div>
|
|
<div class="line"><a id="l12554" name="l12554"></a><span class="lineno">12554</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12555" name="l12555"></a><span class="lineno">12555</span> }</div>
|
|
<div class="line"><a id="l12556" name="l12556"></a><span class="lineno">12556</span> }</div>
|
|
<div class="line"><a id="l12557" name="l12557"></a><span class="lineno">12557</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12558" name="l12558"></a><span class="lineno">12558</span> }</div>
|
|
<div class="line"><a id="l12559" name="l12559"></a><span class="lineno">12559</span> };</div>
|
|
<div class="line"><a id="l12560" name="l12560"></a><span class="lineno">12560</span> </div>
|
|
<div class="line"><a id="l12561" name="l12561"></a><span class="lineno">12561</span> <span class="comment">// Matcher for checking that no element in range is true.</span></div>
|
|
<div class="line"><a id="l12562" name="l12562"></a><span class="lineno">12562</span> <span class="keyword">class </span>NoneTrueMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12563" name="l12563"></a><span class="lineno">12563</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12564" name="l12564"></a><span class="lineno">12564</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12565" name="l12565"></a><span class="lineno">12565</span> </div>
|
|
<div class="line"><a id="l12566" name="l12566"></a><span class="lineno">12566</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12567" name="l12567"></a><span class="lineno">12567</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12568" name="l12568"></a><span class="lineno">12568</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12569" name="l12569"></a><span class="lineno">12569</span> <span class="keywordflow">if</span> (elem) {</div>
|
|
<div class="line"><a id="l12570" name="l12570"></a><span class="lineno">12570</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12571" name="l12571"></a><span class="lineno">12571</span> }</div>
|
|
<div class="line"><a id="l12572" name="l12572"></a><span class="lineno">12572</span> }</div>
|
|
<div class="line"><a id="l12573" name="l12573"></a><span class="lineno">12573</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12574" name="l12574"></a><span class="lineno">12574</span> }</div>
|
|
<div class="line"><a id="l12575" name="l12575"></a><span class="lineno">12575</span> };</div>
|
|
<div class="line"><a id="l12576" name="l12576"></a><span class="lineno">12576</span> </div>
|
|
<div class="line"><a id="l12577" name="l12577"></a><span class="lineno">12577</span> <span class="comment">// Matcher for checking that any element in range is true.</span></div>
|
|
<div class="line"><a id="l12578" name="l12578"></a><span class="lineno">12578</span> <span class="keyword">class </span>AnyTrueMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12579" name="l12579"></a><span class="lineno">12579</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12580" name="l12580"></a><span class="lineno">12580</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12581" name="l12581"></a><span class="lineno">12581</span> </div>
|
|
<div class="line"><a id="l12582" name="l12582"></a><span class="lineno">12582</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12583" name="l12583"></a><span class="lineno">12583</span> <span class="keywordtype">bool</span> match(RangeLike&& rng)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12584" name="l12584"></a><span class="lineno">12584</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&& elem : rng) {</div>
|
|
<div class="line"><a id="l12585" name="l12585"></a><span class="lineno">12585</span> <span class="keywordflow">if</span> (elem) {</div>
|
|
<div class="line"><a id="l12586" name="l12586"></a><span class="lineno">12586</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12587" name="l12587"></a><span class="lineno">12587</span> }</div>
|
|
<div class="line"><a id="l12588" name="l12588"></a><span class="lineno">12588</span> }</div>
|
|
<div class="line"><a id="l12589" name="l12589"></a><span class="lineno">12589</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12590" name="l12590"></a><span class="lineno">12590</span> }</div>
|
|
<div class="line"><a id="l12591" name="l12591"></a><span class="lineno">12591</span> };</div>
|
|
<div class="line"><a id="l12592" name="l12592"></a><span class="lineno">12592</span> </div>
|
|
<div class="line"><a id="l12593" name="l12593"></a><span class="lineno">12593</span> <span class="comment">// Creates a matcher that checks whether all elements in a range match a matcher</span></div>
|
|
<div class="line"><a id="l12594" name="l12594"></a><span class="lineno">12594</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12595" name="l12595"></a><span class="lineno">12595</span> AllMatchMatcher<Matcher> AllMatch(Matcher&& matcher) {</div>
|
|
<div class="line"><a id="l12596" name="l12596"></a><span class="lineno">12596</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(matcher) };</div>
|
|
<div class="line"><a id="l12597" name="l12597"></a><span class="lineno">12597</span> }</div>
|
|
<div class="line"><a id="l12598" name="l12598"></a><span class="lineno">12598</span> </div>
|
|
<div class="line"><a id="l12599" name="l12599"></a><span class="lineno">12599</span> <span class="comment">// Creates a matcher that checks whether no element in a range matches a matcher.</span></div>
|
|
<div class="line"><a id="l12600" name="l12600"></a><span class="lineno">12600</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12601" name="l12601"></a><span class="lineno">12601</span> NoneMatchMatcher<Matcher> NoneMatch(Matcher&& matcher) {</div>
|
|
<div class="line"><a id="l12602" name="l12602"></a><span class="lineno">12602</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(matcher) };</div>
|
|
<div class="line"><a id="l12603" name="l12603"></a><span class="lineno">12603</span> }</div>
|
|
<div class="line"><a id="l12604" name="l12604"></a><span class="lineno">12604</span> </div>
|
|
<div class="line"><a id="l12605" name="l12605"></a><span class="lineno">12605</span> <span class="comment">// Creates a matcher that checks whether any element in a range matches a matcher.</span></div>
|
|
<div class="line"><a id="l12606" name="l12606"></a><span class="lineno">12606</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Matcher></div>
|
|
<div class="line"><a id="l12607" name="l12607"></a><span class="lineno">12607</span> AnyMatchMatcher<Matcher> AnyMatch(Matcher&& matcher) {</div>
|
|
<div class="line"><a id="l12608" name="l12608"></a><span class="lineno">12608</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>(matcher) };</div>
|
|
<div class="line"><a id="l12609" name="l12609"></a><span class="lineno">12609</span> }</div>
|
|
<div class="line"><a id="l12610" name="l12610"></a><span class="lineno">12610</span> </div>
|
|
<div class="line"><a id="l12611" name="l12611"></a><span class="lineno">12611</span> <span class="comment">// Creates a matcher that checks whether all elements in a range are true</span></div>
|
|
<div class="line"><a id="l12612" name="l12612"></a><span class="lineno">12612</span> AllTrueMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a4f719bca42718f4936668308772732ae">AllTrue</a>();</div>
|
|
<div class="line"><a id="l12613" name="l12613"></a><span class="lineno">12613</span> </div>
|
|
<div class="line"><a id="l12614" name="l12614"></a><span class="lineno">12614</span> <span class="comment">// Creates a matcher that checks whether no element in a range is true</span></div>
|
|
<div class="line"><a id="l12615" name="l12615"></a><span class="lineno">12615</span> NoneTrueMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a072ee44afcb1647b55b6c3437f22af44">NoneTrue</a>();</div>
|
|
<div class="line"><a id="l12616" name="l12616"></a><span class="lineno">12616</span> </div>
|
|
<div class="line"><a id="l12617" name="l12617"></a><span class="lineno">12617</span> <span class="comment">// Creates a matcher that checks whether any element in a range is true</span></div>
|
|
<div class="line"><a id="l12618" name="l12618"></a><span class="lineno">12618</span> AnyTrueMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a99b3d0b547a4335b786e8fcea6a11cad">AnyTrue</a>();</div>
|
|
<div class="line"><a id="l12619" name="l12619"></a><span class="lineno">12619</span> }</div>
|
|
<div class="line"><a id="l12620" name="l12620"></a><span class="lineno">12620</span>}</div>
|
|
<div class="line"><a id="l12621" name="l12621"></a><span class="lineno">12621</span> </div>
|
|
<div class="line"><a id="l12622" name="l12622"></a><span class="lineno">12622</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_QUANTIFIERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12623" name="l12623"></a><span class="lineno">12623</span> </div>
|
|
<div class="line"><a id="l12624" name="l12624"></a><span class="lineno">12624</span> </div>
|
|
<div class="line"><a id="l12625" name="l12625"></a><span class="lineno">12625</span><span class="preprocessor">#ifndef CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12626" name="l12626"></a><span class="lineno">12626</span><span class="preprocessor">#define CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12627" name="l12627"></a><span class="lineno">12627</span> </div>
|
|
<div class="line"><a id="l12628" name="l12628"></a><span class="lineno">12628</span> </div>
|
|
<div class="line"><a id="l12629" name="l12629"></a><span class="lineno">12629</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l12630" name="l12630"></a><span class="lineno">12630</span><span class="preprocessor">#include <utility></span></div>
|
|
<div class="line"><a id="l12631" name="l12631"></a><span class="lineno">12631</span> </div>
|
|
<div class="line"><a id="l12632" name="l12632"></a><span class="lineno">12632</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12633" name="l12633"></a><span class="lineno">12633</span> <span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12634" name="l12634"></a><span class="lineno">12634</span></div>
|
|
<div class="line"><a id="l12639" name="l12639"></a><span class="lineno">12639</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetRangeLike, <span class="keyword">typename</span> Equality></div>
|
|
<div class="line"><a id="l12640" name="l12640"></a><span class="lineno">12640</span> <span class="keyword">class </span>RangeEqualsMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12641" name="l12641"></a><span class="lineno">12641</span> TargetRangeLike m_desired;</div>
|
|
<div class="line"><a id="l12642" name="l12642"></a><span class="lineno">12642</span> Equality m_predicate;</div>
|
|
<div class="line"><a id="l12643" name="l12643"></a><span class="lineno">12643</span> </div>
|
|
<div class="line"><a id="l12644" name="l12644"></a><span class="lineno">12644</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12645" name="l12645"></a><span class="lineno">12645</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetRangeLike2, <span class="keyword">typename</span> Equality2></div>
|
|
<div class="line"><a id="l12646" name="l12646"></a><span class="lineno">12646</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12647" name="l12647"></a><span class="lineno">12647</span> RangeEqualsMatcher( TargetRangeLike2&& range,</div>
|
|
<div class="line"><a id="l12648" name="l12648"></a><span class="lineno">12648</span> Equality2&& predicate ):</div>
|
|
<div class="line"><a id="l12649" name="l12649"></a><span class="lineno">12649</span> m_desired( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( range ) ),</div>
|
|
<div class="line"><a id="l12650" name="l12650"></a><span class="lineno">12650</span> m_predicate( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) ) {}</div>
|
|
<div class="line"><a id="l12651" name="l12651"></a><span class="lineno">12651</span> </div>
|
|
<div class="line"><a id="l12652" name="l12652"></a><span class="lineno">12652</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12653" name="l12653"></a><span class="lineno">12653</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12654" name="l12654"></a><span class="lineno">12654</span> <span class="keywordtype">bool</span> match( RangeLike&& rng )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12655" name="l12655"></a><span class="lineno">12655</span> <span class="keyword">auto</span> rng_start = begin( rng );</div>
|
|
<div class="line"><a id="l12656" name="l12656"></a><span class="lineno">12656</span> <span class="keyword">const</span> <span class="keyword">auto</span> rng_end = end( rng );</div>
|
|
<div class="line"><a id="l12657" name="l12657"></a><span class="lineno">12657</span> <span class="keyword">auto</span> target_start = begin( m_desired );</div>
|
|
<div class="line"><a id="l12658" name="l12658"></a><span class="lineno">12658</span> <span class="keyword">const</span> <span class="keyword">auto</span> target_end = end( m_desired );</div>
|
|
<div class="line"><a id="l12659" name="l12659"></a><span class="lineno">12659</span> </div>
|
|
<div class="line"><a id="l12660" name="l12660"></a><span class="lineno">12660</span> <span class="keywordflow">while</span> (rng_start != rng_end && target_start != target_end) {</div>
|
|
<div class="line"><a id="l12661" name="l12661"></a><span class="lineno">12661</span> <span class="keywordflow">if</span> (!m_predicate(*rng_start, *target_start)) {</div>
|
|
<div class="line"><a id="l12662" name="l12662"></a><span class="lineno">12662</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12663" name="l12663"></a><span class="lineno">12663</span> }</div>
|
|
<div class="line"><a id="l12664" name="l12664"></a><span class="lineno">12664</span> ++rng_start;</div>
|
|
<div class="line"><a id="l12665" name="l12665"></a><span class="lineno">12665</span> ++target_start;</div>
|
|
<div class="line"><a id="l12666" name="l12666"></a><span class="lineno">12666</span> }</div>
|
|
<div class="line"><a id="l12667" name="l12667"></a><span class="lineno">12667</span> <span class="keywordflow">return</span> rng_start == rng_end && target_start == target_end;</div>
|
|
<div class="line"><a id="l12668" name="l12668"></a><span class="lineno">12668</span> }</div>
|
|
<div class="line"><a id="l12669" name="l12669"></a><span class="lineno">12669</span> </div>
|
|
<div class="line"><a id="l12670" name="l12670"></a><span class="lineno">12670</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12671" name="l12671"></a><span class="lineno">12671</span> <span class="keywordflow">return</span> <span class="stringliteral">"elements are "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a>( m_desired );</div>
|
|
<div class="line"><a id="l12672" name="l12672"></a><span class="lineno">12672</span> }</div>
|
|
<div class="line"><a id="l12673" name="l12673"></a><span class="lineno">12673</span> };</div>
|
|
<div class="line"><a id="l12674" name="l12674"></a><span class="lineno">12674</span></div>
|
|
<div class="line"><a id="l12679" name="l12679"></a><span class="lineno">12679</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetRangeLike, <span class="keyword">typename</span> Equality></div>
|
|
<div class="line"><a id="l12680" name="l12680"></a><span class="lineno">12680</span> <span class="keyword">class </span>UnorderedRangeEqualsMatcher final : <span class="keyword">public</span> MatcherGenericBase {</div>
|
|
<div class="line"><a id="l12681" name="l12681"></a><span class="lineno">12681</span> TargetRangeLike m_desired;</div>
|
|
<div class="line"><a id="l12682" name="l12682"></a><span class="lineno">12682</span> Equality m_predicate;</div>
|
|
<div class="line"><a id="l12683" name="l12683"></a><span class="lineno">12683</span> </div>
|
|
<div class="line"><a id="l12684" name="l12684"></a><span class="lineno">12684</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12685" name="l12685"></a><span class="lineno">12685</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TargetRangeLike2, <span class="keyword">typename</span> Equality2></div>
|
|
<div class="line"><a id="l12686" name="l12686"></a><span class="lineno">12686</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12687" name="l12687"></a><span class="lineno">12687</span> UnorderedRangeEqualsMatcher( TargetRangeLike2&& range,</div>
|
|
<div class="line"><a id="l12688" name="l12688"></a><span class="lineno">12688</span> Equality2&& predicate ):</div>
|
|
<div class="line"><a id="l12689" name="l12689"></a><span class="lineno">12689</span> m_desired( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( range ) ),</div>
|
|
<div class="line"><a id="l12690" name="l12690"></a><span class="lineno">12690</span> m_predicate( <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) ) {}</div>
|
|
<div class="line"><a id="l12691" name="l12691"></a><span class="lineno">12691</span> </div>
|
|
<div class="line"><a id="l12692" name="l12692"></a><span class="lineno">12692</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike></div>
|
|
<div class="line"><a id="l12693" name="l12693"></a><span class="lineno">12693</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12694" name="l12694"></a><span class="lineno">12694</span> <span class="keywordtype">bool</span> match( RangeLike&& rng )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l12695" name="l12695"></a><span class="lineno">12695</span> <span class="keyword">using </span>std::begin;</div>
|
|
<div class="line"><a id="l12696" name="l12696"></a><span class="lineno">12696</span> <span class="keyword">using </span>std::end;</div>
|
|
<div class="line"><a id="l12697" name="l12697"></a><span class="lineno">12697</span> <span class="keywordflow">return</span> Catch::Detail::is_permutation( begin( m_desired ),</div>
|
|
<div class="line"><a id="l12698" name="l12698"></a><span class="lineno">12698</span> end( m_desired ),</div>
|
|
<div class="line"><a id="l12699" name="l12699"></a><span class="lineno">12699</span> begin( rng ),</div>
|
|
<div class="line"><a id="l12700" name="l12700"></a><span class="lineno">12700</span> end( rng ),</div>
|
|
<div class="line"><a id="l12701" name="l12701"></a><span class="lineno">12701</span> m_predicate );</div>
|
|
<div class="line"><a id="l12702" name="l12702"></a><span class="lineno">12702</span> }</div>
|
|
<div class="line"><a id="l12703" name="l12703"></a><span class="lineno">12703</span> </div>
|
|
<div class="line"><a id="l12704" name="l12704"></a><span class="lineno">12704</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12705" name="l12705"></a><span class="lineno">12705</span> <span class="keywordflow">return</span> <span class="stringliteral">"unordered elements are "</span> +</div>
|
|
<div class="line"><a id="l12706" name="l12706"></a><span class="lineno">12706</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( m_desired );</div>
|
|
<div class="line"><a id="l12707" name="l12707"></a><span class="lineno">12707</span> }</div>
|
|
<div class="line"><a id="l12708" name="l12708"></a><span class="lineno">12708</span> };</div>
|
|
<div class="line"><a id="l12709" name="l12709"></a><span class="lineno">12709</span></div>
|
|
<div class="line"><a id="l12717" name="l12717"></a><span class="lineno">12717</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike,</div>
|
|
<div class="line"><a id="l12718" name="l12718"></a><span class="lineno">12718</span> <span class="keyword">typename</span> Equality = <span class="keyword">decltype</span>( std::equal_to<>{} )></div>
|
|
<div class="line"><a id="l12719" name="l12719"></a><span class="lineno">12719</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12720" name="l12720"></a><span class="lineno">12720</span> RangeEqualsMatcher<RangeLike, Equality></div>
|
|
<div class="line"><a id="l12721" name="l12721"></a><span class="lineno">12721</span> RangeEquals( RangeLike&& range,</div>
|
|
<div class="line"><a id="l12722" name="l12722"></a><span class="lineno">12722</span> Equality&& predicate = std::equal_to<>{} ) {</div>
|
|
<div class="line"><a id="l12723" name="l12723"></a><span class="lineno">12723</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( range ), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) };</div>
|
|
<div class="line"><a id="l12724" name="l12724"></a><span class="lineno">12724</span> }</div>
|
|
<div class="line"><a id="l12725" name="l12725"></a><span class="lineno">12725</span></div>
|
|
<div class="line"><a id="l12733" name="l12733"></a><span class="lineno">12733</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l12734" name="l12734"></a><span class="lineno">12734</span> <span class="keyword">typename</span> Equality = <span class="keyword">decltype</span>( std::equal_to<>{} )></div>
|
|
<div class="line"><a id="l12735" name="l12735"></a><span class="lineno">12735</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12736" name="l12736"></a><span class="lineno">12736</span> RangeEqualsMatcher<std::initializer_list<T>, Equality></div>
|
|
<div class="line"><a id="l12737" name="l12737"></a><span class="lineno">12737</span> RangeEquals( std::initializer_list<T> range,</div>
|
|
<div class="line"><a id="l12738" name="l12738"></a><span class="lineno">12738</span> Equality&& predicate = std::equal_to<>{} ) {</div>
|
|
<div class="line"><a id="l12739" name="l12739"></a><span class="lineno">12739</span> <span class="keywordflow">return</span> { range, <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) };</div>
|
|
<div class="line"><a id="l12740" name="l12740"></a><span class="lineno">12740</span> }</div>
|
|
<div class="line"><a id="l12741" name="l12741"></a><span class="lineno">12741</span></div>
|
|
<div class="line"><a id="l12749" name="l12749"></a><span class="lineno">12749</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RangeLike,</div>
|
|
<div class="line"><a id="l12750" name="l12750"></a><span class="lineno">12750</span> <span class="keyword">typename</span> Equality = <span class="keyword">decltype</span>( std::equal_to<>{} )></div>
|
|
<div class="line"><a id="l12751" name="l12751"></a><span class="lineno">12751</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12752" name="l12752"></a><span class="lineno">12752</span> UnorderedRangeEqualsMatcher<RangeLike, Equality></div>
|
|
<div class="line"><a id="l12753" name="l12753"></a><span class="lineno">12753</span> UnorderedRangeEquals( RangeLike&& range,</div>
|
|
<div class="line"><a id="l12754" name="l12754"></a><span class="lineno">12754</span> Equality&& predicate = std::equal_to<>{} ) {</div>
|
|
<div class="line"><a id="l12755" name="l12755"></a><span class="lineno">12755</span> <span class="keywordflow">return</span> { <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( range ), <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) };</div>
|
|
<div class="line"><a id="l12756" name="l12756"></a><span class="lineno">12756</span> }</div>
|
|
<div class="line"><a id="l12757" name="l12757"></a><span class="lineno">12757</span></div>
|
|
<div class="line"><a id="l12765" name="l12765"></a><span class="lineno">12765</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T,</div>
|
|
<div class="line"><a id="l12766" name="l12766"></a><span class="lineno">12766</span> <span class="keyword">typename</span> Equality = <span class="keyword">decltype</span>( std::equal_to<>{} )></div>
|
|
<div class="line"><a id="l12767" name="l12767"></a><span class="lineno">12767</span> <span class="keyword">constexpr</span></div>
|
|
<div class="line"><a id="l12768" name="l12768"></a><span class="lineno">12768</span> UnorderedRangeEqualsMatcher<std::initializer_list<T>, Equality></div>
|
|
<div class="line"><a id="l12769" name="l12769"></a><span class="lineno">12769</span> UnorderedRangeEquals( std::initializer_list<T> range,</div>
|
|
<div class="line"><a id="l12770" name="l12770"></a><span class="lineno">12770</span> Equality&& predicate = std::equal_to<>{} ) {</div>
|
|
<div class="line"><a id="l12771" name="l12771"></a><span class="lineno">12771</span> <span class="keywordflow">return</span> { range, <a class="code hl_define" href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a>( predicate ) };</div>
|
|
<div class="line"><a id="l12772" name="l12772"></a><span class="lineno">12772</span> }</div>
|
|
<div class="line"><a id="l12773" name="l12773"></a><span class="lineno">12773</span> } <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12774" name="l12774"></a><span class="lineno">12774</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12775" name="l12775"></a><span class="lineno">12775</span> </div>
|
|
<div class="line"><a id="l12776" name="l12776"></a><span class="lineno">12776</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12777" name="l12777"></a><span class="lineno">12777</span> </div>
|
|
<div class="line"><a id="l12778" name="l12778"></a><span class="lineno">12778</span> </div>
|
|
<div class="line"><a id="l12779" name="l12779"></a><span class="lineno">12779</span><span class="preprocessor">#ifndef CATCH_MATCHERS_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12780" name="l12780"></a><span class="lineno">12780</span><span class="preprocessor">#define CATCH_MATCHERS_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12781" name="l12781"></a><span class="lineno">12781</span> </div>
|
|
<div class="line"><a id="l12782" name="l12782"></a><span class="lineno">12782</span> </div>
|
|
<div class="line"><a id="l12783" name="l12783"></a><span class="lineno">12783</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l12784" name="l12784"></a><span class="lineno">12784</span> </div>
|
|
<div class="line"><a id="l12785" name="l12785"></a><span class="lineno">12785</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12786" name="l12786"></a><span class="lineno">12786</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12787" name="l12787"></a><span class="lineno">12787</span> </div>
|
|
<div class="line"><a id="l12788" name="l12788"></a><span class="lineno">12788</span> <span class="keyword">struct </span>CasedString {</div>
|
|
<div class="line"><a id="l12789" name="l12789"></a><span class="lineno">12789</span> CasedString( std::string <span class="keyword">const</span>& str, CaseSensitive caseSensitivity );</div>
|
|
<div class="line"><a id="l12790" name="l12790"></a><span class="lineno">12790</span> std::string adjustString( std::string <span class="keyword">const</span>& str ) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l12791" name="l12791"></a><span class="lineno">12791</span> StringRef caseSensitivitySuffix() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l12792" name="l12792"></a><span class="lineno">12792</span> </div>
|
|
<div class="line"><a id="l12793" name="l12793"></a><span class="lineno">12793</span> <a class="code hl_enumeration" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">CaseSensitive</a> m_caseSensitivity;</div>
|
|
<div class="line"><a id="l12794" name="l12794"></a><span class="lineno">12794</span> std::string m_str;</div>
|
|
<div class="line"><a id="l12795" name="l12795"></a><span class="lineno">12795</span> };</div>
|
|
<div class="line"><a id="l12796" name="l12796"></a><span class="lineno">12796</span> </div>
|
|
<div class="line"><a id="l12797" name="l12797"></a><span class="lineno">12797</span> <span class="keyword">class </span>StringMatcherBase : <span class="keyword">public</span> MatcherBase<std::string> {</div>
|
|
<div class="line"><a id="l12798" name="l12798"></a><span class="lineno">12798</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l12799" name="l12799"></a><span class="lineno">12799</span> CasedString m_comparator;</div>
|
|
<div class="line"><a id="l12800" name="l12800"></a><span class="lineno">12800</span> StringRef m_operation;</div>
|
|
<div class="line"><a id="l12801" name="l12801"></a><span class="lineno">12801</span> </div>
|
|
<div class="line"><a id="l12802" name="l12802"></a><span class="lineno">12802</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12803" name="l12803"></a><span class="lineno">12803</span> StringMatcherBase( StringRef operation,</div>
|
|
<div class="line"><a id="l12804" name="l12804"></a><span class="lineno">12804</span> CasedString <span class="keyword">const</span>& comparator );</div>
|
|
<div class="line"><a id="l12805" name="l12805"></a><span class="lineno">12805</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12806" name="l12806"></a><span class="lineno">12806</span> };</div>
|
|
<div class="line"><a id="l12807" name="l12807"></a><span class="lineno">12807</span> </div>
|
|
<div class="line"><a id="l12808" name="l12808"></a><span class="lineno">12808</span> <span class="keyword">class </span>StringEqualsMatcher final : <span class="keyword">public</span> StringMatcherBase {</div>
|
|
<div class="line"><a id="l12809" name="l12809"></a><span class="lineno">12809</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12810" name="l12810"></a><span class="lineno">12810</span> StringEqualsMatcher( CasedString <span class="keyword">const</span>& comparator );</div>
|
|
<div class="line"><a id="l12811" name="l12811"></a><span class="lineno">12811</span> <span class="keywordtype">bool</span> match( std::string <span class="keyword">const</span>& source ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12812" name="l12812"></a><span class="lineno">12812</span> };</div>
|
|
<div class="line"><a id="l12813" name="l12813"></a><span class="lineno">12813</span> <span class="keyword">class </span>StringContainsMatcher final : <span class="keyword">public</span> StringMatcherBase {</div>
|
|
<div class="line"><a id="l12814" name="l12814"></a><span class="lineno">12814</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12815" name="l12815"></a><span class="lineno">12815</span> StringContainsMatcher( CasedString <span class="keyword">const</span>& comparator );</div>
|
|
<div class="line"><a id="l12816" name="l12816"></a><span class="lineno">12816</span> <span class="keywordtype">bool</span> match( std::string <span class="keyword">const</span>& source ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12817" name="l12817"></a><span class="lineno">12817</span> };</div>
|
|
<div class="line"><a id="l12818" name="l12818"></a><span class="lineno">12818</span> <span class="keyword">class </span>StartsWithMatcher final : <span class="keyword">public</span> StringMatcherBase {</div>
|
|
<div class="line"><a id="l12819" name="l12819"></a><span class="lineno">12819</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12820" name="l12820"></a><span class="lineno">12820</span> StartsWithMatcher( CasedString <span class="keyword">const</span>& comparator );</div>
|
|
<div class="line"><a id="l12821" name="l12821"></a><span class="lineno">12821</span> <span class="keywordtype">bool</span> match( std::string <span class="keyword">const</span>& source ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12822" name="l12822"></a><span class="lineno">12822</span> };</div>
|
|
<div class="line"><a id="l12823" name="l12823"></a><span class="lineno">12823</span> <span class="keyword">class </span>EndsWithMatcher final : <span class="keyword">public</span> StringMatcherBase {</div>
|
|
<div class="line"><a id="l12824" name="l12824"></a><span class="lineno">12824</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12825" name="l12825"></a><span class="lineno">12825</span> EndsWithMatcher( CasedString <span class="keyword">const</span>& comparator );</div>
|
|
<div class="line"><a id="l12826" name="l12826"></a><span class="lineno">12826</span> <span class="keywordtype">bool</span> match( std::string <span class="keyword">const</span>& source ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12827" name="l12827"></a><span class="lineno">12827</span> };</div>
|
|
<div class="line"><a id="l12828" name="l12828"></a><span class="lineno">12828</span> </div>
|
|
<div class="line"><a id="l12829" name="l12829"></a><span class="lineno">12829</span> <span class="keyword">class </span>RegexMatcher final : <span class="keyword">public</span> MatcherBase<std::string> {</div>
|
|
<div class="line"><a id="l12830" name="l12830"></a><span class="lineno">12830</span> std::string m_regex;</div>
|
|
<div class="line"><a id="l12831" name="l12831"></a><span class="lineno">12831</span> <a class="code hl_enumeration" href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">CaseSensitive</a> m_caseSensitivity;</div>
|
|
<div class="line"><a id="l12832" name="l12832"></a><span class="lineno">12832</span> </div>
|
|
<div class="line"><a id="l12833" name="l12833"></a><span class="lineno">12833</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12834" name="l12834"></a><span class="lineno">12834</span> RegexMatcher( std::string regex, CaseSensitive caseSensitivity );</div>
|
|
<div class="line"><a id="l12835" name="l12835"></a><span class="lineno">12835</span> <span class="keywordtype">bool</span> match( std::string <span class="keyword">const</span>& matchee ) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12836" name="l12836"></a><span class="lineno">12836</span> std::string describe() <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l12837" name="l12837"></a><span class="lineno">12837</span> };</div>
|
|
<div class="line"><a id="l12838" name="l12838"></a><span class="lineno">12838</span></div>
|
|
<div class="line"><a id="l12840" name="l12840"></a><span class="lineno">12840</span> StringEqualsMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#ae584743abef84739c036faf46eef53b7">Equals</a>( std::string <span class="keyword">const</span>& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );</div>
|
|
<div class="line"><a id="l12842" name="l12842"></a><span class="lineno">12842</span> StringContainsMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a348b90347a2dea3747eabd01d03c114c">ContainsSubstring</a>( std::string <span class="keyword">const</span>& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );</div>
|
|
<div class="line"><a id="l12844" name="l12844"></a><span class="lineno">12844</span> EndsWithMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#a12b1480cb0af61579e8776cf538d0069">EndsWith</a>( std::string <span class="keyword">const</span>& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );</div>
|
|
<div class="line"><a id="l12846" name="l12846"></a><span class="lineno">12846</span> StartsWithMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#af3c7edfbfb4cba59f76578304597e548">StartsWith</a>( std::string <span class="keyword">const</span>& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );</div>
|
|
<div class="line"><a id="l12848" name="l12848"></a><span class="lineno">12848</span> RegexMatcher <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#af4de9d3e501b83d17a048cf2107629dc">Matches</a>( std::string <span class="keyword">const</span>& regex, CaseSensitive caseSensitivity = CaseSensitive::Yes );</div>
|
|
<div class="line"><a id="l12849" name="l12849"></a><span class="lineno">12849</span> </div>
|
|
<div class="line"><a id="l12850" name="l12850"></a><span class="lineno">12850</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l12851" name="l12851"></a><span class="lineno">12851</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l12852" name="l12852"></a><span class="lineno">12852</span> </div>
|
|
<div class="line"><a id="l12853" name="l12853"></a><span class="lineno">12853</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_STRING_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12854" name="l12854"></a><span class="lineno">12854</span> </div>
|
|
<div class="line"><a id="l12855" name="l12855"></a><span class="lineno">12855</span> </div>
|
|
<div class="line"><a id="l12856" name="l12856"></a><span class="lineno">12856</span><span class="preprocessor">#ifndef CATCH_MATCHERS_VECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12857" name="l12857"></a><span class="lineno">12857</span><span class="preprocessor">#define CATCH_MATCHERS_VECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l12858" name="l12858"></a><span class="lineno">12858</span> </div>
|
|
<div class="line"><a id="l12859" name="l12859"></a><span class="lineno">12859</span> </div>
|
|
<div class="line"><a id="l12860" name="l12860"></a><span class="lineno">12860</span><span class="preprocessor">#include <algorithm></span></div>
|
|
<div class="line"><a id="l12861" name="l12861"></a><span class="lineno">12861</span> </div>
|
|
<div class="line"><a id="l12862" name="l12862"></a><span class="lineno">12862</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l12863" name="l12863"></a><span class="lineno">12863</span><span class="keyword">namespace </span>Matchers {</div>
|
|
<div class="line"><a id="l12864" name="l12864"></a><span class="lineno">12864</span> </div>
|
|
<div class="line"><a id="l12865" name="l12865"></a><span class="lineno">12865</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> Alloc></div>
|
|
<div class="line"><a id="l12866" name="l12866"></a><span class="lineno">12866</span> <span class="keyword">class </span>VectorContainsElementMatcher final : <span class="keyword">public</span> MatcherBase<std::vector<T, Alloc>> {</div>
|
|
<div class="line"><a id="l12867" name="l12867"></a><span class="lineno">12867</span> T <span class="keyword">const</span>& m_comparator;</div>
|
|
<div class="line"><a id="l12868" name="l12868"></a><span class="lineno">12868</span> </div>
|
|
<div class="line"><a id="l12869" name="l12869"></a><span class="lineno">12869</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12870" name="l12870"></a><span class="lineno">12870</span> VectorContainsElementMatcher(T <span class="keyword">const</span>& comparator):</div>
|
|
<div class="line"><a id="l12871" name="l12871"></a><span class="lineno">12871</span> m_comparator(comparator)</div>
|
|
<div class="line"><a id="l12872" name="l12872"></a><span class="lineno">12872</span> {}</div>
|
|
<div class="line"><a id="l12873" name="l12873"></a><span class="lineno">12873</span> </div>
|
|
<div class="line"><a id="l12874" name="l12874"></a><span class="lineno">12874</span> <span class="keywordtype">bool</span> match(std::vector<T, Alloc> <span class="keyword">const</span>& v)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12875" name="l12875"></a><span class="lineno">12875</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& el : v) {</div>
|
|
<div class="line"><a id="l12876" name="l12876"></a><span class="lineno">12876</span> <span class="keywordflow">if</span> (el == m_comparator) {</div>
|
|
<div class="line"><a id="l12877" name="l12877"></a><span class="lineno">12877</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12878" name="l12878"></a><span class="lineno">12878</span> }</div>
|
|
<div class="line"><a id="l12879" name="l12879"></a><span class="lineno">12879</span> }</div>
|
|
<div class="line"><a id="l12880" name="l12880"></a><span class="lineno">12880</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12881" name="l12881"></a><span class="lineno">12881</span> }</div>
|
|
<div class="line"><a id="l12882" name="l12882"></a><span class="lineno">12882</span> </div>
|
|
<div class="line"><a id="l12883" name="l12883"></a><span class="lineno">12883</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12884" name="l12884"></a><span class="lineno">12884</span> <span class="keywordflow">return</span> <span class="stringliteral">"Contains: "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( m_comparator );</div>
|
|
<div class="line"><a id="l12885" name="l12885"></a><span class="lineno">12885</span> }</div>
|
|
<div class="line"><a id="l12886" name="l12886"></a><span class="lineno">12886</span> };</div>
|
|
<div class="line"><a id="l12887" name="l12887"></a><span class="lineno">12887</span> </div>
|
|
<div class="line"><a id="l12888" name="l12888"></a><span class="lineno">12888</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp, <span class="keyword">typename</span> AllocMatch></div>
|
|
<div class="line"><a id="l12889" name="l12889"></a><span class="lineno">12889</span> <span class="keyword">class </span>ContainsMatcher final : <span class="keyword">public</span> MatcherBase<std::vector<T, AllocMatch>> {</div>
|
|
<div class="line"><a id="l12890" name="l12890"></a><span class="lineno">12890</span> std::vector<T, AllocComp> <span class="keyword">const</span>& m_comparator;</div>
|
|
<div class="line"><a id="l12891" name="l12891"></a><span class="lineno">12891</span> </div>
|
|
<div class="line"><a id="l12892" name="l12892"></a><span class="lineno">12892</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12893" name="l12893"></a><span class="lineno">12893</span> ContainsMatcher(std::vector<T, AllocComp> <span class="keyword">const</span>& comparator):</div>
|
|
<div class="line"><a id="l12894" name="l12894"></a><span class="lineno">12894</span> m_comparator( comparator )</div>
|
|
<div class="line"><a id="l12895" name="l12895"></a><span class="lineno">12895</span> {}</div>
|
|
<div class="line"><a id="l12896" name="l12896"></a><span class="lineno">12896</span> </div>
|
|
<div class="line"><a id="l12897" name="l12897"></a><span class="lineno">12897</span> <span class="keywordtype">bool</span> match(std::vector<T, AllocMatch> <span class="keyword">const</span>& v)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12898" name="l12898"></a><span class="lineno">12898</span> <span class="comment">// !TBD: see note in EqualsMatcher</span></div>
|
|
<div class="line"><a id="l12899" name="l12899"></a><span class="lineno">12899</span> <span class="keywordflow">if</span> (m_comparator.size() > v.size())</div>
|
|
<div class="line"><a id="l12900" name="l12900"></a><span class="lineno">12900</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12901" name="l12901"></a><span class="lineno">12901</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& comparator : m_comparator) {</div>
|
|
<div class="line"><a id="l12902" name="l12902"></a><span class="lineno">12902</span> <span class="keyword">auto</span> present = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12903" name="l12903"></a><span class="lineno">12903</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& el : v) {</div>
|
|
<div class="line"><a id="l12904" name="l12904"></a><span class="lineno">12904</span> <span class="keywordflow">if</span> (el == comparator) {</div>
|
|
<div class="line"><a id="l12905" name="l12905"></a><span class="lineno">12905</span> present = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12906" name="l12906"></a><span class="lineno">12906</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l12907" name="l12907"></a><span class="lineno">12907</span> }</div>
|
|
<div class="line"><a id="l12908" name="l12908"></a><span class="lineno">12908</span> }</div>
|
|
<div class="line"><a id="l12909" name="l12909"></a><span class="lineno">12909</span> <span class="keywordflow">if</span> (!present) {</div>
|
|
<div class="line"><a id="l12910" name="l12910"></a><span class="lineno">12910</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12911" name="l12911"></a><span class="lineno">12911</span> }</div>
|
|
<div class="line"><a id="l12912" name="l12912"></a><span class="lineno">12912</span> }</div>
|
|
<div class="line"><a id="l12913" name="l12913"></a><span class="lineno">12913</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12914" name="l12914"></a><span class="lineno">12914</span> }</div>
|
|
<div class="line"><a id="l12915" name="l12915"></a><span class="lineno">12915</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12916" name="l12916"></a><span class="lineno">12916</span> <span class="keywordflow">return</span> <span class="stringliteral">"Contains: "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( m_comparator );</div>
|
|
<div class="line"><a id="l12917" name="l12917"></a><span class="lineno">12917</span> }</div>
|
|
<div class="line"><a id="l12918" name="l12918"></a><span class="lineno">12918</span> };</div>
|
|
<div class="line"><a id="l12919" name="l12919"></a><span class="lineno">12919</span> </div>
|
|
<div class="line"><a id="l12920" name="l12920"></a><span class="lineno">12920</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp, <span class="keyword">typename</span> AllocMatch></div>
|
|
<div class="line"><a id="l12921" name="l12921"></a><span class="lineno">12921</span> <span class="keyword">class </span>EqualsMatcher final : <span class="keyword">public</span> MatcherBase<std::vector<T, AllocMatch>> {</div>
|
|
<div class="line"><a id="l12922" name="l12922"></a><span class="lineno">12922</span> std::vector<T, AllocComp> <span class="keyword">const</span>& m_comparator;</div>
|
|
<div class="line"><a id="l12923" name="l12923"></a><span class="lineno">12923</span> </div>
|
|
<div class="line"><a id="l12924" name="l12924"></a><span class="lineno">12924</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12925" name="l12925"></a><span class="lineno">12925</span> EqualsMatcher(std::vector<T, AllocComp> <span class="keyword">const</span>& comparator):</div>
|
|
<div class="line"><a id="l12926" name="l12926"></a><span class="lineno">12926</span> m_comparator( comparator )</div>
|
|
<div class="line"><a id="l12927" name="l12927"></a><span class="lineno">12927</span> {}</div>
|
|
<div class="line"><a id="l12928" name="l12928"></a><span class="lineno">12928</span> </div>
|
|
<div class="line"><a id="l12929" name="l12929"></a><span class="lineno">12929</span> <span class="keywordtype">bool</span> match(std::vector<T, AllocMatch> <span class="keyword">const</span>& v)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12930" name="l12930"></a><span class="lineno">12930</span> <span class="comment">// !TBD: This currently works if all elements can be compared using !=</span></div>
|
|
<div class="line"><a id="l12931" name="l12931"></a><span class="lineno">12931</span> <span class="comment">// - a more general approach would be via a compare template that defaults</span></div>
|
|
<div class="line"><a id="l12932" name="l12932"></a><span class="lineno">12932</span> <span class="comment">// to using !=. but could be specialised for, e.g. std::vector<T> etc</span></div>
|
|
<div class="line"><a id="l12933" name="l12933"></a><span class="lineno">12933</span> <span class="comment">// - then just call that directly</span></div>
|
|
<div class="line"><a id="l12934" name="l12934"></a><span class="lineno">12934</span> <span class="keywordflow">if</span> ( m_comparator.size() != v.size() ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l12935" name="l12935"></a><span class="lineno">12935</span> <span class="keywordflow">for</span> ( std::size_t i = 0; i < v.size(); ++i ) {</div>
|
|
<div class="line"><a id="l12936" name="l12936"></a><span class="lineno">12936</span> <span class="keywordflow">if</span> ( !( m_comparator[i] == v[i] ) ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
|
<div class="line"><a id="l12937" name="l12937"></a><span class="lineno">12937</span> }</div>
|
|
<div class="line"><a id="l12938" name="l12938"></a><span class="lineno">12938</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12939" name="l12939"></a><span class="lineno">12939</span> }</div>
|
|
<div class="line"><a id="l12940" name="l12940"></a><span class="lineno">12940</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12941" name="l12941"></a><span class="lineno">12941</span> <span class="keywordflow">return</span> <span class="stringliteral">"Equals: "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( m_comparator );</div>
|
|
<div class="line"><a id="l12942" name="l12942"></a><span class="lineno">12942</span> }</div>
|
|
<div class="line"><a id="l12943" name="l12943"></a><span class="lineno">12943</span> };</div>
|
|
<div class="line"><a id="l12944" name="l12944"></a><span class="lineno">12944</span> </div>
|
|
<div class="line"><a id="l12945" name="l12945"></a><span class="lineno">12945</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp, <span class="keyword">typename</span> AllocMatch></div>
|
|
<div class="line"><a id="l12946" name="l12946"></a><span class="lineno">12946</span> <span class="keyword">class </span>ApproxMatcher final : <span class="keyword">public</span> MatcherBase<std::vector<T, AllocMatch>> {</div>
|
|
<div class="line"><a id="l12947" name="l12947"></a><span class="lineno">12947</span> std::vector<T, AllocComp> <span class="keyword">const</span>& m_comparator;</div>
|
|
<div class="line"><a id="l12948" name="l12948"></a><span class="lineno">12948</span> <span class="keyword">mutable</span> Catch::Approx approx = <a class="code hl_function" href="classCatch_1_1Approx.html#aae48202f7bf38b6e3ebfaac7ef46b7af">Catch::Approx::custom</a>();</div>
|
|
<div class="line"><a id="l12949" name="l12949"></a><span class="lineno">12949</span> </div>
|
|
<div class="line"><a id="l12950" name="l12950"></a><span class="lineno">12950</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12951" name="l12951"></a><span class="lineno">12951</span> ApproxMatcher(std::vector<T, AllocComp> <span class="keyword">const</span>& comparator):</div>
|
|
<div class="line"><a id="l12952" name="l12952"></a><span class="lineno">12952</span> m_comparator( comparator )</div>
|
|
<div class="line"><a id="l12953" name="l12953"></a><span class="lineno">12953</span> {}</div>
|
|
<div class="line"><a id="l12954" name="l12954"></a><span class="lineno">12954</span> </div>
|
|
<div class="line"><a id="l12955" name="l12955"></a><span class="lineno">12955</span> <span class="keywordtype">bool</span> match(std::vector<T, AllocMatch> <span class="keyword">const</span>& v)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12956" name="l12956"></a><span class="lineno">12956</span> <span class="keywordflow">if</span> (m_comparator.size() != v.size())</div>
|
|
<div class="line"><a id="l12957" name="l12957"></a><span class="lineno">12957</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12958" name="l12958"></a><span class="lineno">12958</span> <span class="keywordflow">for</span> (std::size_t i = 0; i < v.size(); ++i)</div>
|
|
<div class="line"><a id="l12959" name="l12959"></a><span class="lineno">12959</span> <span class="keywordflow">if</span> (m_comparator[i] != approx(v[i]))</div>
|
|
<div class="line"><a id="l12960" name="l12960"></a><span class="lineno">12960</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12961" name="l12961"></a><span class="lineno">12961</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l12962" name="l12962"></a><span class="lineno">12962</span> }</div>
|
|
<div class="line"><a id="l12963" name="l12963"></a><span class="lineno">12963</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12964" name="l12964"></a><span class="lineno">12964</span> <span class="keywordflow">return</span> <span class="stringliteral">"is approx: "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>( m_comparator );</div>
|
|
<div class="line"><a id="l12965" name="l12965"></a><span class="lineno">12965</span> }</div>
|
|
<div class="line"><a id="l12966" name="l12966"></a><span class="lineno">12966</span> template <typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="line"><a id="l12967" name="l12967"></a><span class="lineno">12967</span> ApproxMatcher& epsilon( T <span class="keyword">const</span>& newEpsilon ) {</div>
|
|
<div class="line"><a id="l12968" name="l12968"></a><span class="lineno">12968</span> approx.<a class="code hl_function" href="classCatch_1_1Approx.html#ab9b569c030c0399a187f96e7d95e501f">epsilon</a>(<span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newEpsilon));</div>
|
|
<div class="line"><a id="l12969" name="l12969"></a><span class="lineno">12969</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l12970" name="l12970"></a><span class="lineno">12970</span> }</div>
|
|
<div class="line"><a id="l12971" name="l12971"></a><span class="lineno">12971</span> template <typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="line"><a id="l12972" name="l12972"></a><span class="lineno">12972</span> ApproxMatcher& margin( T <span class="keyword">const</span>& newMargin ) {</div>
|
|
<div class="line"><a id="l12973" name="l12973"></a><span class="lineno">12973</span> approx.<a class="code hl_function" href="classCatch_1_1Approx.html#af4d5b0df9462561dacb65f19b9c770c3">margin</a>(<span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newMargin));</div>
|
|
<div class="line"><a id="l12974" name="l12974"></a><span class="lineno">12974</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l12975" name="l12975"></a><span class="lineno">12975</span> }</div>
|
|
<div class="line"><a id="l12976" name="l12976"></a><span class="lineno">12976</span> template <typename = std::enable_if_t<std::is_constructible<double, T>::value>></div>
|
|
<div class="line"><a id="l12977" name="l12977"></a><span class="lineno">12977</span> ApproxMatcher& scale( T <span class="keyword">const</span>& newScale ) {</div>
|
|
<div class="line"><a id="l12978" name="l12978"></a><span class="lineno">12978</span> approx.<a class="code hl_function" href="classCatch_1_1Approx.html#a8b01c1b0697e834c6df637b5163a7dac">scale</a>(<span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(newScale));</div>
|
|
<div class="line"><a id="l12979" name="l12979"></a><span class="lineno">12979</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a id="l12980" name="l12980"></a><span class="lineno">12980</span> }</div>
|
|
<div class="line"><a id="l12981" name="l12981"></a><span class="lineno">12981</span> };</div>
|
|
<div class="line"><a id="l12982" name="l12982"></a><span class="lineno">12982</span> </div>
|
|
<div class="line"><a id="l12983" name="l12983"></a><span class="lineno">12983</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp, <span class="keyword">typename</span> AllocMatch></div>
|
|
<div class="line"><a id="l12984" name="l12984"></a><span class="lineno">12984</span> <span class="keyword">class </span>UnorderedEqualsMatcher final : <span class="keyword">public</span> MatcherBase<std::vector<T, AllocMatch>> {</div>
|
|
<div class="line"><a id="l12985" name="l12985"></a><span class="lineno">12985</span> std::vector<T, AllocComp> <span class="keyword">const</span>& m_target;</div>
|
|
<div class="line"><a id="l12986" name="l12986"></a><span class="lineno">12986</span> </div>
|
|
<div class="line"><a id="l12987" name="l12987"></a><span class="lineno">12987</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l12988" name="l12988"></a><span class="lineno">12988</span> UnorderedEqualsMatcher(std::vector<T, AllocComp> <span class="keyword">const</span>& target):</div>
|
|
<div class="line"><a id="l12989" name="l12989"></a><span class="lineno">12989</span> m_target(target)</div>
|
|
<div class="line"><a id="l12990" name="l12990"></a><span class="lineno">12990</span> {}</div>
|
|
<div class="line"><a id="l12991" name="l12991"></a><span class="lineno">12991</span> <span class="keywordtype">bool</span> match(std::vector<T, AllocMatch> <span class="keyword">const</span>& vec)<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12992" name="l12992"></a><span class="lineno">12992</span> <span class="keywordflow">if</span> (m_target.size() != vec.size()) {</div>
|
|
<div class="line"><a id="l12993" name="l12993"></a><span class="lineno">12993</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l12994" name="l12994"></a><span class="lineno">12994</span> }</div>
|
|
<div class="line"><a id="l12995" name="l12995"></a><span class="lineno">12995</span> <span class="keywordflow">return</span> std::is_permutation(m_target.begin(), m_target.end(), vec.begin());</div>
|
|
<div class="line"><a id="l12996" name="l12996"></a><span class="lineno">12996</span> }</div>
|
|
<div class="line"><a id="l12997" name="l12997"></a><span class="lineno">12997</span> </div>
|
|
<div class="line"><a id="l12998" name="l12998"></a><span class="lineno">12998</span> std::string describe()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l12999" name="l12999"></a><span class="lineno">12999</span> <span class="keywordflow">return</span> <span class="stringliteral">"UnorderedEquals: "</span> + <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">::Catch::Detail::stringify</a>(m_target);</div>
|
|
<div class="line"><a id="l13000" name="l13000"></a><span class="lineno">13000</span> }</div>
|
|
<div class="line"><a id="l13001" name="l13001"></a><span class="lineno">13001</span> };</div>
|
|
<div class="line"><a id="l13002" name="l13002"></a><span class="lineno">13002</span> </div>
|
|
<div class="line"><a id="l13003" name="l13003"></a><span class="lineno">13003</span> </div>
|
|
<div class="line"><a id="l13004" name="l13004"></a><span class="lineno">13004</span> <span class="comment">// The following functions create the actual matcher objects.</span></div>
|
|
<div class="line"><a id="l13005" name="l13005"></a><span class="lineno">13005</span> <span class="comment">// This allows the types to be inferred</span></div>
|
|
<div class="line"><a id="l13006" name="l13006"></a><span class="lineno">13006</span></div>
|
|
<div class="line"><a id="l13008" name="l13008"></a><span class="lineno">13008</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp = std::allocator<T>, <span class="keyword">typename</span> AllocMatch = AllocComp></div>
|
|
<div class="line"><a id="l13009" name="l13009"></a><span class="lineno">13009</span> ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T, AllocComp> <span class="keyword">const</span>& comparator ) {</div>
|
|
<div class="line"><a id="l13010" name="l13010"></a><span class="lineno">13010</span> <span class="keywordflow">return</span> ContainsMatcher<T, AllocComp, AllocMatch>(comparator);</div>
|
|
<div class="line"><a id="l13011" name="l13011"></a><span class="lineno">13011</span> }</div>
|
|
<div class="line"><a id="l13012" name="l13012"></a><span class="lineno">13012</span></div>
|
|
<div class="line"><a id="l13014" name="l13014"></a><span class="lineno">13014</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> Alloc = std::allocator<T>></div>
|
|
<div class="line"><a id="l13015" name="l13015"></a><span class="lineno">13015</span> VectorContainsElementMatcher<T, Alloc> VectorContains( T <span class="keyword">const</span>& comparator ) {</div>
|
|
<div class="line"><a id="l13016" name="l13016"></a><span class="lineno">13016</span> <span class="keywordflow">return</span> VectorContainsElementMatcher<T, Alloc>(comparator);</div>
|
|
<div class="line"><a id="l13017" name="l13017"></a><span class="lineno">13017</span> }</div>
|
|
<div class="line"><a id="l13018" name="l13018"></a><span class="lineno">13018</span></div>
|
|
<div class="line"><a id="l13020" name="l13020"></a><span class="lineno">13020</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp = std::allocator<T>, <span class="keyword">typename</span> AllocMatch = AllocComp></div>
|
|
<div class="line"><a id="l13021" name="l13021"></a><span class="lineno">13021</span> EqualsMatcher<T, AllocComp, AllocMatch> <a class="code hl_function" href="namespaceCatch_1_1Matchers.html#ae584743abef84739c036faf46eef53b7">Equals</a>( std::vector<T, AllocComp> <span class="keyword">const</span>& comparator ) {</div>
|
|
<div class="line"><a id="l13022" name="l13022"></a><span class="lineno">13022</span> <span class="keywordflow">return</span> EqualsMatcher<T, AllocComp, AllocMatch>(comparator);</div>
|
|
<div class="line"><a id="l13023" name="l13023"></a><span class="lineno">13023</span> }</div>
|
|
<div class="line"><a id="l13024" name="l13024"></a><span class="lineno">13024</span></div>
|
|
<div class="line"><a id="l13026" name="l13026"></a><span class="lineno">13026</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp = std::allocator<T>, <span class="keyword">typename</span> AllocMatch = AllocComp></div>
|
|
<div class="line"><a id="l13027" name="l13027"></a><span class="lineno">13027</span> ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp> <span class="keyword">const</span>& comparator ) {</div>
|
|
<div class="line"><a id="l13028" name="l13028"></a><span class="lineno">13028</span> <span class="keywordflow">return</span> ApproxMatcher<T, AllocComp, AllocMatch>(comparator);</div>
|
|
<div class="line"><a id="l13029" name="l13029"></a><span class="lineno">13029</span> }</div>
|
|
<div class="line"><a id="l13030" name="l13030"></a><span class="lineno">13030</span></div>
|
|
<div class="line"><a id="l13032" name="l13032"></a><span class="lineno">13032</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocComp = std::allocator<T>, <span class="keyword">typename</span> AllocMatch = AllocComp></div>
|
|
<div class="line"><a id="l13033" name="l13033"></a><span class="lineno">13033</span> UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T, AllocComp> <span class="keyword">const</span>& target) {</div>
|
|
<div class="line"><a id="l13034" name="l13034"></a><span class="lineno">13034</span> <span class="keywordflow">return</span> UnorderedEqualsMatcher<T, AllocComp, AllocMatch>(target);</div>
|
|
<div class="line"><a id="l13035" name="l13035"></a><span class="lineno">13035</span> }</div>
|
|
<div class="line"><a id="l13036" name="l13036"></a><span class="lineno">13036</span> </div>
|
|
<div class="line"><a id="l13037" name="l13037"></a><span class="lineno">13037</span>} <span class="comment">// namespace Matchers</span></div>
|
|
<div class="line"><a id="l13038" name="l13038"></a><span class="lineno">13038</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l13039" name="l13039"></a><span class="lineno">13039</span> </div>
|
|
<div class="line"><a id="l13040" name="l13040"></a><span class="lineno">13040</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_VECTOR_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13041" name="l13041"></a><span class="lineno">13041</span> </div>
|
|
<div class="line"><a id="l13042" name="l13042"></a><span class="lineno">13042</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_MATCHERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13043" name="l13043"></a><span class="lineno">13043</span> </div>
|
|
<div class="line"><a id="l13044" name="l13044"></a><span class="lineno">13044</span></div>
|
|
<div class="line"><a id="l13057" name="l13057"></a><span class="lineno">13057</span> </div>
|
|
<div class="line"><a id="l13058" name="l13058"></a><span class="lineno">13058</span><span class="preprocessor">#ifndef CATCH_REPORTERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13059" name="l13059"></a><span class="lineno">13059</span><span class="preprocessor">#define CATCH_REPORTERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13060" name="l13060"></a><span class="lineno">13060</span> </div>
|
|
<div class="line"><a id="l13061" name="l13061"></a><span class="lineno">13061</span> </div>
|
|
<div class="line"><a id="l13062" name="l13062"></a><span class="lineno">13062</span> </div>
|
|
<div class="line"><a id="l13063" name="l13063"></a><span class="lineno">13063</span><span class="preprocessor">#ifndef CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13064" name="l13064"></a><span class="lineno">13064</span><span class="preprocessor">#define CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13065" name="l13065"></a><span class="lineno">13065</span> </div>
|
|
<div class="line"><a id="l13066" name="l13066"></a><span class="lineno">13066</span> </div>
|
|
<div class="line"><a id="l13067" name="l13067"></a><span class="lineno">13067</span> </div>
|
|
<div class="line"><a id="l13068" name="l13068"></a><span class="lineno">13068</span><span class="preprocessor">#ifndef CATCH_REPORTER_STREAMING_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13069" name="l13069"></a><span class="lineno">13069</span><span class="preprocessor">#define CATCH_REPORTER_STREAMING_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13070" name="l13070"></a><span class="lineno">13070</span> </div>
|
|
<div class="line"><a id="l13071" name="l13071"></a><span class="lineno">13071</span> </div>
|
|
<div class="line"><a id="l13072" name="l13072"></a><span class="lineno">13072</span> </div>
|
|
<div class="line"><a id="l13073" name="l13073"></a><span class="lineno">13073</span><span class="preprocessor">#ifndef CATCH_REPORTER_COMMON_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13074" name="l13074"></a><span class="lineno">13074</span><span class="preprocessor">#define CATCH_REPORTER_COMMON_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13075" name="l13075"></a><span class="lineno">13075</span> </div>
|
|
<div class="line"><a id="l13076" name="l13076"></a><span class="lineno">13076</span> </div>
|
|
<div class="line"><a id="l13077" name="l13077"></a><span class="lineno">13077</span><span class="preprocessor">#include <map></span></div>
|
|
<div class="line"><a id="l13078" name="l13078"></a><span class="lineno">13078</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l13079" name="l13079"></a><span class="lineno">13079</span> </div>
|
|
<div class="line"><a id="l13080" name="l13080"></a><span class="lineno">13080</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13081" name="l13081"></a><span class="lineno">13081</span> <span class="keyword">class </span>ColourImpl;</div>
|
|
<div class="line"><a id="l13082" name="l13082"></a><span class="lineno">13082</span></div>
|
|
<div class="line"><a id="l13093" name="l13093"></a><span class="lineno">13093</span> <span class="keyword">class </span>ReporterBase : <span class="keyword">public</span> IEventListener {</div>
|
|
<div class="line"><a id="l13094" name="l13094"></a><span class="lineno">13094</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l13096" name="l13096"></a><span class="lineno">13096</span> Detail::unique_ptr<IStream> m_wrapped_stream;</div>
|
|
<div class="line"><a id="l13099" name="l13099"></a><span class="lineno">13099</span> std::ostream& m_stream;</div>
|
|
<div class="line"><a id="l13101" name="l13101"></a><span class="lineno">13101</span> Detail::unique_ptr<ColourImpl> m_colour;</div>
|
|
<div class="line"><a id="l13103" name="l13103"></a><span class="lineno">13103</span> std::map<std::string, std::string> m_customOptions;</div>
|
|
<div class="line"><a id="l13104" name="l13104"></a><span class="lineno">13104</span> </div>
|
|
<div class="line"><a id="l13105" name="l13105"></a><span class="lineno">13105</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13106" name="l13106"></a><span class="lineno">13106</span> ReporterBase( ReporterConfig&& config );</div>
|
|
<div class="line"><a id="l13107" name="l13107"></a><span class="lineno">13107</span> ~ReporterBase() <span class="keyword">override</span>; <span class="comment">// = default;</span></div>
|
|
<div class="line"><a id="l13108" name="l13108"></a><span class="lineno">13108</span></div>
|
|
<div class="line"><a id="l13115" name="l13115"></a><span class="lineno">13115</span> <span class="keywordtype">void</span> listReporters(</div>
|
|
<div class="line"><a id="l13116" name="l13116"></a><span class="lineno">13116</span> std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13123" name="l13123"></a><span class="lineno">13123</span> <span class="keywordtype">void</span> listListeners(</div>
|
|
<div class="line"><a id="l13124" name="l13124"></a><span class="lineno">13124</span> std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13132" name="l13132"></a><span class="lineno">13132</span> <span class="keywordtype">void</span> listTests( std::vector<TestCaseHandle> <span class="keyword">const</span>& tests ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13139" name="l13139"></a><span class="lineno">13139</span> <span class="keywordtype">void</span> listTags( std::vector<TagInfo> <span class="keyword">const</span>& tags ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13140" name="l13140"></a><span class="lineno">13140</span> };</div>
|
|
<div class="line"><a id="l13141" name="l13141"></a><span class="lineno">13141</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l13142" name="l13142"></a><span class="lineno">13142</span> </div>
|
|
<div class="line"><a id="l13143" name="l13143"></a><span class="lineno">13143</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_COMMON_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13144" name="l13144"></a><span class="lineno">13144</span> </div>
|
|
<div class="line"><a id="l13145" name="l13145"></a><span class="lineno">13145</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l13146" name="l13146"></a><span class="lineno">13146</span> </div>
|
|
<div class="line"><a id="l13147" name="l13147"></a><span class="lineno">13147</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13148" name="l13148"></a><span class="lineno">13148</span> </div>
|
|
<div class="line"><a id="l13149" name="l13149"></a><span class="lineno">13149</span> <span class="keyword">class </span>StreamingReporterBase : <span class="keyword">public</span> ReporterBase {</div>
|
|
<div class="line"><a id="l13150" name="l13150"></a><span class="lineno">13150</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13151" name="l13151"></a><span class="lineno">13151</span> <span class="comment">// GCC5 compat: we cannot use inherited constructor, because it</span></div>
|
|
<div class="line"><a id="l13152" name="l13152"></a><span class="lineno">13152</span> <span class="comment">// doesn't implement backport of P0136</span></div>
|
|
<div class="line"><a id="l13153" name="l13153"></a><span class="lineno">13153</span> StreamingReporterBase(ReporterConfig&& _config):</div>
|
|
<div class="line"><a id="l13154" name="l13154"></a><span class="lineno">13154</span> ReporterBase(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(_config))</div>
|
|
<div class="line"><a id="l13155" name="l13155"></a><span class="lineno">13155</span> {}</div>
|
|
<div class="line"><a id="l13156" name="l13156"></a><span class="lineno">13156</span> ~StreamingReporterBase() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13157" name="l13157"></a><span class="lineno">13157</span> </div>
|
|
<div class="line"><a id="l13158" name="l13158"></a><span class="lineno">13158</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13159" name="l13159"></a><span class="lineno">13159</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13160" name="l13160"></a><span class="lineno">13160</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13161" name="l13161"></a><span class="lineno">13161</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13162" name="l13162"></a><span class="lineno">13162</span> </div>
|
|
<div class="line"><a id="l13163" name="l13163"></a><span class="lineno">13163</span> <span class="keywordtype">void</span> fatalErrorEncountered( StringRef <span class="comment">/*error*/</span> )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13164" name="l13164"></a><span class="lineno">13164</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef <span class="comment">/*unmatchedSpec*/</span> )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13165" name="l13165"></a><span class="lineno">13165</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef <span class="comment">/*invalidArgument*/</span> )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13166" name="l13166"></a><span class="lineno">13166</span> </div>
|
|
<div class="line"><a id="l13167" name="l13167"></a><span class="lineno">13167</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& _testRunInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13168" name="l13168"></a><span class="lineno">13168</span> </div>
|
|
<div class="line"><a id="l13169" name="l13169"></a><span class="lineno">13169</span> <span class="keywordtype">void</span> testCaseStarting(TestCaseInfo <span class="keyword">const</span>& _testInfo)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13170" name="l13170"></a><span class="lineno">13170</span> currentTestCaseInfo = &_testInfo;</div>
|
|
<div class="line"><a id="l13171" name="l13171"></a><span class="lineno">13171</span> }</div>
|
|
<div class="line"><a id="l13172" name="l13172"></a><span class="lineno">13172</span> <span class="keywordtype">void</span> testCasePartialStarting( TestCaseInfo <span class="keyword">const</span>&, uint64_t )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13173" name="l13173"></a><span class="lineno">13173</span> <span class="keywordtype">void</span> sectionStarting(SectionInfo <span class="keyword">const</span>& _sectionInfo)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13174" name="l13174"></a><span class="lineno">13174</span> m_sectionStack.push_back(_sectionInfo);</div>
|
|
<div class="line"><a id="l13175" name="l13175"></a><span class="lineno">13175</span> }</div>
|
|
<div class="line"><a id="l13176" name="l13176"></a><span class="lineno">13176</span> </div>
|
|
<div class="line"><a id="l13177" name="l13177"></a><span class="lineno">13177</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13178" name="l13178"></a><span class="lineno">13178</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13179" name="l13179"></a><span class="lineno">13179</span> </div>
|
|
<div class="line"><a id="l13180" name="l13180"></a><span class="lineno">13180</span> <span class="keywordtype">void</span> sectionEnded(SectionStats <span class="keyword">const</span>& <span class="comment">/* _sectionStats */</span>)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13181" name="l13181"></a><span class="lineno">13181</span> m_sectionStack.pop_back();</div>
|
|
<div class="line"><a id="l13182" name="l13182"></a><span class="lineno">13182</span> }</div>
|
|
<div class="line"><a id="l13183" name="l13183"></a><span class="lineno">13183</span> <span class="keywordtype">void</span> testCasePartialEnded( TestCaseStats <span class="keyword">const</span>&, uint64_t )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13184" name="l13184"></a><span class="lineno">13184</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& <span class="comment">/* _testCaseStats */</span>)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13185" name="l13185"></a><span class="lineno">13185</span> currentTestCaseInfo = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l13186" name="l13186"></a><span class="lineno">13186</span> }</div>
|
|
<div class="line"><a id="l13187" name="l13187"></a><span class="lineno">13187</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& <span class="comment">/* _testRunStats */</span> ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13188" name="l13188"></a><span class="lineno">13188</span> </div>
|
|
<div class="line"><a id="l13189" name="l13189"></a><span class="lineno">13189</span> <span class="keywordtype">void</span> skipTest(TestCaseInfo <span class="keyword">const</span>&)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13190" name="l13190"></a><span class="lineno">13190</span> <span class="comment">// Don't do anything with this by default.</span></div>
|
|
<div class="line"><a id="l13191" name="l13191"></a><span class="lineno">13191</span> <span class="comment">// It can optionally be overridden in the derived class.</span></div>
|
|
<div class="line"><a id="l13192" name="l13192"></a><span class="lineno">13192</span> }</div>
|
|
<div class="line"><a id="l13193" name="l13193"></a><span class="lineno">13193</span> </div>
|
|
<div class="line"><a id="l13194" name="l13194"></a><span class="lineno">13194</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l13195" name="l13195"></a><span class="lineno">13195</span> TestRunInfo currentTestRunInfo{ <span class="stringliteral">"test run has not started yet"</span>_sr };</div>
|
|
<div class="line"><a id="l13196" name="l13196"></a><span class="lineno">13196</span> TestCaseInfo <span class="keyword">const</span>* currentTestCaseInfo = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l13197" name="l13197"></a><span class="lineno">13197</span></div>
|
|
<div class="line"><a id="l13199" name="l13199"></a><span class="lineno">13199</span> std::vector<SectionInfo> m_sectionStack;</div>
|
|
<div class="line"><a id="l13200" name="l13200"></a><span class="lineno">13200</span> };</div>
|
|
<div class="line"><a id="l13201" name="l13201"></a><span class="lineno">13201</span> </div>
|
|
<div class="line"><a id="l13202" name="l13202"></a><span class="lineno">13202</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13203" name="l13203"></a><span class="lineno">13203</span> </div>
|
|
<div class="line"><a id="l13204" name="l13204"></a><span class="lineno">13204</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_STREAMING_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13205" name="l13205"></a><span class="lineno">13205</span> </div>
|
|
<div class="line"><a id="l13206" name="l13206"></a><span class="lineno">13206</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l13207" name="l13207"></a><span class="lineno">13207</span> </div>
|
|
<div class="line"><a id="l13208" name="l13208"></a><span class="lineno">13208</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13209" name="l13209"></a><span class="lineno">13209</span> </div>
|
|
<div class="line"><a id="l13210" name="l13210"></a><span class="lineno">13210</span> <span class="keyword">class </span>AutomakeReporter final : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l13211" name="l13211"></a><span class="lineno">13211</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13212" name="l13212"></a><span class="lineno">13212</span> <span class="comment">// GCC5 compat: we cannot use inherited constructor, because it</span></div>
|
|
<div class="line"><a id="l13213" name="l13213"></a><span class="lineno">13213</span> <span class="comment">// doesn't implement backport of P0136</span></div>
|
|
<div class="line"><a id="l13214" name="l13214"></a><span class="lineno">13214</span> AutomakeReporter(ReporterConfig&& _config):</div>
|
|
<div class="line"><a id="l13215" name="l13215"></a><span class="lineno">13215</span> StreamingReporterBase(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(_config))</div>
|
|
<div class="line"><a id="l13216" name="l13216"></a><span class="lineno">13216</span> {}</div>
|
|
<div class="line"><a id="l13217" name="l13217"></a><span class="lineno">13217</span> ~AutomakeReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13218" name="l13218"></a><span class="lineno">13218</span> </div>
|
|
<div class="line"><a id="l13219" name="l13219"></a><span class="lineno">13219</span> <span class="keyword">static</span> std::string getDescription() {</div>
|
|
<div class="line"><a id="l13220" name="l13220"></a><span class="lineno">13220</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l13221" name="l13221"></a><span class="lineno">13221</span> <span class="keywordflow">return</span> <span class="stringliteral">"Reports test results in the format of Automake .trs files"</span>s;</div>
|
|
<div class="line"><a id="l13222" name="l13222"></a><span class="lineno">13222</span> }</div>
|
|
<div class="line"><a id="l13223" name="l13223"></a><span class="lineno">13223</span> </div>
|
|
<div class="line"><a id="l13224" name="l13224"></a><span class="lineno">13224</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& _testCaseStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13225" name="l13225"></a><span class="lineno">13225</span> <span class="keywordtype">void</span> skipTest(TestCaseInfo <span class="keyword">const</span>& testInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13226" name="l13226"></a><span class="lineno">13226</span> };</div>
|
|
<div class="line"><a id="l13227" name="l13227"></a><span class="lineno">13227</span> </div>
|
|
<div class="line"><a id="l13228" name="l13228"></a><span class="lineno">13228</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13229" name="l13229"></a><span class="lineno">13229</span> </div>
|
|
<div class="line"><a id="l13230" name="l13230"></a><span class="lineno">13230</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13231" name="l13231"></a><span class="lineno">13231</span> </div>
|
|
<div class="line"><a id="l13232" name="l13232"></a><span class="lineno">13232</span> </div>
|
|
<div class="line"><a id="l13233" name="l13233"></a><span class="lineno">13233</span><span class="preprocessor">#ifndef CATCH_REPORTER_COMPACT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13234" name="l13234"></a><span class="lineno">13234</span><span class="preprocessor">#define CATCH_REPORTER_COMPACT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13235" name="l13235"></a><span class="lineno">13235</span> </div>
|
|
<div class="line"><a id="l13236" name="l13236"></a><span class="lineno">13236</span> </div>
|
|
<div class="line"><a id="l13237" name="l13237"></a><span class="lineno">13237</span> </div>
|
|
<div class="line"><a id="l13238" name="l13238"></a><span class="lineno">13238</span> </div>
|
|
<div class="line"><a id="l13239" name="l13239"></a><span class="lineno">13239</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13240" name="l13240"></a><span class="lineno">13240</span> </div>
|
|
<div class="line"><a id="l13241" name="l13241"></a><span class="lineno">13241</span> <span class="keyword">class </span>CompactReporter final : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l13242" name="l13242"></a><span class="lineno">13242</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13243" name="l13243"></a><span class="lineno">13243</span> <span class="keyword">using </span>StreamingReporterBase::StreamingReporterBase;</div>
|
|
<div class="line"><a id="l13244" name="l13244"></a><span class="lineno">13244</span> </div>
|
|
<div class="line"><a id="l13245" name="l13245"></a><span class="lineno">13245</span> ~CompactReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13246" name="l13246"></a><span class="lineno">13246</span> </div>
|
|
<div class="line"><a id="l13247" name="l13247"></a><span class="lineno">13247</span> <span class="keyword">static</span> std::string getDescription();</div>
|
|
<div class="line"><a id="l13248" name="l13248"></a><span class="lineno">13248</span> </div>
|
|
<div class="line"><a id="l13249" name="l13249"></a><span class="lineno">13249</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13250" name="l13250"></a><span class="lineno">13250</span> </div>
|
|
<div class="line"><a id="l13251" name="l13251"></a><span class="lineno">13251</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& _testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13252" name="l13252"></a><span class="lineno">13252</span> </div>
|
|
<div class="line"><a id="l13253" name="l13253"></a><span class="lineno">13253</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& _assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13254" name="l13254"></a><span class="lineno">13254</span> </div>
|
|
<div class="line"><a id="l13255" name="l13255"></a><span class="lineno">13255</span> <span class="keywordtype">void</span> sectionEnded(SectionStats <span class="keyword">const</span>& _sectionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13256" name="l13256"></a><span class="lineno">13256</span> </div>
|
|
<div class="line"><a id="l13257" name="l13257"></a><span class="lineno">13257</span> <span class="keywordtype">void</span> testRunEnded(TestRunStats <span class="keyword">const</span>& _testRunStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13258" name="l13258"></a><span class="lineno">13258</span> </div>
|
|
<div class="line"><a id="l13259" name="l13259"></a><span class="lineno">13259</span> };</div>
|
|
<div class="line"><a id="l13260" name="l13260"></a><span class="lineno">13260</span> </div>
|
|
<div class="line"><a id="l13261" name="l13261"></a><span class="lineno">13261</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13262" name="l13262"></a><span class="lineno">13262</span> </div>
|
|
<div class="line"><a id="l13263" name="l13263"></a><span class="lineno">13263</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_COMPACT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13264" name="l13264"></a><span class="lineno">13264</span> </div>
|
|
<div class="line"><a id="l13265" name="l13265"></a><span class="lineno">13265</span> </div>
|
|
<div class="line"><a id="l13266" name="l13266"></a><span class="lineno">13266</span><span class="preprocessor">#ifndef CATCH_REPORTER_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13267" name="l13267"></a><span class="lineno">13267</span><span class="preprocessor">#define CATCH_REPORTER_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13268" name="l13268"></a><span class="lineno">13268</span> </div>
|
|
<div class="line"><a id="l13269" name="l13269"></a><span class="lineno">13269</span> </div>
|
|
<div class="line"><a id="l13270" name="l13270"></a><span class="lineno">13270</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13271" name="l13271"></a><span class="lineno">13271</span> <span class="comment">// Fwd decls</span></div>
|
|
<div class="line"><a id="l13272" name="l13272"></a><span class="lineno">13272</span> <span class="keyword">class </span>TablePrinter;</div>
|
|
<div class="line"><a id="l13273" name="l13273"></a><span class="lineno">13273</span> </div>
|
|
<div class="line"><a id="l13274" name="l13274"></a><span class="lineno">13274</span> <span class="keyword">class </span>ConsoleReporter final : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l13275" name="l13275"></a><span class="lineno">13275</span> Detail::unique_ptr<TablePrinter> m_tablePrinter;</div>
|
|
<div class="line"><a id="l13276" name="l13276"></a><span class="lineno">13276</span> </div>
|
|
<div class="line"><a id="l13277" name="l13277"></a><span class="lineno">13277</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13278" name="l13278"></a><span class="lineno">13278</span> ConsoleReporter(ReporterConfig&& config);</div>
|
|
<div class="line"><a id="l13279" name="l13279"></a><span class="lineno">13279</span> ~ConsoleReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13280" name="l13280"></a><span class="lineno">13280</span> <span class="keyword">static</span> std::string getDescription();</div>
|
|
<div class="line"><a id="l13281" name="l13281"></a><span class="lineno">13281</span> </div>
|
|
<div class="line"><a id="l13282" name="l13282"></a><span class="lineno">13282</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13283" name="l13283"></a><span class="lineno">13283</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef arg ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13284" name="l13284"></a><span class="lineno">13284</span> </div>
|
|
<div class="line"><a id="l13285" name="l13285"></a><span class="lineno">13285</span> <span class="keywordtype">void</span> assertionStarting(AssertionInfo <span class="keyword">const</span>&) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13286" name="l13286"></a><span class="lineno">13286</span> </div>
|
|
<div class="line"><a id="l13287" name="l13287"></a><span class="lineno">13287</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& _assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13288" name="l13288"></a><span class="lineno">13288</span> </div>
|
|
<div class="line"><a id="l13289" name="l13289"></a><span class="lineno">13289</span> <span class="keywordtype">void</span> sectionStarting(SectionInfo <span class="keyword">const</span>& _sectionInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13290" name="l13290"></a><span class="lineno">13290</span> <span class="keywordtype">void</span> sectionEnded(SectionStats <span class="keyword">const</span>& _sectionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13291" name="l13291"></a><span class="lineno">13291</span> </div>
|
|
<div class="line"><a id="l13292" name="l13292"></a><span class="lineno">13292</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13293" name="l13293"></a><span class="lineno">13293</span> <span class="keywordtype">void</span> benchmarkStarting(BenchmarkInfo <span class="keyword">const</span>& info) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13294" name="l13294"></a><span class="lineno">13294</span> <span class="keywordtype">void</span> benchmarkEnded(BenchmarkStats<> <span class="keyword">const</span>& stats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13295" name="l13295"></a><span class="lineno">13295</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13296" name="l13296"></a><span class="lineno">13296</span> </div>
|
|
<div class="line"><a id="l13297" name="l13297"></a><span class="lineno">13297</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& _testCaseStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13298" name="l13298"></a><span class="lineno">13298</span> <span class="keywordtype">void</span> testRunEnded(TestRunStats <span class="keyword">const</span>& _testRunStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13299" name="l13299"></a><span class="lineno">13299</span> <span class="keywordtype">void</span> testRunStarting(TestRunInfo <span class="keyword">const</span>& _testRunInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13300" name="l13300"></a><span class="lineno">13300</span> </div>
|
|
<div class="line"><a id="l13301" name="l13301"></a><span class="lineno">13301</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l13302" name="l13302"></a><span class="lineno">13302</span> <span class="keywordtype">void</span> lazyPrint();</div>
|
|
<div class="line"><a id="l13303" name="l13303"></a><span class="lineno">13303</span> </div>
|
|
<div class="line"><a id="l13304" name="l13304"></a><span class="lineno">13304</span> <span class="keywordtype">void</span> lazyPrintWithoutClosingBenchmarkTable();</div>
|
|
<div class="line"><a id="l13305" name="l13305"></a><span class="lineno">13305</span> <span class="keywordtype">void</span> lazyPrintRunInfo();</div>
|
|
<div class="line"><a id="l13306" name="l13306"></a><span class="lineno">13306</span> <span class="keywordtype">void</span> printTestCaseAndSectionHeader();</div>
|
|
<div class="line"><a id="l13307" name="l13307"></a><span class="lineno">13307</span> </div>
|
|
<div class="line"><a id="l13308" name="l13308"></a><span class="lineno">13308</span> <span class="keywordtype">void</span> printClosedHeader(std::string <span class="keyword">const</span>& _name);</div>
|
|
<div class="line"><a id="l13309" name="l13309"></a><span class="lineno">13309</span> <span class="keywordtype">void</span> printOpenHeader(std::string <span class="keyword">const</span>& _name);</div>
|
|
<div class="line"><a id="l13310" name="l13310"></a><span class="lineno">13310</span> </div>
|
|
<div class="line"><a id="l13311" name="l13311"></a><span class="lineno">13311</span> <span class="comment">// if string has a : in first line will set indent to follow it on</span></div>
|
|
<div class="line"><a id="l13312" name="l13312"></a><span class="lineno">13312</span> <span class="comment">// subsequent lines</span></div>
|
|
<div class="line"><a id="l13313" name="l13313"></a><span class="lineno">13313</span> <span class="keywordtype">void</span> printHeaderString(std::string <span class="keyword">const</span>& _string, std::size_t indent = 0);</div>
|
|
<div class="line"><a id="l13314" name="l13314"></a><span class="lineno">13314</span> </div>
|
|
<div class="line"><a id="l13315" name="l13315"></a><span class="lineno">13315</span> <span class="keywordtype">void</span> printTotalsDivider(Totals <span class="keyword">const</span>& totals);</div>
|
|
<div class="line"><a id="l13316" name="l13316"></a><span class="lineno">13316</span> </div>
|
|
<div class="line"><a id="l13317" name="l13317"></a><span class="lineno">13317</span> <span class="keywordtype">bool</span> m_headerPrinted = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13318" name="l13318"></a><span class="lineno">13318</span> <span class="keywordtype">bool</span> m_testRunInfoPrinted = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13319" name="l13319"></a><span class="lineno">13319</span> };</div>
|
|
<div class="line"><a id="l13320" name="l13320"></a><span class="lineno">13320</span> </div>
|
|
<div class="line"><a id="l13321" name="l13321"></a><span class="lineno">13321</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13322" name="l13322"></a><span class="lineno">13322</span> </div>
|
|
<div class="line"><a id="l13323" name="l13323"></a><span class="lineno">13323</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_CONSOLE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13324" name="l13324"></a><span class="lineno">13324</span> </div>
|
|
<div class="line"><a id="l13325" name="l13325"></a><span class="lineno">13325</span> </div>
|
|
<div class="line"><a id="l13326" name="l13326"></a><span class="lineno">13326</span><span class="preprocessor">#ifndef CATCH_REPORTER_CUMULATIVE_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13327" name="l13327"></a><span class="lineno">13327</span><span class="preprocessor">#define CATCH_REPORTER_CUMULATIVE_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13328" name="l13328"></a><span class="lineno">13328</span> </div>
|
|
<div class="line"><a id="l13329" name="l13329"></a><span class="lineno">13329</span> </div>
|
|
<div class="line"><a id="l13330" name="l13330"></a><span class="lineno">13330</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l13331" name="l13331"></a><span class="lineno">13331</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l13332" name="l13332"></a><span class="lineno">13332</span> </div>
|
|
<div class="line"><a id="l13333" name="l13333"></a><span class="lineno">13333</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13334" name="l13334"></a><span class="lineno">13334</span> </div>
|
|
<div class="line"><a id="l13335" name="l13335"></a><span class="lineno">13335</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l13336" name="l13336"></a><span class="lineno">13336</span></div>
|
|
<div class="line"><a id="l13338" name="l13338"></a><span class="lineno">13338</span> <span class="keyword">class </span>AssertionOrBenchmarkResult {</div>
|
|
<div class="line"><a id="l13339" name="l13339"></a><span class="lineno">13339</span> <span class="comment">// This should really be a variant, but this is much faster</span></div>
|
|
<div class="line"><a id="l13340" name="l13340"></a><span class="lineno">13340</span> <span class="comment">// to write and the data layout here is already terrible</span></div>
|
|
<div class="line"><a id="l13341" name="l13341"></a><span class="lineno">13341</span> <span class="comment">// enough that we do not have to care about the object size.</span></div>
|
|
<div class="line"><a id="l13342" name="l13342"></a><span class="lineno">13342</span> Optional<AssertionStats> m_assertion;</div>
|
|
<div class="line"><a id="l13343" name="l13343"></a><span class="lineno">13343</span> Optional<BenchmarkStats<>> m_benchmark;</div>
|
|
<div class="line"><a id="l13344" name="l13344"></a><span class="lineno">13344</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13345" name="l13345"></a><span class="lineno">13345</span> AssertionOrBenchmarkResult(AssertionStats <span class="keyword">const</span>& assertion);</div>
|
|
<div class="line"><a id="l13346" name="l13346"></a><span class="lineno">13346</span> AssertionOrBenchmarkResult(BenchmarkStats<> <span class="keyword">const</span>& benchmark);</div>
|
|
<div class="line"><a id="l13347" name="l13347"></a><span class="lineno">13347</span> </div>
|
|
<div class="line"><a id="l13348" name="l13348"></a><span class="lineno">13348</span> <span class="keywordtype">bool</span> isAssertion() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l13349" name="l13349"></a><span class="lineno">13349</span> <span class="keywordtype">bool</span> isBenchmark() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l13350" name="l13350"></a><span class="lineno">13350</span> </div>
|
|
<div class="line"><a id="l13351" name="l13351"></a><span class="lineno">13351</span> AssertionStats <span class="keyword">const</span>& asAssertion() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l13352" name="l13352"></a><span class="lineno">13352</span> BenchmarkStats<> <span class="keyword">const</span>& asBenchmark() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l13353" name="l13353"></a><span class="lineno">13353</span> };</div>
|
|
<div class="line"><a id="l13354" name="l13354"></a><span class="lineno">13354</span> }</div>
|
|
<div class="line"><a id="l13355" name="l13355"></a><span class="lineno">13355</span></div>
|
|
<div class="line"><a id="l13376" name="l13376"></a><span class="lineno">13376</span> <span class="keyword">class </span>CumulativeReporterBase : <span class="keyword">public</span> ReporterBase {</div>
|
|
<div class="line"><a id="l13377" name="l13377"></a><span class="lineno">13377</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13378" name="l13378"></a><span class="lineno">13378</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> ChildNodeT></div>
|
|
<div class="line"><a id="l13379" name="l13379"></a><span class="lineno">13379</span> <span class="keyword">struct </span>Node {</div>
|
|
<div class="line"><a id="l13380" name="l13380"></a><span class="lineno">13380</span> <span class="keyword">explicit</span> Node( T <span class="keyword">const</span>& _value ) : <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>( _value ) {}</div>
|
|
<div class="line"><a id="l13381" name="l13381"></a><span class="lineno">13381</span> </div>
|
|
<div class="line"><a id="l13382" name="l13382"></a><span class="lineno">13382</span> <span class="keyword">using </span>ChildNodes = std::vector<Detail::unique_ptr<ChildNodeT>>;</div>
|
|
<div class="line"><a id="l13383" name="l13383"></a><span class="lineno">13383</span> T <a class="code hl_function" href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">value</a>;</div>
|
|
<div class="line"><a id="l13384" name="l13384"></a><span class="lineno">13384</span> ChildNodes children;</div>
|
|
<div class="line"><a id="l13385" name="l13385"></a><span class="lineno">13385</span> };</div>
|
|
<div class="line"><a id="l13386" name="l13386"></a><span class="lineno">13386</span> <span class="keyword">struct </span>SectionNode {</div>
|
|
<div class="line"><a id="l13387" name="l13387"></a><span class="lineno">13387</span> <span class="keyword">explicit</span> SectionNode(SectionStats <span class="keyword">const</span>& _stats) : stats(_stats) {}</div>
|
|
<div class="line"><a id="l13388" name="l13388"></a><span class="lineno">13388</span> </div>
|
|
<div class="line"><a id="l13389" name="l13389"></a><span class="lineno">13389</span> <span class="keywordtype">bool</span> operator == (SectionNode <span class="keyword">const</span>& other)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l13390" name="l13390"></a><span class="lineno">13390</span> <span class="keywordflow">return</span> stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;</div>
|
|
<div class="line"><a id="l13391" name="l13391"></a><span class="lineno">13391</span> }</div>
|
|
<div class="line"><a id="l13392" name="l13392"></a><span class="lineno">13392</span> </div>
|
|
<div class="line"><a id="l13393" name="l13393"></a><span class="lineno">13393</span> <span class="keywordtype">bool</span> hasAnyAssertions() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l13394" name="l13394"></a><span class="lineno">13394</span> </div>
|
|
<div class="line"><a id="l13395" name="l13395"></a><span class="lineno">13395</span> SectionStats stats;</div>
|
|
<div class="line"><a id="l13396" name="l13396"></a><span class="lineno">13396</span> std::vector<Detail::unique_ptr<SectionNode>> childSections;</div>
|
|
<div class="line"><a id="l13397" name="l13397"></a><span class="lineno">13397</span> std::vector<Detail::AssertionOrBenchmarkResult> assertionsAndBenchmarks;</div>
|
|
<div class="line"><a id="l13398" name="l13398"></a><span class="lineno">13398</span> std::string stdOut;</div>
|
|
<div class="line"><a id="l13399" name="l13399"></a><span class="lineno">13399</span> std::string stdErr;</div>
|
|
<div class="line"><a id="l13400" name="l13400"></a><span class="lineno">13400</span> };</div>
|
|
<div class="line"><a id="l13401" name="l13401"></a><span class="lineno">13401</span> </div>
|
|
<div class="line"><a id="l13402" name="l13402"></a><span class="lineno">13402</span> </div>
|
|
<div class="line"><a id="l13403" name="l13403"></a><span class="lineno">13403</span> <span class="keyword">using </span>TestCaseNode = Node<TestCaseStats, SectionNode>;</div>
|
|
<div class="line"><a id="l13404" name="l13404"></a><span class="lineno">13404</span> <span class="keyword">using </span>TestRunNode = Node<TestRunStats, TestCaseNode>;</div>
|
|
<div class="line"><a id="l13405" name="l13405"></a><span class="lineno">13405</span> </div>
|
|
<div class="line"><a id="l13406" name="l13406"></a><span class="lineno">13406</span> <span class="comment">// GCC5 compat: we cannot use inherited constructor, because it</span></div>
|
|
<div class="line"><a id="l13407" name="l13407"></a><span class="lineno">13407</span> <span class="comment">// doesn't implement backport of P0136</span></div>
|
|
<div class="line"><a id="l13408" name="l13408"></a><span class="lineno">13408</span> CumulativeReporterBase(ReporterConfig&& _config):</div>
|
|
<div class="line"><a id="l13409" name="l13409"></a><span class="lineno">13409</span> ReporterBase(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(_config))</div>
|
|
<div class="line"><a id="l13410" name="l13410"></a><span class="lineno">13410</span> {}</div>
|
|
<div class="line"><a id="l13411" name="l13411"></a><span class="lineno">13411</span> ~CumulativeReporterBase() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13412" name="l13412"></a><span class="lineno">13412</span> </div>
|
|
<div class="line"><a id="l13413" name="l13413"></a><span class="lineno">13413</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13414" name="l13414"></a><span class="lineno">13414</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13415" name="l13415"></a><span class="lineno">13415</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& benchmarkStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13416" name="l13416"></a><span class="lineno">13416</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13417" name="l13417"></a><span class="lineno">13417</span> </div>
|
|
<div class="line"><a id="l13418" name="l13418"></a><span class="lineno">13418</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13419" name="l13419"></a><span class="lineno">13419</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13420" name="l13420"></a><span class="lineno">13420</span> <span class="keywordtype">void</span> fatalErrorEncountered( StringRef <span class="comment">/*error*/</span> )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13421" name="l13421"></a><span class="lineno">13421</span> </div>
|
|
<div class="line"><a id="l13422" name="l13422"></a><span class="lineno">13422</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13423" name="l13423"></a><span class="lineno">13423</span> </div>
|
|
<div class="line"><a id="l13424" name="l13424"></a><span class="lineno">13424</span> <span class="keywordtype">void</span> testCaseStarting( TestCaseInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13425" name="l13425"></a><span class="lineno">13425</span> <span class="keywordtype">void</span> testCasePartialStarting( TestCaseInfo <span class="keyword">const</span>&, uint64_t )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13426" name="l13426"></a><span class="lineno">13426</span> <span class="keywordtype">void</span> sectionStarting( SectionInfo <span class="keyword">const</span>& sectionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13427" name="l13427"></a><span class="lineno">13427</span> </div>
|
|
<div class="line"><a id="l13428" name="l13428"></a><span class="lineno">13428</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13429" name="l13429"></a><span class="lineno">13429</span> </div>
|
|
<div class="line"><a id="l13430" name="l13430"></a><span class="lineno">13430</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& assertionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13431" name="l13431"></a><span class="lineno">13431</span> <span class="keywordtype">void</span> sectionEnded( SectionStats <span class="keyword">const</span>& sectionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13432" name="l13432"></a><span class="lineno">13432</span> <span class="keywordtype">void</span> testCasePartialEnded( TestCaseStats <span class="keyword">const</span>&, uint64_t )<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13433" name="l13433"></a><span class="lineno">13433</span> <span class="keywordtype">void</span> testCaseEnded( TestCaseStats <span class="keyword">const</span>& testCaseStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13434" name="l13434"></a><span class="lineno">13434</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& testRunStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13436" name="l13436"></a><span class="lineno">13436</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> testRunEndedCumulative() = 0;</div>
|
|
<div class="line"><a id="l13437" name="l13437"></a><span class="lineno">13437</span> </div>
|
|
<div class="line"><a id="l13438" name="l13438"></a><span class="lineno">13438</span> <span class="keywordtype">void</span> skipTest(TestCaseInfo <span class="keyword">const</span>&)<span class="keyword"> override </span>{}</div>
|
|
<div class="line"><a id="l13439" name="l13439"></a><span class="lineno">13439</span> </div>
|
|
<div class="line"><a id="l13440" name="l13440"></a><span class="lineno">13440</span> <span class="keyword">protected</span>:</div>
|
|
<div class="line"><a id="l13442" name="l13442"></a><span class="lineno">13442</span> <span class="keywordtype">bool</span> m_shouldStoreSuccesfulAssertions = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l13444" name="l13444"></a><span class="lineno">13444</span> <span class="keywordtype">bool</span> m_shouldStoreFailedAssertions = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l13445" name="l13445"></a><span class="lineno">13445</span> </div>
|
|
<div class="line"><a id="l13446" name="l13446"></a><span class="lineno">13446</span> <span class="comment">// We need lazy construction here. We should probably refactor it</span></div>
|
|
<div class="line"><a id="l13447" name="l13447"></a><span class="lineno">13447</span> <span class="comment">// later, after the events are redone.</span></div>
|
|
<div class="line"><a id="l13449" name="l13449"></a><span class="lineno">13449</span> Detail::unique_ptr<TestRunNode> m_testRun;</div>
|
|
<div class="line"><a id="l13450" name="l13450"></a><span class="lineno">13450</span> </div>
|
|
<div class="line"><a id="l13451" name="l13451"></a><span class="lineno">13451</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l13452" name="l13452"></a><span class="lineno">13452</span> <span class="comment">// Note: We rely on pointer identity being stable, which is why</span></div>
|
|
<div class="line"><a id="l13453" name="l13453"></a><span class="lineno">13453</span> <span class="comment">// we store pointers to the nodes rather than the values.</span></div>
|
|
<div class="line"><a id="l13454" name="l13454"></a><span class="lineno">13454</span> std::vector<Detail::unique_ptr<TestCaseNode>> m_testCases;</div>
|
|
<div class="line"><a id="l13455" name="l13455"></a><span class="lineno">13455</span> <span class="comment">// Root section of the _current_ test case</span></div>
|
|
<div class="line"><a id="l13456" name="l13456"></a><span class="lineno">13456</span> Detail::unique_ptr<SectionNode> m_rootSection;</div>
|
|
<div class="line"><a id="l13457" name="l13457"></a><span class="lineno">13457</span> <span class="comment">// Deepest section of the _current_ test case</span></div>
|
|
<div class="line"><a id="l13458" name="l13458"></a><span class="lineno">13458</span> SectionNode* m_deepestSection = <span class="keyword">nullptr</span>;</div>
|
|
<div class="line"><a id="l13459" name="l13459"></a><span class="lineno">13459</span> <span class="comment">// Stack of _active_ sections in the _current_ test case</span></div>
|
|
<div class="line"><a id="l13460" name="l13460"></a><span class="lineno">13460</span> std::vector<SectionNode*> m_sectionStack;</div>
|
|
<div class="line"><a id="l13461" name="l13461"></a><span class="lineno">13461</span> };</div>
|
|
<div class="line"><a id="l13462" name="l13462"></a><span class="lineno">13462</span> </div>
|
|
<div class="line"><a id="l13463" name="l13463"></a><span class="lineno">13463</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13464" name="l13464"></a><span class="lineno">13464</span> </div>
|
|
<div class="line"><a id="l13465" name="l13465"></a><span class="lineno">13465</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_CUMULATIVE_BASE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13466" name="l13466"></a><span class="lineno">13466</span> </div>
|
|
<div class="line"><a id="l13467" name="l13467"></a><span class="lineno">13467</span> </div>
|
|
<div class="line"><a id="l13468" name="l13468"></a><span class="lineno">13468</span><span class="preprocessor">#ifndef CATCH_REPORTER_EVENT_LISTENER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13469" name="l13469"></a><span class="lineno">13469</span><span class="preprocessor">#define CATCH_REPORTER_EVENT_LISTENER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13470" name="l13470"></a><span class="lineno">13470</span> </div>
|
|
<div class="line"><a id="l13471" name="l13471"></a><span class="lineno">13471</span> </div>
|
|
<div class="line"><a id="l13472" name="l13472"></a><span class="lineno">13472</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13473" name="l13473"></a><span class="lineno">13473</span></div>
|
|
<div class="line"><a id="l13481" name="l13481"></a><span class="lineno">13481</span> <span class="keyword">class </span>EventListenerBase : <span class="keyword">public</span> IEventListener {</div>
|
|
<div class="line"><a id="l13482" name="l13482"></a><span class="lineno">13482</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13483" name="l13483"></a><span class="lineno">13483</span> <span class="keyword">using </span>IEventListener::IEventListener;</div>
|
|
<div class="line"><a id="l13484" name="l13484"></a><span class="lineno">13484</span> </div>
|
|
<div class="line"><a id="l13485" name="l13485"></a><span class="lineno">13485</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13486" name="l13486"></a><span class="lineno">13486</span> <span class="keywordtype">void</span> fatalErrorEncountered( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13487" name="l13487"></a><span class="lineno">13487</span> </div>
|
|
<div class="line"><a id="l13488" name="l13488"></a><span class="lineno">13488</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13489" name="l13489"></a><span class="lineno">13489</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& benchmarkInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13490" name="l13490"></a><span class="lineno">13490</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& benchmarkStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13491" name="l13491"></a><span class="lineno">13491</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13492" name="l13492"></a><span class="lineno">13492</span> </div>
|
|
<div class="line"><a id="l13493" name="l13493"></a><span class="lineno">13493</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& assertionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13494" name="l13494"></a><span class="lineno">13494</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& assertionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13495" name="l13495"></a><span class="lineno">13495</span> </div>
|
|
<div class="line"><a id="l13496" name="l13496"></a><span class="lineno">13496</span> <span class="keywordtype">void</span> listReporters(</div>
|
|
<div class="line"><a id="l13497" name="l13497"></a><span class="lineno">13497</span> std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13498" name="l13498"></a><span class="lineno">13498</span> <span class="keywordtype">void</span> listListeners(</div>
|
|
<div class="line"><a id="l13499" name="l13499"></a><span class="lineno">13499</span> std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13500" name="l13500"></a><span class="lineno">13500</span> <span class="keywordtype">void</span> listTests( std::vector<TestCaseHandle> <span class="keyword">const</span>& tests ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13501" name="l13501"></a><span class="lineno">13501</span> <span class="keywordtype">void</span> listTags( std::vector<TagInfo> <span class="keyword">const</span>& tagInfos ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13502" name="l13502"></a><span class="lineno">13502</span> </div>
|
|
<div class="line"><a id="l13503" name="l13503"></a><span class="lineno">13503</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13504" name="l13504"></a><span class="lineno">13504</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& testRunInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13505" name="l13505"></a><span class="lineno">13505</span> <span class="keywordtype">void</span> testCaseStarting( TestCaseInfo <span class="keyword">const</span>& testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13506" name="l13506"></a><span class="lineno">13506</span> <span class="keywordtype">void</span> testCasePartialStarting( TestCaseInfo <span class="keyword">const</span>& testInfo,</div>
|
|
<div class="line"><a id="l13507" name="l13507"></a><span class="lineno">13507</span> uint64_t partNumber ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13508" name="l13508"></a><span class="lineno">13508</span> <span class="keywordtype">void</span> sectionStarting( SectionInfo <span class="keyword">const</span>& sectionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13509" name="l13509"></a><span class="lineno">13509</span> <span class="keywordtype">void</span> sectionEnded( SectionStats <span class="keyword">const</span>& sectionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13510" name="l13510"></a><span class="lineno">13510</span> <span class="keywordtype">void</span> testCasePartialEnded( TestCaseStats <span class="keyword">const</span>& testCaseStats,</div>
|
|
<div class="line"><a id="l13511" name="l13511"></a><span class="lineno">13511</span> uint64_t partNumber ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13512" name="l13512"></a><span class="lineno">13512</span> <span class="keywordtype">void</span> testCaseEnded( TestCaseStats <span class="keyword">const</span>& testCaseStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13513" name="l13513"></a><span class="lineno">13513</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& testRunStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13514" name="l13514"></a><span class="lineno">13514</span> <span class="keywordtype">void</span> skipTest( TestCaseInfo <span class="keyword">const</span>& testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13515" name="l13515"></a><span class="lineno">13515</span> };</div>
|
|
<div class="line"><a id="l13516" name="l13516"></a><span class="lineno">13516</span> </div>
|
|
<div class="line"><a id="l13517" name="l13517"></a><span class="lineno">13517</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13518" name="l13518"></a><span class="lineno">13518</span> </div>
|
|
<div class="line"><a id="l13519" name="l13519"></a><span class="lineno">13519</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_EVENT_LISTENER_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13520" name="l13520"></a><span class="lineno">13520</span> </div>
|
|
<div class="line"><a id="l13521" name="l13521"></a><span class="lineno">13521</span> </div>
|
|
<div class="line"><a id="l13522" name="l13522"></a><span class="lineno">13522</span><span class="preprocessor">#ifndef CATCH_REPORTER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13523" name="l13523"></a><span class="lineno">13523</span><span class="preprocessor">#define CATCH_REPORTER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13524" name="l13524"></a><span class="lineno">13524</span> </div>
|
|
<div class="line"><a id="l13525" name="l13525"></a><span class="lineno">13525</span><span class="preprocessor">#include <iosfwd></span></div>
|
|
<div class="line"><a id="l13526" name="l13526"></a><span class="lineno">13526</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l13527" name="l13527"></a><span class="lineno">13527</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l13528" name="l13528"></a><span class="lineno">13528</span> </div>
|
|
<div class="line"><a id="l13529" name="l13529"></a><span class="lineno">13529</span> </div>
|
|
<div class="line"><a id="l13530" name="l13530"></a><span class="lineno">13530</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13531" name="l13531"></a><span class="lineno">13531</span> </div>
|
|
<div class="line"><a id="l13532" name="l13532"></a><span class="lineno">13532</span> <span class="keyword">class </span>IConfig;</div>
|
|
<div class="line"><a id="l13533" name="l13533"></a><span class="lineno">13533</span> <span class="keyword">class </span>TestCaseHandle;</div>
|
|
<div class="line"><a id="l13534" name="l13534"></a><span class="lineno">13534</span> <span class="keyword">class </span>ColourImpl;</div>
|
|
<div class="line"><a id="l13535" name="l13535"></a><span class="lineno">13535</span> </div>
|
|
<div class="line"><a id="l13536" name="l13536"></a><span class="lineno">13536</span> <span class="comment">// Returns double formatted as %.3f (format expected on output)</span></div>
|
|
<div class="line"><a id="l13537" name="l13537"></a><span class="lineno">13537</span> std::string <a class="code hl_function" href="namespaceCatch.html#af65507889895c5c4b04fb831eeab2972">getFormattedDuration</a>( <span class="keywordtype">double</span> duration );</div>
|
|
<div class="line"><a id="l13538" name="l13538"></a><span class="lineno">13538</span></div>
|
|
<div class="line"><a id="l13540" name="l13540"></a><span class="lineno">13540</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceCatch.html#af125966eee74f0256b8bfddec3840497">shouldShowDuration</a>( IConfig <span class="keyword">const</span>& config, <span class="keywordtype">double</span> duration );</div>
|
|
<div class="line"><a id="l13541" name="l13541"></a><span class="lineno">13541</span> </div>
|
|
<div class="line"><a id="l13542" name="l13542"></a><span class="lineno">13542</span> std::string <a class="code hl_function" href="namespaceCatch.html#ae5e405537e8a55293a1b6cad32e2cdb5">serializeFilters</a>( std::vector<std::string> <span class="keyword">const</span>& filters );</div>
|
|
<div class="line"><a id="l13543" name="l13543"></a><span class="lineno">13543</span> </div>
|
|
<div class="line"><a id="l13544" name="l13544"></a><span class="lineno">13544</span> <span class="keyword">struct </span>lineOfChars {</div>
|
|
<div class="line"><a id="l13545" name="l13545"></a><span class="lineno">13545</span> <span class="keywordtype">char</span> c;</div>
|
|
<div class="line"><a id="l13546" name="l13546"></a><span class="lineno">13546</span> <span class="keyword">constexpr</span> lineOfChars( <span class="keywordtype">char</span> c_ ): c( c_ ) {}</div>
|
|
<div class="line"><a id="l13547" name="l13547"></a><span class="lineno">13547</span> </div>
|
|
<div class="line"><a id="l13548" name="l13548"></a><span class="lineno">13548</span> <span class="keyword">friend</span> std::ostream& <a class="code hl_function" href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a>( std::ostream& out, lineOfChars value );</div>
|
|
<div class="line"><a id="l13549" name="l13549"></a><span class="lineno">13549</span> };</div>
|
|
<div class="line"><a id="l13550" name="l13550"></a><span class="lineno">13550</span></div>
|
|
<div class="line"><a id="l13559" name="l13559"></a><span class="lineno">13559</span> <span class="keywordtype">void</span></div>
|
|
<div class="line"><a id="l13560" name="l13560"></a><span class="lineno">13560</span> <a class="code hl_function" href="namespaceCatch.html#a7fc9276bf852d1625d986c0cbc3eabce">defaultListReporters</a>( std::ostream& out,</div>
|
|
<div class="line"><a id="l13561" name="l13561"></a><span class="lineno">13561</span> std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions,</div>
|
|
<div class="line"><a id="l13562" name="l13562"></a><span class="lineno">13562</span> Verbosity verbosity );</div>
|
|
<div class="line"><a id="l13563" name="l13563"></a><span class="lineno">13563</span></div>
|
|
<div class="line"><a id="l13568" name="l13568"></a><span class="lineno">13568</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a906d1c90c5a8118e737bd14bef2885ea">defaultListListeners</a>( std::ostream& out,</div>
|
|
<div class="line"><a id="l13569" name="l13569"></a><span class="lineno">13569</span> std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions );</div>
|
|
<div class="line"><a id="l13570" name="l13570"></a><span class="lineno">13570</span></div>
|
|
<div class="line"><a id="l13578" name="l13578"></a><span class="lineno">13578</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a29d53521f0da176f732c3a022dbb04df">defaultListTags</a>( std::ostream& out, std::vector<TagInfo> <span class="keyword">const</span>& tags, <span class="keywordtype">bool</span> isFiltered );</div>
|
|
<div class="line"><a id="l13579" name="l13579"></a><span class="lineno">13579</span></div>
|
|
<div class="line"><a id="l13589" name="l13589"></a><span class="lineno">13589</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#a6dce9f6d9a416fe7a06e6394d557606a">defaultListTests</a>( std::ostream& out,</div>
|
|
<div class="line"><a id="l13590" name="l13590"></a><span class="lineno">13590</span> ColourImpl* streamColour,</div>
|
|
<div class="line"><a id="l13591" name="l13591"></a><span class="lineno">13591</span> std::vector<TestCaseHandle> <span class="keyword">const</span>& tests,</div>
|
|
<div class="line"><a id="l13592" name="l13592"></a><span class="lineno">13592</span> <span class="keywordtype">bool</span> isFiltered,</div>
|
|
<div class="line"><a id="l13593" name="l13593"></a><span class="lineno">13593</span> Verbosity verbosity );</div>
|
|
<div class="line"><a id="l13594" name="l13594"></a><span class="lineno">13594</span></div>
|
|
<div class="line"><a id="l13600" name="l13600"></a><span class="lineno">13600</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch.html#aecf85e8927841af21b8fcd3bab31df2b">printTestRunTotals</a>( std::ostream& stream,</div>
|
|
<div class="line"><a id="l13601" name="l13601"></a><span class="lineno">13601</span> ColourImpl& streamColour,</div>
|
|
<div class="line"><a id="l13602" name="l13602"></a><span class="lineno">13602</span> Totals <span class="keyword">const</span>& totals );</div>
|
|
<div class="line"><a id="l13603" name="l13603"></a><span class="lineno">13603</span> </div>
|
|
<div class="line"><a id="l13604" name="l13604"></a><span class="lineno">13604</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13605" name="l13605"></a><span class="lineno">13605</span> </div>
|
|
<div class="line"><a id="l13606" name="l13606"></a><span class="lineno">13606</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_HELPERS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13607" name="l13607"></a><span class="lineno">13607</span> </div>
|
|
<div class="line"><a id="l13608" name="l13608"></a><span class="lineno">13608</span> </div>
|
|
<div class="line"><a id="l13609" name="l13609"></a><span class="lineno">13609</span> </div>
|
|
<div class="line"><a id="l13610" name="l13610"></a><span class="lineno">13610</span><span class="preprocessor">#ifndef CATCH_REPORTER_JSON_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13611" name="l13611"></a><span class="lineno">13611</span><span class="preprocessor">#define CATCH_REPORTER_JSON_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13612" name="l13612"></a><span class="lineno">13612</span> </div>
|
|
<div class="line"><a id="l13613" name="l13613"></a><span class="lineno">13613</span> </div>
|
|
<div class="line"><a id="l13614" name="l13614"></a><span class="lineno">13614</span><span class="preprocessor">#include <stack></span></div>
|
|
<div class="line"><a id="l13615" name="l13615"></a><span class="lineno">13615</span> </div>
|
|
<div class="line"><a id="l13616" name="l13616"></a><span class="lineno">13616</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13617" name="l13617"></a><span class="lineno">13617</span> <span class="keyword">class </span>JsonReporter : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l13618" name="l13618"></a><span class="lineno">13618</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13619" name="l13619"></a><span class="lineno">13619</span> JsonReporter( ReporterConfig&& config );</div>
|
|
<div class="line"><a id="l13620" name="l13620"></a><span class="lineno">13620</span> </div>
|
|
<div class="line"><a id="l13621" name="l13621"></a><span class="lineno">13621</span> ~JsonReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13622" name="l13622"></a><span class="lineno">13622</span> </div>
|
|
<div class="line"><a id="l13623" name="l13623"></a><span class="lineno">13623</span> <span class="keyword">static</span> std::string getDescription();</div>
|
|
<div class="line"><a id="l13624" name="l13624"></a><span class="lineno">13624</span> </div>
|
|
<div class="line"><a id="l13625" name="l13625"></a><span class="lineno">13625</span> <span class="keyword">public</span>: <span class="comment">// StreamingReporterBase</span></div>
|
|
<div class="line"><a id="l13626" name="l13626"></a><span class="lineno">13626</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& runInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13627" name="l13627"></a><span class="lineno">13627</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& runStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13628" name="l13628"></a><span class="lineno">13628</span> </div>
|
|
<div class="line"><a id="l13629" name="l13629"></a><span class="lineno">13629</span> <span class="keywordtype">void</span> testCaseStarting( TestCaseInfo <span class="keyword">const</span>& tcInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13630" name="l13630"></a><span class="lineno">13630</span> <span class="keywordtype">void</span> testCaseEnded( TestCaseStats <span class="keyword">const</span>& tcStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13631" name="l13631"></a><span class="lineno">13631</span> </div>
|
|
<div class="line"><a id="l13632" name="l13632"></a><span class="lineno">13632</span> <span class="keywordtype">void</span> testCasePartialStarting( TestCaseInfo <span class="keyword">const</span>& tcInfo,</div>
|
|
<div class="line"><a id="l13633" name="l13633"></a><span class="lineno">13633</span> uint64_t index ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13634" name="l13634"></a><span class="lineno">13634</span> <span class="keywordtype">void</span> testCasePartialEnded( TestCaseStats <span class="keyword">const</span>& tcStats,</div>
|
|
<div class="line"><a id="l13635" name="l13635"></a><span class="lineno">13635</span> uint64_t index ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13636" name="l13636"></a><span class="lineno">13636</span> </div>
|
|
<div class="line"><a id="l13637" name="l13637"></a><span class="lineno">13637</span> <span class="keywordtype">void</span> sectionStarting( SectionInfo <span class="keyword">const</span>& sectionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13638" name="l13638"></a><span class="lineno">13638</span> <span class="keywordtype">void</span> sectionEnded( SectionStats <span class="keyword">const</span>& sectionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13639" name="l13639"></a><span class="lineno">13639</span> </div>
|
|
<div class="line"><a id="l13640" name="l13640"></a><span class="lineno">13640</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& assertionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13641" name="l13641"></a><span class="lineno">13641</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& assertionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13642" name="l13642"></a><span class="lineno">13642</span> </div>
|
|
<div class="line"><a id="l13643" name="l13643"></a><span class="lineno">13643</span> <span class="comment">//void testRunEndedCumulative() override;</span></div>
|
|
<div class="line"><a id="l13644" name="l13644"></a><span class="lineno">13644</span> </div>
|
|
<div class="line"><a id="l13645" name="l13645"></a><span class="lineno">13645</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13646" name="l13646"></a><span class="lineno">13646</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13647" name="l13647"></a><span class="lineno">13647</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13648" name="l13648"></a><span class="lineno">13648</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13649" name="l13649"></a><span class="lineno">13649</span> </div>
|
|
<div class="line"><a id="l13650" name="l13650"></a><span class="lineno">13650</span> <span class="keywordtype">void</span> listReporters(</div>
|
|
<div class="line"><a id="l13651" name="l13651"></a><span class="lineno">13651</span> std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13652" name="l13652"></a><span class="lineno">13652</span> <span class="keywordtype">void</span> listListeners(</div>
|
|
<div class="line"><a id="l13653" name="l13653"></a><span class="lineno">13653</span> std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13654" name="l13654"></a><span class="lineno">13654</span> <span class="keywordtype">void</span> listTests( std::vector<TestCaseHandle> <span class="keyword">const</span>& tests ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13655" name="l13655"></a><span class="lineno">13655</span> <span class="keywordtype">void</span> listTags( std::vector<TagInfo> <span class="keyword">const</span>& tags ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13656" name="l13656"></a><span class="lineno">13656</span> </div>
|
|
<div class="line"><a id="l13657" name="l13657"></a><span class="lineno">13657</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l13658" name="l13658"></a><span class="lineno">13658</span> Timer m_testCaseTimer;</div>
|
|
<div class="line"><a id="l13659" name="l13659"></a><span class="lineno">13659</span> <span class="keyword">enum class</span> Writer {</div>
|
|
<div class="line"><a id="l13660" name="l13660"></a><span class="lineno">13660</span> Object,</div>
|
|
<div class="line"><a id="l13661" name="l13661"></a><span class="lineno">13661</span> Array</div>
|
|
<div class="line"><a id="l13662" name="l13662"></a><span class="lineno">13662</span> };</div>
|
|
<div class="line"><a id="l13663" name="l13663"></a><span class="lineno">13663</span> </div>
|
|
<div class="line"><a id="l13664" name="l13664"></a><span class="lineno">13664</span> JsonArrayWriter& startArray();</div>
|
|
<div class="line"><a id="l13665" name="l13665"></a><span class="lineno">13665</span> JsonArrayWriter& startArray( StringRef key );</div>
|
|
<div class="line"><a id="l13666" name="l13666"></a><span class="lineno">13666</span> </div>
|
|
<div class="line"><a id="l13667" name="l13667"></a><span class="lineno">13667</span> JsonObjectWriter& startObject();</div>
|
|
<div class="line"><a id="l13668" name="l13668"></a><span class="lineno">13668</span> JsonObjectWriter& startObject( StringRef key );</div>
|
|
<div class="line"><a id="l13669" name="l13669"></a><span class="lineno">13669</span> </div>
|
|
<div class="line"><a id="l13670" name="l13670"></a><span class="lineno">13670</span> <span class="keywordtype">void</span> endObject();</div>
|
|
<div class="line"><a id="l13671" name="l13671"></a><span class="lineno">13671</span> <span class="keywordtype">void</span> endArray();</div>
|
|
<div class="line"><a id="l13672" name="l13672"></a><span class="lineno">13672</span> </div>
|
|
<div class="line"><a id="l13673" name="l13673"></a><span class="lineno">13673</span> <span class="keywordtype">bool</span> isInside( Writer writer );</div>
|
|
<div class="line"><a id="l13674" name="l13674"></a><span class="lineno">13674</span> </div>
|
|
<div class="line"><a id="l13675" name="l13675"></a><span class="lineno">13675</span> <span class="keywordtype">void</span> startListing();</div>
|
|
<div class="line"><a id="l13676" name="l13676"></a><span class="lineno">13676</span> <span class="keywordtype">void</span> endListing();</div>
|
|
<div class="line"><a id="l13677" name="l13677"></a><span class="lineno">13677</span> </div>
|
|
<div class="line"><a id="l13678" name="l13678"></a><span class="lineno">13678</span> <span class="comment">// Invariant:</span></div>
|
|
<div class="line"><a id="l13679" name="l13679"></a><span class="lineno">13679</span> <span class="comment">// When m_writers is not empty and its top element is</span></div>
|
|
<div class="line"><a id="l13680" name="l13680"></a><span class="lineno">13680</span> <span class="comment">// - Writer::Object, then m_objectWriters is not be empty</span></div>
|
|
<div class="line"><a id="l13681" name="l13681"></a><span class="lineno">13681</span> <span class="comment">// - Writer::Array, then m_arrayWriters shall not be empty</span></div>
|
|
<div class="line"><a id="l13682" name="l13682"></a><span class="lineno">13682</span> std::stack<JsonObjectWriter> m_objectWriters{};</div>
|
|
<div class="line"><a id="l13683" name="l13683"></a><span class="lineno">13683</span> std::stack<JsonArrayWriter> m_arrayWriters{};</div>
|
|
<div class="line"><a id="l13684" name="l13684"></a><span class="lineno">13684</span> std::stack<Writer> m_writers{};</div>
|
|
<div class="line"><a id="l13685" name="l13685"></a><span class="lineno">13685</span> </div>
|
|
<div class="line"><a id="l13686" name="l13686"></a><span class="lineno">13686</span> <span class="keywordtype">bool</span> m_startedListing = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13687" name="l13687"></a><span class="lineno">13687</span> </div>
|
|
<div class="line"><a id="l13688" name="l13688"></a><span class="lineno">13688</span> <span class="comment">// std::size_t m_sectionDepth = 0;</span></div>
|
|
<div class="line"><a id="l13689" name="l13689"></a><span class="lineno">13689</span> <span class="comment">// std::size_t m_sectionStarted = 0;</span></div>
|
|
<div class="line"><a id="l13690" name="l13690"></a><span class="lineno">13690</span> };</div>
|
|
<div class="line"><a id="l13691" name="l13691"></a><span class="lineno">13691</span>} <span class="comment">// namespace Catch</span></div>
|
|
<div class="line"><a id="l13692" name="l13692"></a><span class="lineno">13692</span> </div>
|
|
<div class="line"><a id="l13693" name="l13693"></a><span class="lineno">13693</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_JSON_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13694" name="l13694"></a><span class="lineno">13694</span> </div>
|
|
<div class="line"><a id="l13695" name="l13695"></a><span class="lineno">13695</span> </div>
|
|
<div class="line"><a id="l13696" name="l13696"></a><span class="lineno">13696</span><span class="preprocessor">#ifndef CATCH_REPORTER_JUNIT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13697" name="l13697"></a><span class="lineno">13697</span><span class="preprocessor">#define CATCH_REPORTER_JUNIT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13698" name="l13698"></a><span class="lineno">13698</span> </div>
|
|
<div class="line"><a id="l13699" name="l13699"></a><span class="lineno">13699</span> </div>
|
|
<div class="line"><a id="l13700" name="l13700"></a><span class="lineno">13700</span> </div>
|
|
<div class="line"><a id="l13701" name="l13701"></a><span class="lineno">13701</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13702" name="l13702"></a><span class="lineno">13702</span> </div>
|
|
<div class="line"><a id="l13703" name="l13703"></a><span class="lineno">13703</span> <span class="keyword">class </span>JunitReporter final : <span class="keyword">public</span> CumulativeReporterBase {</div>
|
|
<div class="line"><a id="l13704" name="l13704"></a><span class="lineno">13704</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13705" name="l13705"></a><span class="lineno">13705</span> JunitReporter(ReporterConfig&& _config);</div>
|
|
<div class="line"><a id="l13706" name="l13706"></a><span class="lineno">13706</span> </div>
|
|
<div class="line"><a id="l13707" name="l13707"></a><span class="lineno">13707</span> <span class="keyword">static</span> std::string getDescription();</div>
|
|
<div class="line"><a id="l13708" name="l13708"></a><span class="lineno">13708</span> </div>
|
|
<div class="line"><a id="l13709" name="l13709"></a><span class="lineno">13709</span> <span class="keywordtype">void</span> testRunStarting(TestRunInfo <span class="keyword">const</span>& runInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13710" name="l13710"></a><span class="lineno">13710</span> </div>
|
|
<div class="line"><a id="l13711" name="l13711"></a><span class="lineno">13711</span> <span class="keywordtype">void</span> testCaseStarting(TestCaseInfo <span class="keyword">const</span>& testCaseInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13712" name="l13712"></a><span class="lineno">13712</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13713" name="l13713"></a><span class="lineno">13713</span> </div>
|
|
<div class="line"><a id="l13714" name="l13714"></a><span class="lineno">13714</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& testCaseStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13715" name="l13715"></a><span class="lineno">13715</span> </div>
|
|
<div class="line"><a id="l13716" name="l13716"></a><span class="lineno">13716</span> <span class="keywordtype">void</span> testRunEndedCumulative() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13717" name="l13717"></a><span class="lineno">13717</span> </div>
|
|
<div class="line"><a id="l13718" name="l13718"></a><span class="lineno">13718</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l13719" name="l13719"></a><span class="lineno">13719</span> <span class="keywordtype">void</span> writeRun(TestRunNode <span class="keyword">const</span>& testRunNode, <span class="keywordtype">double</span> suiteTime);</div>
|
|
<div class="line"><a id="l13720" name="l13720"></a><span class="lineno">13720</span> </div>
|
|
<div class="line"><a id="l13721" name="l13721"></a><span class="lineno">13721</span> <span class="keywordtype">void</span> writeTestCase(TestCaseNode <span class="keyword">const</span>& testCaseNode);</div>
|
|
<div class="line"><a id="l13722" name="l13722"></a><span class="lineno">13722</span> </div>
|
|
<div class="line"><a id="l13723" name="l13723"></a><span class="lineno">13723</span> <span class="keywordtype">void</span> writeSection( std::string <span class="keyword">const</span>& className,</div>
|
|
<div class="line"><a id="l13724" name="l13724"></a><span class="lineno">13724</span> std::string <span class="keyword">const</span>& rootName,</div>
|
|
<div class="line"><a id="l13725" name="l13725"></a><span class="lineno">13725</span> SectionNode <span class="keyword">const</span>& sectionNode,</div>
|
|
<div class="line"><a id="l13726" name="l13726"></a><span class="lineno">13726</span> <span class="keywordtype">bool</span> testOkToFail );</div>
|
|
<div class="line"><a id="l13727" name="l13727"></a><span class="lineno">13727</span> </div>
|
|
<div class="line"><a id="l13728" name="l13728"></a><span class="lineno">13728</span> <span class="keywordtype">void</span> writeAssertions(SectionNode <span class="keyword">const</span>& sectionNode);</div>
|
|
<div class="line"><a id="l13729" name="l13729"></a><span class="lineno">13729</span> <span class="keywordtype">void</span> writeAssertion(AssertionStats <span class="keyword">const</span>& stats);</div>
|
|
<div class="line"><a id="l13730" name="l13730"></a><span class="lineno">13730</span> </div>
|
|
<div class="line"><a id="l13731" name="l13731"></a><span class="lineno">13731</span> XmlWriter xml;</div>
|
|
<div class="line"><a id="l13732" name="l13732"></a><span class="lineno">13732</span> Timer suiteTimer;</div>
|
|
<div class="line"><a id="l13733" name="l13733"></a><span class="lineno">13733</span> std::string stdOutForSuite;</div>
|
|
<div class="line"><a id="l13734" name="l13734"></a><span class="lineno">13734</span> std::string stdErrForSuite;</div>
|
|
<div class="line"><a id="l13735" name="l13735"></a><span class="lineno">13735</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> unexpectedExceptions = 0;</div>
|
|
<div class="line"><a id="l13736" name="l13736"></a><span class="lineno">13736</span> <span class="keywordtype">bool</span> m_okToFail = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13737" name="l13737"></a><span class="lineno">13737</span> };</div>
|
|
<div class="line"><a id="l13738" name="l13738"></a><span class="lineno">13738</span> </div>
|
|
<div class="line"><a id="l13739" name="l13739"></a><span class="lineno">13739</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13740" name="l13740"></a><span class="lineno">13740</span> </div>
|
|
<div class="line"><a id="l13741" name="l13741"></a><span class="lineno">13741</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_JUNIT_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13742" name="l13742"></a><span class="lineno">13742</span> </div>
|
|
<div class="line"><a id="l13743" name="l13743"></a><span class="lineno">13743</span> </div>
|
|
<div class="line"><a id="l13744" name="l13744"></a><span class="lineno">13744</span><span class="preprocessor">#ifndef CATCH_REPORTER_MULTI_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13745" name="l13745"></a><span class="lineno">13745</span><span class="preprocessor">#define CATCH_REPORTER_MULTI_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13746" name="l13746"></a><span class="lineno">13746</span> </div>
|
|
<div class="line"><a id="l13747" name="l13747"></a><span class="lineno">13747</span> </div>
|
|
<div class="line"><a id="l13748" name="l13748"></a><span class="lineno">13748</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13749" name="l13749"></a><span class="lineno">13749</span> </div>
|
|
<div class="line"><a id="l13750" name="l13750"></a><span class="lineno">13750</span> <span class="keyword">class </span>MultiReporter final : <span class="keyword">public</span> IEventListener {</div>
|
|
<div class="line"><a id="l13751" name="l13751"></a><span class="lineno">13751</span> <span class="comment">/*</span></div>
|
|
<div class="line"><a id="l13752" name="l13752"></a><span class="lineno">13752</span><span class="comment"> * Stores all added reporters and listeners</span></div>
|
|
<div class="line"><a id="l13753" name="l13753"></a><span class="lineno">13753</span><span class="comment"> *</span></div>
|
|
<div class="line"><a id="l13754" name="l13754"></a><span class="lineno">13754</span><span class="comment"> * All Listeners are stored before all reporters, and individual</span></div>
|
|
<div class="line"><a id="l13755" name="l13755"></a><span class="lineno">13755</span><span class="comment"> * listeners/reporters are stored in order of insertion.</span></div>
|
|
<div class="line"><a id="l13756" name="l13756"></a><span class="lineno">13756</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l13757" name="l13757"></a><span class="lineno">13757</span> std::vector<IEventListenerPtr> m_reporterLikes;</div>
|
|
<div class="line"><a id="l13758" name="l13758"></a><span class="lineno">13758</span> <span class="keywordtype">bool</span> m_haveNoncapturingReporters = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13759" name="l13759"></a><span class="lineno">13759</span> </div>
|
|
<div class="line"><a id="l13760" name="l13760"></a><span class="lineno">13760</span> <span class="comment">// Keep track of how many listeners we have already inserted,</span></div>
|
|
<div class="line"><a id="l13761" name="l13761"></a><span class="lineno">13761</span> <span class="comment">// so that we can insert them into the main vector at the right place</span></div>
|
|
<div class="line"><a id="l13762" name="l13762"></a><span class="lineno">13762</span> <span class="keywordtype">size_t</span> m_insertedListeners = 0;</div>
|
|
<div class="line"><a id="l13763" name="l13763"></a><span class="lineno">13763</span> </div>
|
|
<div class="line"><a id="l13764" name="l13764"></a><span class="lineno">13764</span> <span class="keywordtype">void</span> updatePreferences(IEventListener <span class="keyword">const</span>& reporterish);</div>
|
|
<div class="line"><a id="l13765" name="l13765"></a><span class="lineno">13765</span> </div>
|
|
<div class="line"><a id="l13766" name="l13766"></a><span class="lineno">13766</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13767" name="l13767"></a><span class="lineno">13767</span> <span class="keyword">using </span>IEventListener::IEventListener;</div>
|
|
<div class="line"><a id="l13768" name="l13768"></a><span class="lineno">13768</span> </div>
|
|
<div class="line"><a id="l13769" name="l13769"></a><span class="lineno">13769</span> <span class="keywordtype">void</span> addListener( IEventListenerPtr&& listener );</div>
|
|
<div class="line"><a id="l13770" name="l13770"></a><span class="lineno">13770</span> <span class="keywordtype">void</span> addReporter( IEventListenerPtr&& reporter );</div>
|
|
<div class="line"><a id="l13771" name="l13771"></a><span class="lineno">13771</span> </div>
|
|
<div class="line"><a id="l13772" name="l13772"></a><span class="lineno">13772</span> <span class="keyword">public</span>: <span class="comment">// IEventListener</span></div>
|
|
<div class="line"><a id="l13773" name="l13773"></a><span class="lineno">13773</span> </div>
|
|
<div class="line"><a id="l13774" name="l13774"></a><span class="lineno">13774</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13775" name="l13775"></a><span class="lineno">13775</span> <span class="keywordtype">void</span> fatalErrorEncountered( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13776" name="l13776"></a><span class="lineno">13776</span> <span class="keywordtype">void</span> reportInvalidTestSpec( StringRef arg ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13777" name="l13777"></a><span class="lineno">13777</span> </div>
|
|
<div class="line"><a id="l13778" name="l13778"></a><span class="lineno">13778</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13779" name="l13779"></a><span class="lineno">13779</span> <span class="keywordtype">void</span> benchmarkStarting( BenchmarkInfo <span class="keyword">const</span>& benchmarkInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13780" name="l13780"></a><span class="lineno">13780</span> <span class="keywordtype">void</span> benchmarkEnded( BenchmarkStats<> <span class="keyword">const</span>& benchmarkStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13781" name="l13781"></a><span class="lineno">13781</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13782" name="l13782"></a><span class="lineno">13782</span> </div>
|
|
<div class="line"><a id="l13783" name="l13783"></a><span class="lineno">13783</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& testRunInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13784" name="l13784"></a><span class="lineno">13784</span> <span class="keywordtype">void</span> testCaseStarting( TestCaseInfo <span class="keyword">const</span>& testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13785" name="l13785"></a><span class="lineno">13785</span> <span class="keywordtype">void</span> testCasePartialStarting(TestCaseInfo <span class="keyword">const</span>& testInfo, uint64_t partNumber) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13786" name="l13786"></a><span class="lineno">13786</span> <span class="keywordtype">void</span> sectionStarting( SectionInfo <span class="keyword">const</span>& sectionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13787" name="l13787"></a><span class="lineno">13787</span> <span class="keywordtype">void</span> assertionStarting( AssertionInfo <span class="keyword">const</span>& assertionInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13788" name="l13788"></a><span class="lineno">13788</span> </div>
|
|
<div class="line"><a id="l13789" name="l13789"></a><span class="lineno">13789</span> <span class="keywordtype">void</span> assertionEnded( AssertionStats <span class="keyword">const</span>& assertionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13790" name="l13790"></a><span class="lineno">13790</span> <span class="keywordtype">void</span> sectionEnded( SectionStats <span class="keyword">const</span>& sectionStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13791" name="l13791"></a><span class="lineno">13791</span> <span class="keywordtype">void</span> testCasePartialEnded(TestCaseStats <span class="keyword">const</span>& testStats, uint64_t partNumber) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13792" name="l13792"></a><span class="lineno">13792</span> <span class="keywordtype">void</span> testCaseEnded( TestCaseStats <span class="keyword">const</span>& testCaseStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13793" name="l13793"></a><span class="lineno">13793</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& testRunStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13794" name="l13794"></a><span class="lineno">13794</span> </div>
|
|
<div class="line"><a id="l13795" name="l13795"></a><span class="lineno">13795</span> <span class="keywordtype">void</span> skipTest( TestCaseInfo <span class="keyword">const</span>& testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13796" name="l13796"></a><span class="lineno">13796</span> </div>
|
|
<div class="line"><a id="l13797" name="l13797"></a><span class="lineno">13797</span> <span class="keywordtype">void</span> listReporters(std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13798" name="l13798"></a><span class="lineno">13798</span> <span class="keywordtype">void</span> listListeners(std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13799" name="l13799"></a><span class="lineno">13799</span> <span class="keywordtype">void</span> listTests(std::vector<TestCaseHandle> <span class="keyword">const</span>& tests) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13800" name="l13800"></a><span class="lineno">13800</span> <span class="keywordtype">void</span> listTags(std::vector<TagInfo> <span class="keyword">const</span>& tags) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13801" name="l13801"></a><span class="lineno">13801</span> </div>
|
|
<div class="line"><a id="l13802" name="l13802"></a><span class="lineno">13802</span> </div>
|
|
<div class="line"><a id="l13803" name="l13803"></a><span class="lineno">13803</span> };</div>
|
|
<div class="line"><a id="l13804" name="l13804"></a><span class="lineno">13804</span> </div>
|
|
<div class="line"><a id="l13805" name="l13805"></a><span class="lineno">13805</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13806" name="l13806"></a><span class="lineno">13806</span> </div>
|
|
<div class="line"><a id="l13807" name="l13807"></a><span class="lineno">13807</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_MULTI_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13808" name="l13808"></a><span class="lineno">13808</span> </div>
|
|
<div class="line"><a id="l13809" name="l13809"></a><span class="lineno">13809</span> </div>
|
|
<div class="line"><a id="l13810" name="l13810"></a><span class="lineno">13810</span><span class="preprocessor">#ifndef CATCH_REPORTER_REGISTRARS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13811" name="l13811"></a><span class="lineno">13811</span><span class="preprocessor">#define CATCH_REPORTER_REGISTRARS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13812" name="l13812"></a><span class="lineno">13812</span> </div>
|
|
<div class="line"><a id="l13813" name="l13813"></a><span class="lineno">13813</span> </div>
|
|
<div class="line"><a id="l13814" name="l13814"></a><span class="lineno">13814</span><span class="preprocessor">#include <type_traits></span></div>
|
|
<div class="line"><a id="l13815" name="l13815"></a><span class="lineno">13815</span> </div>
|
|
<div class="line"><a id="l13816" name="l13816"></a><span class="lineno">13816</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13817" name="l13817"></a><span class="lineno">13817</span> </div>
|
|
<div class="line"><a id="l13818" name="l13818"></a><span class="lineno">13818</span> <span class="keyword">namespace </span>Detail {</div>
|
|
<div class="line"><a id="l13819" name="l13819"></a><span class="lineno">13819</span> </div>
|
|
<div class="line"><a id="l13820" name="l13820"></a><span class="lineno">13820</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>></div>
|
|
<div class="line"><a id="l13821" name="l13821"></a><span class="lineno">13821</span> <span class="keyword">struct </span>has_description : std::false_type {};</div>
|
|
<div class="line"><a id="l13822" name="l13822"></a><span class="lineno">13822</span> </div>
|
|
<div class="line"><a id="l13823" name="l13823"></a><span class="lineno">13823</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l13824" name="l13824"></a><span class="lineno">13824</span> <span class="keyword">struct </span>has_description<</div>
|
|
<div class="line"><a id="l13825" name="l13825"></a><span class="lineno">13825</span> T,</div>
|
|
<div class="line"><a id="l13826" name="l13826"></a><span class="lineno">13826</span> <a class="code hl_typedef" href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d">void_t</a><decltype( T::getDescription() )>></div>
|
|
<div class="line"><a id="l13827" name="l13827"></a><span class="lineno">13827</span> : std::true_type {};</div>
|
|
<div class="line"><a id="l13828" name="l13828"></a><span class="lineno">13828</span></div>
|
|
<div class="line"><a id="l13831" name="l13831"></a><span class="lineno">13831</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af8703a4eaf12133aa02a50dee831f2bc">registerReporterImpl</a>( std::string <span class="keyword">const</span>& name,</div>
|
|
<div class="line"><a id="l13832" name="l13832"></a><span class="lineno">13832</span> IReporterFactoryPtr reporterPtr );</div>
|
|
<div class="line"><a id="l13834" name="l13834"></a><span class="lineno">13834</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#aae9b0608769b42ff7bbd07687348c7e5">registerListenerImpl</a>( Detail::unique_ptr<EventListenerFactory> listenerFactory );</div>
|
|
<div class="line"><a id="l13835" name="l13835"></a><span class="lineno">13835</span> } <span class="comment">// namespace Detail</span></div>
|
|
<div class="line"><a id="l13836" name="l13836"></a><span class="lineno">13836</span> </div>
|
|
<div class="line"><a id="l13837" name="l13837"></a><span class="lineno">13837</span> <span class="keyword">class </span>IEventListener;</div>
|
|
<div class="line"><a id="l13838" name="l13838"></a><span class="lineno">13838</span> <span class="keyword">using </span>IEventListenerPtr = Detail::unique_ptr<IEventListener>;</div>
|
|
<div class="line"><a id="l13839" name="l13839"></a><span class="lineno">13839</span> </div>
|
|
<div class="line"><a id="l13840" name="l13840"></a><span class="lineno">13840</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l13841" name="l13841"></a><span class="lineno">13841</span> <span class="keyword">class </span>ReporterFactory : <span class="keyword">public</span> IReporterFactory {</div>
|
|
<div class="line"><a id="l13842" name="l13842"></a><span class="lineno">13842</span> </div>
|
|
<div class="line"><a id="l13843" name="l13843"></a><span class="lineno">13843</span> IEventListenerPtr create( ReporterConfig&& config )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l13844" name="l13844"></a><span class="lineno">13844</span> <span class="keywordflow">return</span> Detail::make_unique<T>( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(config) );</div>
|
|
<div class="line"><a id="l13845" name="l13845"></a><span class="lineno">13845</span> }</div>
|
|
<div class="line"><a id="l13846" name="l13846"></a><span class="lineno">13846</span> </div>
|
|
<div class="line"><a id="l13847" name="l13847"></a><span class="lineno">13847</span> std::string getDescription()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l13848" name="l13848"></a><span class="lineno">13848</span> <span class="keywordflow">return</span> T::getDescription();</div>
|
|
<div class="line"><a id="l13849" name="l13849"></a><span class="lineno">13849</span> }</div>
|
|
<div class="line"><a id="l13850" name="l13850"></a><span class="lineno">13850</span> };</div>
|
|
<div class="line"><a id="l13851" name="l13851"></a><span class="lineno">13851</span> </div>
|
|
<div class="line"><a id="l13852" name="l13852"></a><span class="lineno">13852</span> </div>
|
|
<div class="line"><a id="l13853" name="l13853"></a><span class="lineno">13853</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l13854" name="l13854"></a><span class="lineno">13854</span> <span class="keyword">class </span>ReporterRegistrar {</div>
|
|
<div class="line"><a id="l13855" name="l13855"></a><span class="lineno">13855</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13856" name="l13856"></a><span class="lineno">13856</span> <span class="keyword">explicit</span> ReporterRegistrar( std::string <span class="keyword">const</span>& name ) {</div>
|
|
<div class="line"><a id="l13857" name="l13857"></a><span class="lineno">13857</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#af8703a4eaf12133aa02a50dee831f2bc">registerReporterImpl</a>( name,</div>
|
|
<div class="line"><a id="l13858" name="l13858"></a><span class="lineno">13858</span> Detail::make_unique<ReporterFactory<T>>() );</div>
|
|
<div class="line"><a id="l13859" name="l13859"></a><span class="lineno">13859</span> }</div>
|
|
<div class="line"><a id="l13860" name="l13860"></a><span class="lineno">13860</span> };</div>
|
|
<div class="line"><a id="l13861" name="l13861"></a><span class="lineno">13861</span> </div>
|
|
<div class="line"><a id="l13862" name="l13862"></a><span class="lineno">13862</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
<div class="line"><a id="l13863" name="l13863"></a><span class="lineno">13863</span> <span class="keyword">class </span>ListenerRegistrar {</div>
|
|
<div class="line"><a id="l13864" name="l13864"></a><span class="lineno">13864</span> </div>
|
|
<div class="line"><a id="l13865" name="l13865"></a><span class="lineno">13865</span> <span class="keyword">class </span>TypedListenerFactory : <span class="keyword">public</span> EventListenerFactory {</div>
|
|
<div class="line"><a id="l13866" name="l13866"></a><span class="lineno">13866</span> StringRef m_listenerName;</div>
|
|
<div class="line"><a id="l13867" name="l13867"></a><span class="lineno">13867</span> </div>
|
|
<div class="line"><a id="l13868" name="l13868"></a><span class="lineno">13868</span> std::string getDescriptionImpl( std::true_type )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l13869" name="l13869"></a><span class="lineno">13869</span> <span class="keywordflow">return</span> T::getDescription();</div>
|
|
<div class="line"><a id="l13870" name="l13870"></a><span class="lineno">13870</span> }</div>
|
|
<div class="line"><a id="l13871" name="l13871"></a><span class="lineno">13871</span> </div>
|
|
<div class="line"><a id="l13872" name="l13872"></a><span class="lineno">13872</span> std::string getDescriptionImpl( std::false_type )<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l13873" name="l13873"></a><span class="lineno">13873</span> <span class="keywordflow">return</span> <span class="stringliteral">"(No description provided)"</span>;</div>
|
|
<div class="line"><a id="l13874" name="l13874"></a><span class="lineno">13874</span> }</div>
|
|
<div class="line"><a id="l13875" name="l13875"></a><span class="lineno">13875</span> </div>
|
|
<div class="line"><a id="l13876" name="l13876"></a><span class="lineno">13876</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13877" name="l13877"></a><span class="lineno">13877</span> TypedListenerFactory( StringRef listenerName ):</div>
|
|
<div class="line"><a id="l13878" name="l13878"></a><span class="lineno">13878</span> m_listenerName( listenerName ) {}</div>
|
|
<div class="line"><a id="l13879" name="l13879"></a><span class="lineno">13879</span> </div>
|
|
<div class="line"><a id="l13880" name="l13880"></a><span class="lineno">13880</span> IEventListenerPtr create( IConfig <span class="keyword">const</span>* config )<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l13881" name="l13881"></a><span class="lineno">13881</span> <span class="keywordflow">return</span> Detail::make_unique<T>( config );</div>
|
|
<div class="line"><a id="l13882" name="l13882"></a><span class="lineno">13882</span> }</div>
|
|
<div class="line"><a id="l13883" name="l13883"></a><span class="lineno">13883</span> </div>
|
|
<div class="line"><a id="l13884" name="l13884"></a><span class="lineno">13884</span> StringRef getName()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l13885" name="l13885"></a><span class="lineno">13885</span> <span class="keywordflow">return</span> m_listenerName;</div>
|
|
<div class="line"><a id="l13886" name="l13886"></a><span class="lineno">13886</span> }</div>
|
|
<div class="line"><a id="l13887" name="l13887"></a><span class="lineno">13887</span> </div>
|
|
<div class="line"><a id="l13888" name="l13888"></a><span class="lineno">13888</span> std::string getDescription()<span class="keyword"> const override </span>{</div>
|
|
<div class="line"><a id="l13889" name="l13889"></a><span class="lineno">13889</span> <span class="keywordflow">return</span> getDescriptionImpl( Detail::has_description<T>{} );</div>
|
|
<div class="line"><a id="l13890" name="l13890"></a><span class="lineno">13890</span> }</div>
|
|
<div class="line"><a id="l13891" name="l13891"></a><span class="lineno">13891</span> };</div>
|
|
<div class="line"><a id="l13892" name="l13892"></a><span class="lineno">13892</span> </div>
|
|
<div class="line"><a id="l13893" name="l13893"></a><span class="lineno">13893</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13894" name="l13894"></a><span class="lineno">13894</span> ListenerRegistrar(StringRef listenerName) {</div>
|
|
<div class="line"><a id="l13895" name="l13895"></a><span class="lineno">13895</span> <a class="code hl_function" href="namespaceCatch_1_1Detail.html#aae9b0608769b42ff7bbd07687348c7e5">registerListenerImpl</a>( Detail::make_unique<TypedListenerFactory>(listenerName) );</div>
|
|
<div class="line"><a id="l13896" name="l13896"></a><span class="lineno">13896</span> }</div>
|
|
<div class="line"><a id="l13897" name="l13897"></a><span class="lineno">13897</span> };</div>
|
|
<div class="line"><a id="l13898" name="l13898"></a><span class="lineno">13898</span>}</div>
|
|
<div class="line"><a id="l13899" name="l13899"></a><span class="lineno">13899</span> </div>
|
|
<div class="line"><a id="l13900" name="l13900"></a><span class="lineno">13900</span><span class="preprocessor">#if !defined(CATCH_CONFIG_DISABLE)</span></div>
|
|
<div class="line"><a id="l13901" name="l13901"></a><span class="lineno">13901</span> </div>
|
|
<div class="line"><a id="l13902" name="l13902"></a><span class="lineno">13902</span><span class="preprocessor"># define CATCH_REGISTER_REPORTER( name, reporterType ) \</span></div>
|
|
<div class="line"><a id="l13903" name="l13903"></a><span class="lineno">13903</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l13904" name="l13904"></a><span class="lineno">13904</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l13905" name="l13905"></a><span class="lineno">13905</span><span class="preprocessor"> namespace { \</span></div>
|
|
<div class="line"><a id="l13906" name="l13906"></a><span class="lineno">13906</span><span class="preprocessor"> Catch::ReporterRegistrar<reporterType> INTERNAL_CATCH_UNIQUE_NAME( \</span></div>
|
|
<div class="line"><a id="l13907" name="l13907"></a><span class="lineno">13907</span><span class="preprocessor"> catch_internal_RegistrarFor )( name ); \</span></div>
|
|
<div class="line"><a id="l13908" name="l13908"></a><span class="lineno">13908</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l13909" name="l13909"></a><span class="lineno">13909</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l13910" name="l13910"></a><span class="lineno">13910</span> </div>
|
|
<div class="line"><a id="l13911" name="l13911"></a><span class="lineno">13911</span><span class="preprocessor"># define CATCH_REGISTER_LISTENER( listenerType ) \</span></div>
|
|
<div class="line"><a id="l13912" name="l13912"></a><span class="lineno">13912</span><span class="preprocessor"> CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \</span></div>
|
|
<div class="line"><a id="l13913" name="l13913"></a><span class="lineno">13913</span><span class="preprocessor"> CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \</span></div>
|
|
<div class="line"><a id="l13914" name="l13914"></a><span class="lineno">13914</span><span class="preprocessor"> namespace { \</span></div>
|
|
<div class="line"><a id="l13915" name="l13915"></a><span class="lineno">13915</span><span class="preprocessor"> Catch::ListenerRegistrar<listenerType> INTERNAL_CATCH_UNIQUE_NAME( \</span></div>
|
|
<div class="line"><a id="l13916" name="l13916"></a><span class="lineno">13916</span><span class="preprocessor"> catch_internal_RegistrarFor )( #listenerType##_catch_sr ); \</span></div>
|
|
<div class="line"><a id="l13917" name="l13917"></a><span class="lineno">13917</span><span class="preprocessor"> } \</span></div>
|
|
<div class="line"><a id="l13918" name="l13918"></a><span class="lineno">13918</span><span class="preprocessor"> CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION</span></div>
|
|
<div class="line"><a id="l13919" name="l13919"></a><span class="lineno">13919</span> </div>
|
|
<div class="line"><a id="l13920" name="l13920"></a><span class="lineno">13920</span><span class="preprocessor">#else </span><span class="comment">// CATCH_CONFIG_DISABLE</span></div>
|
|
<div class="line"><a id="l13921" name="l13921"></a><span class="lineno">13921</span> </div>
|
|
<div class="line"><a id="l13922" name="l13922"></a><span class="lineno">13922</span><span class="preprocessor">#define CATCH_REGISTER_REPORTER(name, reporterType)</span></div>
|
|
<div class="line"><a id="l13923" name="l13923"></a><span class="lineno">13923</span><span class="preprocessor">#define CATCH_REGISTER_LISTENER(listenerType)</span></div>
|
|
<div class="line"><a id="l13924" name="l13924"></a><span class="lineno">13924</span> </div>
|
|
<div class="line"><a id="l13925" name="l13925"></a><span class="lineno">13925</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_CONFIG_DISABLE</span></div>
|
|
<div class="line"><a id="l13926" name="l13926"></a><span class="lineno">13926</span> </div>
|
|
<div class="line"><a id="l13927" name="l13927"></a><span class="lineno">13927</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_REGISTRARS_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13928" name="l13928"></a><span class="lineno">13928</span> </div>
|
|
<div class="line"><a id="l13929" name="l13929"></a><span class="lineno">13929</span> </div>
|
|
<div class="line"><a id="l13930" name="l13930"></a><span class="lineno">13930</span><span class="preprocessor">#ifndef CATCH_REPORTER_SONARQUBE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13931" name="l13931"></a><span class="lineno">13931</span><span class="preprocessor">#define CATCH_REPORTER_SONARQUBE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13932" name="l13932"></a><span class="lineno">13932</span> </div>
|
|
<div class="line"><a id="l13933" name="l13933"></a><span class="lineno">13933</span> </div>
|
|
<div class="line"><a id="l13934" name="l13934"></a><span class="lineno">13934</span> </div>
|
|
<div class="line"><a id="l13935" name="l13935"></a><span class="lineno">13935</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13936" name="l13936"></a><span class="lineno">13936</span> </div>
|
|
<div class="line"><a id="l13937" name="l13937"></a><span class="lineno">13937</span> <span class="keyword">class </span>SonarQubeReporter final : <span class="keyword">public</span> CumulativeReporterBase {</div>
|
|
<div class="line"><a id="l13938" name="l13938"></a><span class="lineno">13938</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13939" name="l13939"></a><span class="lineno">13939</span> SonarQubeReporter(ReporterConfig&& config)</div>
|
|
<div class="line"><a id="l13940" name="l13940"></a><span class="lineno">13940</span> : CumulativeReporterBase(<a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(config))</div>
|
|
<div class="line"><a id="l13941" name="l13941"></a><span class="lineno">13941</span> , xml(m_stream) {</div>
|
|
<div class="line"><a id="l13942" name="l13942"></a><span class="lineno">13942</span> m_preferences.shouldRedirectStdOut = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l13943" name="l13943"></a><span class="lineno">13943</span> m_preferences.shouldReportAllAssertions = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13944" name="l13944"></a><span class="lineno">13944</span> m_shouldStoreSuccesfulAssertions = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l13945" name="l13945"></a><span class="lineno">13945</span> }</div>
|
|
<div class="line"><a id="l13946" name="l13946"></a><span class="lineno">13946</span> </div>
|
|
<div class="line"><a id="l13947" name="l13947"></a><span class="lineno">13947</span> <span class="keyword">static</span> std::string getDescription() {</div>
|
|
<div class="line"><a id="l13948" name="l13948"></a><span class="lineno">13948</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l13949" name="l13949"></a><span class="lineno">13949</span> <span class="keywordflow">return</span> <span class="stringliteral">"Reports test results in the Generic Test Data SonarQube XML format"</span>s;</div>
|
|
<div class="line"><a id="l13950" name="l13950"></a><span class="lineno">13950</span> }</div>
|
|
<div class="line"><a id="l13951" name="l13951"></a><span class="lineno">13951</span> </div>
|
|
<div class="line"><a id="l13952" name="l13952"></a><span class="lineno">13952</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& testRunInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l13953" name="l13953"></a><span class="lineno">13953</span> </div>
|
|
<div class="line"><a id="l13954" name="l13954"></a><span class="lineno">13954</span> <span class="keywordtype">void</span> testRunEndedCumulative()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l13955" name="l13955"></a><span class="lineno">13955</span> writeRun( *m_testRun );</div>
|
|
<div class="line"><a id="l13956" name="l13956"></a><span class="lineno">13956</span> xml.endElement();</div>
|
|
<div class="line"><a id="l13957" name="l13957"></a><span class="lineno">13957</span> }</div>
|
|
<div class="line"><a id="l13958" name="l13958"></a><span class="lineno">13958</span> </div>
|
|
<div class="line"><a id="l13959" name="l13959"></a><span class="lineno">13959</span> <span class="keywordtype">void</span> writeRun( TestRunNode <span class="keyword">const</span>& runNode );</div>
|
|
<div class="line"><a id="l13960" name="l13960"></a><span class="lineno">13960</span> </div>
|
|
<div class="line"><a id="l13961" name="l13961"></a><span class="lineno">13961</span> <span class="keywordtype">void</span> writeTestFile(StringRef filename, std::vector<TestCaseNode const*> <span class="keyword">const</span>& testCaseNodes);</div>
|
|
<div class="line"><a id="l13962" name="l13962"></a><span class="lineno">13962</span> </div>
|
|
<div class="line"><a id="l13963" name="l13963"></a><span class="lineno">13963</span> <span class="keywordtype">void</span> writeTestCase(TestCaseNode <span class="keyword">const</span>& testCaseNode);</div>
|
|
<div class="line"><a id="l13964" name="l13964"></a><span class="lineno">13964</span> </div>
|
|
<div class="line"><a id="l13965" name="l13965"></a><span class="lineno">13965</span> <span class="keywordtype">void</span> writeSection(std::string <span class="keyword">const</span>& rootName, SectionNode <span class="keyword">const</span>& sectionNode, <span class="keywordtype">bool</span> okToFail);</div>
|
|
<div class="line"><a id="l13966" name="l13966"></a><span class="lineno">13966</span> </div>
|
|
<div class="line"><a id="l13967" name="l13967"></a><span class="lineno">13967</span> <span class="keywordtype">void</span> writeAssertions(SectionNode <span class="keyword">const</span>& sectionNode, <span class="keywordtype">bool</span> okToFail);</div>
|
|
<div class="line"><a id="l13968" name="l13968"></a><span class="lineno">13968</span> </div>
|
|
<div class="line"><a id="l13969" name="l13969"></a><span class="lineno">13969</span> <span class="keywordtype">void</span> writeAssertion(AssertionStats <span class="keyword">const</span>& stats, <span class="keywordtype">bool</span> okToFail);</div>
|
|
<div class="line"><a id="l13970" name="l13970"></a><span class="lineno">13970</span> </div>
|
|
<div class="line"><a id="l13971" name="l13971"></a><span class="lineno">13971</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l13972" name="l13972"></a><span class="lineno">13972</span> XmlWriter xml;</div>
|
|
<div class="line"><a id="l13973" name="l13973"></a><span class="lineno">13973</span> };</div>
|
|
<div class="line"><a id="l13974" name="l13974"></a><span class="lineno">13974</span> </div>
|
|
<div class="line"><a id="l13975" name="l13975"></a><span class="lineno">13975</span> </div>
|
|
<div class="line"><a id="l13976" name="l13976"></a><span class="lineno">13976</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l13977" name="l13977"></a><span class="lineno">13977</span> </div>
|
|
<div class="line"><a id="l13978" name="l13978"></a><span class="lineno">13978</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_SONARQUBE_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13979" name="l13979"></a><span class="lineno">13979</span> </div>
|
|
<div class="line"><a id="l13980" name="l13980"></a><span class="lineno">13980</span> </div>
|
|
<div class="line"><a id="l13981" name="l13981"></a><span class="lineno">13981</span><span class="preprocessor">#ifndef CATCH_REPORTER_TAP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13982" name="l13982"></a><span class="lineno">13982</span><span class="preprocessor">#define CATCH_REPORTER_TAP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l13983" name="l13983"></a><span class="lineno">13983</span> </div>
|
|
<div class="line"><a id="l13984" name="l13984"></a><span class="lineno">13984</span> </div>
|
|
<div class="line"><a id="l13985" name="l13985"></a><span class="lineno">13985</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l13986" name="l13986"></a><span class="lineno">13986</span> </div>
|
|
<div class="line"><a id="l13987" name="l13987"></a><span class="lineno">13987</span> <span class="keyword">class </span>TAPReporter final : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l13988" name="l13988"></a><span class="lineno">13988</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l13989" name="l13989"></a><span class="lineno">13989</span> TAPReporter( ReporterConfig&& config ):</div>
|
|
<div class="line"><a id="l13990" name="l13990"></a><span class="lineno">13990</span> StreamingReporterBase( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(config) ) {</div>
|
|
<div class="line"><a id="l13991" name="l13991"></a><span class="lineno">13991</span> m_preferences.shouldReportAllAssertions = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l13992" name="l13992"></a><span class="lineno">13992</span> }</div>
|
|
<div class="line"><a id="l13993" name="l13993"></a><span class="lineno">13993</span> </div>
|
|
<div class="line"><a id="l13994" name="l13994"></a><span class="lineno">13994</span> <span class="keyword">static</span> std::string getDescription() {</div>
|
|
<div class="line"><a id="l13995" name="l13995"></a><span class="lineno">13995</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l13996" name="l13996"></a><span class="lineno">13996</span> <span class="keywordflow">return</span> <span class="stringliteral">"Reports test results in TAP format, suitable for test harnesses"</span>s;</div>
|
|
<div class="line"><a id="l13997" name="l13997"></a><span class="lineno">13997</span> }</div>
|
|
<div class="line"><a id="l13998" name="l13998"></a><span class="lineno">13998</span> </div>
|
|
<div class="line"><a id="l13999" name="l13999"></a><span class="lineno">13999</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& testInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14000" name="l14000"></a><span class="lineno">14000</span> </div>
|
|
<div class="line"><a id="l14001" name="l14001"></a><span class="lineno">14001</span> <span class="keywordtype">void</span> noMatchingTestCases( StringRef unmatchedSpec ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14002" name="l14002"></a><span class="lineno">14002</span> </div>
|
|
<div class="line"><a id="l14003" name="l14003"></a><span class="lineno">14003</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& _assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14004" name="l14004"></a><span class="lineno">14004</span> </div>
|
|
<div class="line"><a id="l14005" name="l14005"></a><span class="lineno">14005</span> <span class="keywordtype">void</span> testRunEnded(TestRunStats <span class="keyword">const</span>& _testRunStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14006" name="l14006"></a><span class="lineno">14006</span> </div>
|
|
<div class="line"><a id="l14007" name="l14007"></a><span class="lineno">14007</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l14008" name="l14008"></a><span class="lineno">14008</span> std::size_t counter = 0;</div>
|
|
<div class="line"><a id="l14009" name="l14009"></a><span class="lineno">14009</span> };</div>
|
|
<div class="line"><a id="l14010" name="l14010"></a><span class="lineno">14010</span> </div>
|
|
<div class="line"><a id="l14011" name="l14011"></a><span class="lineno">14011</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l14012" name="l14012"></a><span class="lineno">14012</span> </div>
|
|
<div class="line"><a id="l14013" name="l14013"></a><span class="lineno">14013</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_TAP_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14014" name="l14014"></a><span class="lineno">14014</span> </div>
|
|
<div class="line"><a id="l14015" name="l14015"></a><span class="lineno">14015</span> </div>
|
|
<div class="line"><a id="l14016" name="l14016"></a><span class="lineno">14016</span><span class="preprocessor">#ifndef CATCH_REPORTER_TEAMCITY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14017" name="l14017"></a><span class="lineno">14017</span><span class="preprocessor">#define CATCH_REPORTER_TEAMCITY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14018" name="l14018"></a><span class="lineno">14018</span> </div>
|
|
<div class="line"><a id="l14019" name="l14019"></a><span class="lineno">14019</span> </div>
|
|
<div class="line"><a id="l14020" name="l14020"></a><span class="lineno">14020</span><span class="preprocessor">#include <cstring></span></div>
|
|
<div class="line"><a id="l14021" name="l14021"></a><span class="lineno">14021</span> </div>
|
|
<div class="line"><a id="l14022" name="l14022"></a><span class="lineno">14022</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l14023" name="l14023"></a><span class="lineno">14023</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
|
|
<div class="line"><a id="l14024" name="l14024"></a><span class="lineno">14024</span><span class="preprocessor"># pragma clang diagnostic ignored "-Wpadded"</span></div>
|
|
<div class="line"><a id="l14025" name="l14025"></a><span class="lineno">14025</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l14026" name="l14026"></a><span class="lineno">14026</span> </div>
|
|
<div class="line"><a id="l14027" name="l14027"></a><span class="lineno">14027</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l14028" name="l14028"></a><span class="lineno">14028</span> </div>
|
|
<div class="line"><a id="l14029" name="l14029"></a><span class="lineno">14029</span> <span class="keyword">class </span>TeamCityReporter final : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l14030" name="l14030"></a><span class="lineno">14030</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l14031" name="l14031"></a><span class="lineno">14031</span> TeamCityReporter( ReporterConfig&& _config )</div>
|
|
<div class="line"><a id="l14032" name="l14032"></a><span class="lineno">14032</span> : StreamingReporterBase( <a class="code hl_define" href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a>(_config) )</div>
|
|
<div class="line"><a id="l14033" name="l14033"></a><span class="lineno">14033</span> {</div>
|
|
<div class="line"><a id="l14034" name="l14034"></a><span class="lineno">14034</span> m_preferences.shouldRedirectStdOut = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l14035" name="l14035"></a><span class="lineno">14035</span> }</div>
|
|
<div class="line"><a id="l14036" name="l14036"></a><span class="lineno">14036</span> </div>
|
|
<div class="line"><a id="l14037" name="l14037"></a><span class="lineno">14037</span> ~TeamCityReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14038" name="l14038"></a><span class="lineno">14038</span> </div>
|
|
<div class="line"><a id="l14039" name="l14039"></a><span class="lineno">14039</span> <span class="keyword">static</span> std::string getDescription() {</div>
|
|
<div class="line"><a id="l14040" name="l14040"></a><span class="lineno">14040</span> <span class="keyword">using namespace </span>std::string_literals;</div>
|
|
<div class="line"><a id="l14041" name="l14041"></a><span class="lineno">14041</span> <span class="keywordflow">return</span> <span class="stringliteral">"Reports test results as TeamCity service messages"</span>s;</div>
|
|
<div class="line"><a id="l14042" name="l14042"></a><span class="lineno">14042</span> }</div>
|
|
<div class="line"><a id="l14043" name="l14043"></a><span class="lineno">14043</span> </div>
|
|
<div class="line"><a id="l14044" name="l14044"></a><span class="lineno">14044</span> <span class="keywordtype">void</span> testRunStarting( TestRunInfo <span class="keyword">const</span>& runInfo ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14045" name="l14045"></a><span class="lineno">14045</span> <span class="keywordtype">void</span> testRunEnded( TestRunStats <span class="keyword">const</span>& runStats ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14046" name="l14046"></a><span class="lineno">14046</span> </div>
|
|
<div class="line"><a id="l14047" name="l14047"></a><span class="lineno">14047</span> </div>
|
|
<div class="line"><a id="l14048" name="l14048"></a><span class="lineno">14048</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14049" name="l14049"></a><span class="lineno">14049</span> </div>
|
|
<div class="line"><a id="l14050" name="l14050"></a><span class="lineno">14050</span> <span class="keywordtype">void</span> sectionStarting(SectionInfo <span class="keyword">const</span>& sectionInfo)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l14051" name="l14051"></a><span class="lineno">14051</span> m_headerPrintedForThisSection = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l14052" name="l14052"></a><span class="lineno">14052</span> StreamingReporterBase::sectionStarting( sectionInfo );</div>
|
|
<div class="line"><a id="l14053" name="l14053"></a><span class="lineno">14053</span> }</div>
|
|
<div class="line"><a id="l14054" name="l14054"></a><span class="lineno">14054</span> </div>
|
|
<div class="line"><a id="l14055" name="l14055"></a><span class="lineno">14055</span> <span class="keywordtype">void</span> testCaseStarting(TestCaseInfo <span class="keyword">const</span>& testInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14056" name="l14056"></a><span class="lineno">14056</span> </div>
|
|
<div class="line"><a id="l14057" name="l14057"></a><span class="lineno">14057</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& testCaseStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14058" name="l14058"></a><span class="lineno">14058</span> </div>
|
|
<div class="line"><a id="l14059" name="l14059"></a><span class="lineno">14059</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l14060" name="l14060"></a><span class="lineno">14060</span> <span class="keywordtype">void</span> printSectionHeader(std::ostream& os);</div>
|
|
<div class="line"><a id="l14061" name="l14061"></a><span class="lineno">14061</span> </div>
|
|
<div class="line"><a id="l14062" name="l14062"></a><span class="lineno">14062</span> <span class="keywordtype">bool</span> m_headerPrintedForThisSection = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l14063" name="l14063"></a><span class="lineno">14063</span> Timer m_testTimer;</div>
|
|
<div class="line"><a id="l14064" name="l14064"></a><span class="lineno">14064</span> };</div>
|
|
<div class="line"><a id="l14065" name="l14065"></a><span class="lineno">14065</span> </div>
|
|
<div class="line"><a id="l14066" name="l14066"></a><span class="lineno">14066</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l14067" name="l14067"></a><span class="lineno">14067</span> </div>
|
|
<div class="line"><a id="l14068" name="l14068"></a><span class="lineno">14068</span><span class="preprocessor">#ifdef __clang__</span></div>
|
|
<div class="line"><a id="l14069" name="l14069"></a><span class="lineno">14069</span><span class="preprocessor"># pragma clang diagnostic pop</span></div>
|
|
<div class="line"><a id="l14070" name="l14070"></a><span class="lineno">14070</span><span class="preprocessor">#endif</span></div>
|
|
<div class="line"><a id="l14071" name="l14071"></a><span class="lineno">14071</span> </div>
|
|
<div class="line"><a id="l14072" name="l14072"></a><span class="lineno">14072</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_TEAMCITY_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14073" name="l14073"></a><span class="lineno">14073</span> </div>
|
|
<div class="line"><a id="l14074" name="l14074"></a><span class="lineno">14074</span> </div>
|
|
<div class="line"><a id="l14075" name="l14075"></a><span class="lineno">14075</span><span class="preprocessor">#ifndef CATCH_REPORTER_XML_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14076" name="l14076"></a><span class="lineno">14076</span><span class="preprocessor">#define CATCH_REPORTER_XML_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14077" name="l14077"></a><span class="lineno">14077</span> </div>
|
|
<div class="line"><a id="l14078" name="l14078"></a><span class="lineno">14078</span> </div>
|
|
<div class="line"><a id="l14079" name="l14079"></a><span class="lineno">14079</span> </div>
|
|
<div class="line"><a id="l14080" name="l14080"></a><span class="lineno">14080</span> </div>
|
|
<div class="line"><a id="l14081" name="l14081"></a><span class="lineno">14081</span><span class="keyword">namespace </span>Catch {</div>
|
|
<div class="line"><a id="l14082" name="l14082"></a><span class="lineno">14082</span> <span class="keyword">class </span>XmlReporter : <span class="keyword">public</span> StreamingReporterBase {</div>
|
|
<div class="line"><a id="l14083" name="l14083"></a><span class="lineno">14083</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l14084" name="l14084"></a><span class="lineno">14084</span> XmlReporter(ReporterConfig&& _config);</div>
|
|
<div class="line"><a id="l14085" name="l14085"></a><span class="lineno">14085</span> </div>
|
|
<div class="line"><a id="l14086" name="l14086"></a><span class="lineno">14086</span> ~XmlReporter() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14087" name="l14087"></a><span class="lineno">14087</span> </div>
|
|
<div class="line"><a id="l14088" name="l14088"></a><span class="lineno">14088</span> <span class="keyword">static</span> std::string getDescription();</div>
|
|
<div class="line"><a id="l14089" name="l14089"></a><span class="lineno">14089</span> </div>
|
|
<div class="line"><a id="l14090" name="l14090"></a><span class="lineno">14090</span> <span class="keyword">virtual</span> std::string getStylesheetRef() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a id="l14091" name="l14091"></a><span class="lineno">14091</span> </div>
|
|
<div class="line"><a id="l14092" name="l14092"></a><span class="lineno">14092</span> <span class="keywordtype">void</span> writeSourceInfo(SourceLineInfo <span class="keyword">const</span>& sourceInfo);</div>
|
|
<div class="line"><a id="l14093" name="l14093"></a><span class="lineno">14093</span> </div>
|
|
<div class="line"><a id="l14094" name="l14094"></a><span class="lineno">14094</span> <span class="keyword">public</span>: <span class="comment">// StreamingReporterBase</span></div>
|
|
<div class="line"><a id="l14095" name="l14095"></a><span class="lineno">14095</span> </div>
|
|
<div class="line"><a id="l14096" name="l14096"></a><span class="lineno">14096</span> <span class="keywordtype">void</span> testRunStarting(TestRunInfo <span class="keyword">const</span>& testInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14097" name="l14097"></a><span class="lineno">14097</span> </div>
|
|
<div class="line"><a id="l14098" name="l14098"></a><span class="lineno">14098</span> <span class="keywordtype">void</span> testCaseStarting(TestCaseInfo <span class="keyword">const</span>& testInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14099" name="l14099"></a><span class="lineno">14099</span> </div>
|
|
<div class="line"><a id="l14100" name="l14100"></a><span class="lineno">14100</span> <span class="keywordtype">void</span> sectionStarting(SectionInfo <span class="keyword">const</span>& sectionInfo) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14101" name="l14101"></a><span class="lineno">14101</span> </div>
|
|
<div class="line"><a id="l14102" name="l14102"></a><span class="lineno">14102</span> <span class="keywordtype">void</span> assertionStarting(AssertionInfo <span class="keyword">const</span>&) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14103" name="l14103"></a><span class="lineno">14103</span> </div>
|
|
<div class="line"><a id="l14104" name="l14104"></a><span class="lineno">14104</span> <span class="keywordtype">void</span> assertionEnded(AssertionStats <span class="keyword">const</span>& assertionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14105" name="l14105"></a><span class="lineno">14105</span> </div>
|
|
<div class="line"><a id="l14106" name="l14106"></a><span class="lineno">14106</span> <span class="keywordtype">void</span> sectionEnded(SectionStats <span class="keyword">const</span>& sectionStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14107" name="l14107"></a><span class="lineno">14107</span> </div>
|
|
<div class="line"><a id="l14108" name="l14108"></a><span class="lineno">14108</span> <span class="keywordtype">void</span> testCaseEnded(TestCaseStats <span class="keyword">const</span>& testCaseStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14109" name="l14109"></a><span class="lineno">14109</span> </div>
|
|
<div class="line"><a id="l14110" name="l14110"></a><span class="lineno">14110</span> <span class="keywordtype">void</span> testRunEnded(TestRunStats <span class="keyword">const</span>& testRunStats) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14111" name="l14111"></a><span class="lineno">14111</span> </div>
|
|
<div class="line"><a id="l14112" name="l14112"></a><span class="lineno">14112</span> <span class="keywordtype">void</span> benchmarkPreparing( StringRef name ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14113" name="l14113"></a><span class="lineno">14113</span> <span class="keywordtype">void</span> benchmarkStarting(BenchmarkInfo <span class="keyword">const</span>&) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14114" name="l14114"></a><span class="lineno">14114</span> <span class="keywordtype">void</span> benchmarkEnded(BenchmarkStats<> <span class="keyword">const</span>&) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14115" name="l14115"></a><span class="lineno">14115</span> <span class="keywordtype">void</span> benchmarkFailed( StringRef error ) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14116" name="l14116"></a><span class="lineno">14116</span> </div>
|
|
<div class="line"><a id="l14117" name="l14117"></a><span class="lineno">14117</span> <span class="keywordtype">void</span> listReporters(std::vector<ReporterDescription> <span class="keyword">const</span>& descriptions) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14118" name="l14118"></a><span class="lineno">14118</span> <span class="keywordtype">void</span> listListeners(std::vector<ListenerDescription> <span class="keyword">const</span>& descriptions) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14119" name="l14119"></a><span class="lineno">14119</span> <span class="keywordtype">void</span> listTests(std::vector<TestCaseHandle> <span class="keyword">const</span>& tests) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14120" name="l14120"></a><span class="lineno">14120</span> <span class="keywordtype">void</span> listTags(std::vector<TagInfo> <span class="keyword">const</span>& tags) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l14121" name="l14121"></a><span class="lineno">14121</span> </div>
|
|
<div class="line"><a id="l14122" name="l14122"></a><span class="lineno">14122</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l14123" name="l14123"></a><span class="lineno">14123</span> Timer m_testCaseTimer;</div>
|
|
<div class="line"><a id="l14124" name="l14124"></a><span class="lineno">14124</span> XmlWriter m_xml;</div>
|
|
<div class="line"><a id="l14125" name="l14125"></a><span class="lineno">14125</span> <span class="keywordtype">int</span> m_sectionDepth = 0;</div>
|
|
<div class="line"><a id="l14126" name="l14126"></a><span class="lineno">14126</span> };</div>
|
|
<div class="line"><a id="l14127" name="l14127"></a><span class="lineno">14127</span> </div>
|
|
<div class="line"><a id="l14128" name="l14128"></a><span class="lineno">14128</span>} <span class="comment">// end namespace Catch</span></div>
|
|
<div class="line"><a id="l14129" name="l14129"></a><span class="lineno">14129</span> </div>
|
|
<div class="line"><a id="l14130" name="l14130"></a><span class="lineno">14130</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTER_XML_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14131" name="l14131"></a><span class="lineno">14131</span> </div>
|
|
<div class="line"><a id="l14132" name="l14132"></a><span class="lineno">14132</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_REPORTERS_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14133" name="l14133"></a><span class="lineno">14133</span> </div>
|
|
<div class="line"><a id="l14134" name="l14134"></a><span class="lineno">14134</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_ALL_HPP_INCLUDED</span></div>
|
|
<div class="line"><a id="l14135" name="l14135"></a><span class="lineno">14135</span><span class="preprocessor">#endif </span><span class="comment">// CATCH_AMALGAMATED_HPP_INCLUDED</span></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a174ed3879abb714748caf24811434362"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a174ed3879abb714748caf24811434362">CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR</a></div><div class="ttdeci">#define CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR(id, op)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5485</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a322fbd7e3c1a27a823725d9959b57db5"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a322fbd7e3c1a27a823725d9959b57db5">CATCH_DEFINE_COMPARABLE_TRAIT</a></div><div class="ttdeci">#define CATCH_DEFINE_COMPARABLE_TRAIT(id, op)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5088</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a3b9fde7bed48606915ced702d38db7ce"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a3b9fde7bed48606915ced702d38db7ce">CarryBits</a></div><div class="ttdeci">#define CarryBits(x)</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a3caecf3cbc55848423d744df50d84d5b"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a3caecf3cbc55848423d744df50d84d5b">CATCH_CATCH_ANON</a></div><div class="ttdeci">#define CATCH_CATCH_ANON(type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:522</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a62516a9b52be8207f277f4adc2999207"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a62516a9b52be8207f277f4adc2999207">CATCH_MOVE</a></div><div class="ttdeci">#define CATCH_MOVE(...)</div><div class="ttdoc">Replacement for std::move with better compile time performance.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:610</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_a7a076eb1c404d5e057d159c9b271cc6f"><div class="ttname"><a href="catch__amalgamated_8hpp.html#a7a076eb1c404d5e057d159c9b271cc6f">CATCH_EXPORT</a></div><div class="ttdeci">#define CATCH_EXPORT</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:548</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_aabca54677fdc77aa49edd62439e706b3"><div class="ttname"><a href="catch__amalgamated_8hpp.html#aabca54677fdc77aa49edd62439e706b3">CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR</a></div><div class="ttdeci">#define CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR(op)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5537</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_aae0cdd5d2f0ac242b9ab18b0f66ba26e"><div class="ttname"><a href="catch__amalgamated_8hpp.html#aae0cdd5d2f0ac242b9ab18b0f66ba26e">operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &, Catch_global_namespace_dummy)</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_ab1d9cd725d9c9eab17a8e9e1c6af1785"><div class="ttname"><a href="catch__amalgamated_8hpp.html#ab1d9cd725d9c9eab17a8e9e1c6af1785">SizedUnsignedTypeHelper</a></div><div class="ttdeci">#define SizedUnsignedTypeHelper(TYPE)</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_ab76c2d22e571ab1a828f5c60d2f485a6"><div class="ttname"><a href="catch__amalgamated_8hpp.html#ab76c2d22e571ab1a828f5c60d2f485a6">CATCH_TRY</a></div><div class="ttdeci">#define CATCH_TRY</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:520</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_acedf14a4dca7fdf78bd48b59bc4d954a"><div class="ttname"><a href="catch__amalgamated_8hpp.html#acedf14a4dca7fdf78bd48b59bc4d954a">CATCH_FORWARD</a></div><div class="ttdeci">#define CATCH_FORWARD(...)</div><div class="ttdoc">Replacement for std::forward with better compile time performance.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:613</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_aea22592bf22edde6e70861c9b3b2bf51"><div class="ttname"><a href="catch__amalgamated_8hpp.html#aea22592bf22edde6e70861c9b3b2bf51">CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR</a></div><div class="ttdeci">#define CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR(id, op)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5431</div></div>
|
|
<div class="ttc" id="acatch__amalgamated_8hpp_html_afa0ae14e70806dca4f8bf06d06645fa9"><div class="ttname"><a href="catch__amalgamated_8hpp.html#afa0ae14e70806dca4f8bf06d06645fa9">CATCH_CATCH_ALL</a></div><div class="ttdeci">#define CATCH_CATCH_ALL</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:521</div></div>
|
|
<div class="ttc" id="aclassApprox_html_a02b674bd81e29e1cb9d9410a7289ebc5"><div class="ttname"><a href="classApprox.html#a02b674bd81e29e1cb9d9410a7289ebc5">Approx::Approx</a></div><div class="ttdeci">Approx(double value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:566</div></div>
|
|
<div class="ttc" id="aclassApprox_html_a317617c0c402f7b7a4aa3c78eadd6cc8"><div class="ttname"><a href="classApprox.html#a317617c0c402f7b7a4aa3c78eadd6cc8">Approx::setMargin</a></div><div class="ttdeci">void setMargin(double margin)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:597</div></div>
|
|
<div class="ttc" id="aclassApprox_html_a517d8133c80266dae10f7a092dea7da8"><div class="ttname"><a href="classApprox.html#a517d8133c80266dae10f7a092dea7da8">Approx::operator-</a></div><div class="ttdeci">Approx operator-() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:577</div></div>
|
|
<div class="ttc" id="aclassApprox_html_a71ffb8099b3b2530a99724e0d0b87a4f"><div class="ttname"><a href="classApprox.html#a71ffb8099b3b2530a99724e0d0b87a4f">Approx::equalityComparisonImpl</a></div><div class="ttdeci">bool equalityComparisonImpl(double other) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:590</div></div>
|
|
<div class="ttc" id="aclassApprox_html_aa1f094872e9d086ded948d4f138cb2fb"><div class="ttname"><a href="classApprox.html#aa1f094872e9d086ded948d4f138cb2fb">Approx::setEpsilon</a></div><div class="ttdeci">void setEpsilon(double epsilon)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:604</div></div>
|
|
<div class="ttc" id="aclassApprox_html_aae48202f7bf38b6e3ebfaac7ef46b7af"><div class="ttname"><a href="classApprox.html#aae48202f7bf38b6e3ebfaac7ef46b7af">Approx::custom</a></div><div class="ttdeci">static Approx custom()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:573</div></div>
|
|
<div class="ttc" id="aclassApprox_html_ab9b569c030c0399a187f96e7d95e501f"><div class="ttname"><a href="classApprox.html#ab9b569c030c0399a187f96e7d95e501f">Approx::epsilon</a></div><div class="ttdeci">Approx & epsilon(T const &newEpsilon)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3186</div></div>
|
|
<div class="ttc" id="aclassApprox_html_af4d5b0df9462561dacb65f19b9c770c3"><div class="ttname"><a href="classApprox.html#af4d5b0df9462561dacb65f19b9c770c3">Approx::margin</a></div><div class="ttdeci">Approx & margin(T const &newMargin)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3193</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html"><div class="ttname"><a href="classCatch_1_1Approx.html">Catch::Approx</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3115</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a02b674bd81e29e1cb9d9410a7289ebc5"><div class="ttname"><a href="classCatch_1_1Approx.html#a02b674bd81e29e1cb9d9410a7289ebc5">Catch::Approx::Approx</a></div><div class="ttdeci">Approx(double value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:566</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a07c1b6a3fc58c7b724aa0ef082e32704"><div class="ttname"><a href="classCatch_1_1Approx.html#a07c1b6a3fc58c7b724aa0ef082e32704">Catch::Approx::Approx</a></div><div class="ttdeci">Approx(T const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3140</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a1a729a2458e9f3e3b6d011ec962ca553"><div class="ttname"><a href="classCatch_1_1Approx.html#a1a729a2458e9f3e3b6d011ec962ca553">Catch::Approx::m_value</a></div><div class="ttdeci">double m_value</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3211</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a317617c0c402f7b7a4aa3c78eadd6cc8"><div class="ttname"><a href="classCatch_1_1Approx.html#a317617c0c402f7b7a4aa3c78eadd6cc8">Catch::Approx::setMargin</a></div><div class="ttdeci">void setMargin(double margin)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:597</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a64d933793282cb68a9e4934637f900fe"><div class="ttname"><a href="classCatch_1_1Approx.html#a64d933793282cb68a9e4934637f900fe">Catch::Approx::operator()</a></div><div class="ttdeci">Approx operator()(T const &value) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3131</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a71ffb8099b3b2530a99724e0d0b87a4f"><div class="ttname"><a href="classCatch_1_1Approx.html#a71ffb8099b3b2530a99724e0d0b87a4f">Catch::Approx::equalityComparisonImpl</a></div><div class="ttdeci">bool equalityComparisonImpl(double other) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:590</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a81cd951fe47d9e6f36e562783ac9fcc7"><div class="ttname"><a href="classCatch_1_1Approx.html#a81cd951fe47d9e6f36e562783ac9fcc7">Catch::Approx::m_epsilon</a></div><div class="ttdeci">double m_epsilon</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3208</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_a8b01c1b0697e834c6df637b5163a7dac"><div class="ttname"><a href="classCatch_1_1Approx.html#a8b01c1b0697e834c6df637b5163a7dac">Catch::Approx::scale</a></div><div class="ttdeci">Approx & scale(T const &newScale)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3200</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_aa1f094872e9d086ded948d4f138cb2fb"><div class="ttname"><a href="classCatch_1_1Approx.html#aa1f094872e9d086ded948d4f138cb2fb">Catch::Approx::setEpsilon</a></div><div class="ttdeci">void setEpsilon(double epsilon)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:604</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_aaa316206e97c57ce6a5ae6ddd3115114"><div class="ttname"><a href="classCatch_1_1Approx.html#aaa316206e97c57ce6a5ae6ddd3115114">Catch::Approx::m_scale</a></div><div class="ttdeci">double m_scale</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3210</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_aae48202f7bf38b6e3ebfaac7ef46b7af"><div class="ttname"><a href="classCatch_1_1Approx.html#aae48202f7bf38b6e3ebfaac7ef46b7af">Catch::Approx::custom</a></div><div class="ttdeci">static Approx custom()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:573</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_ab38782a37d09b527ca5e126dbf433dda"><div class="ttname"><a href="classCatch_1_1Approx.html#ab38782a37d09b527ca5e126dbf433dda">Catch::Approx::operator==</a></div><div class="ttdeci">friend bool operator==(const T &lhs, Approx const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3145</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_ab9b569c030c0399a187f96e7d95e501f"><div class="ttname"><a href="classCatch_1_1Approx.html#ab9b569c030c0399a187f96e7d95e501f">Catch::Approx::epsilon</a></div><div class="ttdeci">Approx & epsilon(T const &newEpsilon)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3186</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_ace2c687f16a779c5ff3740f1f2a044b3"><div class="ttname"><a href="classCatch_1_1Approx.html#ace2c687f16a779c5ff3740f1f2a044b3">Catch::Approx::m_margin</a></div><div class="ttdeci">double m_margin</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3209</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Approx_html_af4d5b0df9462561dacb65f19b9c770c3"><div class="ttname"><a href="classCatch_1_1Approx.html#af4d5b0df9462561dacb65f19b9c770c3">Catch::Approx::margin</a></div><div class="ttdeci">Approx & margin(T const &newMargin)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3193</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html">Catch::AssertionHandler</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5617</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_a1e839d810f6ac0fa6d127fe8350175ed"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#a1e839d810f6ac0fa6d127fe8350175ed">Catch::AssertionHandler::~AssertionHandler</a></div><div class="ttdeci">~AssertionHandler()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5629</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_a5a756818dff781c155e8eb970d1d4c68"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#a5a756818dff781c155e8eb970d1d4c68">Catch::AssertionHandler::m_completed</a></div><div class="ttdeci">bool m_completed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5620</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_a74627e1e399b026e9acbaf95ea673643"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#a74627e1e399b026e9acbaf95ea673643">Catch::AssertionHandler::AssertionHandler</a></div><div class="ttdeci">AssertionHandler(StringRef macroName, SourceLineInfo const &lineInfo, StringRef capturedExpression, ResultDisposition::Flags resultDisposition)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2529</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_a8203c08a43a3761b5f400ee6587fad55"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#a8203c08a43a3761b5f400ee6587fad55">Catch::AssertionHandler::m_reaction</a></div><div class="ttdeci">AssertionReaction m_reaction</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5619</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_ac061e1d051135385f450973b676b2579"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#ac061e1d051135385f450973b676b2579">Catch::AssertionHandler::handleExpr</a></div><div class="ttdeci">constexpr void handleExpr(ExprLhs< T > const &expr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5637</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_ad171e8724bb771d97949b7270f400303"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#ad171e8724bb771d97949b7270f400303">Catch::AssertionHandler::m_assertionInfo</a></div><div class="ttdeci">AssertionInfo m_assertionInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5618</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionHandler_html_aea5283ee36124ce5c51dc2a697b22a39"><div class="ttname"><a href="classCatch_1_1AssertionHandler.html#aea5283ee36124ce5c51dc2a697b22a39">Catch::AssertionHandler::m_resultCapture</a></div><div class="ttdeci">IResultCapture & m_resultCapture</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5621</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html"><div class="ttname"><a href="classCatch_1_1AssertionResult.html">Catch::AssertionResult</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3338</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_a046d7c6ecdbabcfe0bc212699bb87024"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#a046d7c6ecdbabcfe0bc212699bb87024">Catch::AssertionResult::getMessage</a></div><div class="ttdeci">StringRef getMessage() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:710</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_a06dd13522bd42af8402bb3903787d844"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#a06dd13522bd42af8402bb3903787d844">Catch::AssertionResult::getTestMacroName</a></div><div class="ttdeci">StringRef getTestMacroName() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:717</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_a26a777f3959353c729544cb2ace0d279"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#a26a777f3959353c729544cb2ace0d279">Catch::AssertionResult::getExpression</a></div><div class="ttdeci">std::string getExpression() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:673</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_a3e7236f73a51d6fc8bb9dfdefcee7772"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#a3e7236f73a51d6fc8bb9dfdefcee7772">Catch::AssertionResult::m_info</a></div><div class="ttdeci">AssertionInfo m_info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3357</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_a78c43506c2b3d8cc1fb141a97d09ec94"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#a78c43506c2b3d8cc1fb141a97d09ec94">Catch::AssertionResult::hasExpandedExpression</a></div><div class="ttdeci">bool hasExpandedExpression() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:699</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aa4d3fdbfe276a69a035762dbb790800f"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aa4d3fdbfe276a69a035762dbb790800f">Catch::AssertionResult::getSourceInfo</a></div><div class="ttdeci">SourceLineInfo getSourceInfo() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:713</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aaa46070791a6c07caaed86229b8d9d75"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aaa46070791a6c07caaed86229b8d9d75">Catch::AssertionResult::getExpandedExpression</a></div><div class="ttdeci">std::string getExpandedExpression() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:703</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aac35a0ca42d33bff6467c76573730f5e"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aac35a0ca42d33bff6467c76573730f5e">Catch::AssertionResult::getExpressionInMacro</a></div><div class="ttdeci">std::string getExpressionInMacro() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:686</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aae37064b401919fa8ac480ef86cca924"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aae37064b401919fa8ac480ef86cca924">Catch::AssertionResult::hasMessage</a></div><div class="ttdeci">bool hasMessage() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:669</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aba37b4fef1015989df2136592958e984"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aba37b4fef1015989df2136592958e984">Catch::AssertionResult::hasExpression</a></div><div class="ttdeci">bool hasExpression() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:665</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_ac5cc872b721d5fb65d87221d30b22fdd"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#ac5cc872b721d5fb65d87221d30b22fdd">Catch::AssertionResult::succeeded</a></div><div class="ttdeci">bool succeeded() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:652</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_ac810750194e1722489d2fd16e8c6a4a8"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#ac810750194e1722489d2fd16e8c6a4a8">Catch::AssertionResult::getResultType</a></div><div class="ttdeci">ResultWas::OfType getResultType() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:661</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_add3455b8bbedb0d643e18da67c66b4f7"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#add3455b8bbedb0d643e18da67c66b4f7">Catch::AssertionResult::m_resultData</a></div><div class="ttdeci">AssertionResultData m_resultData</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3358</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_ae39658b71c4afc3c8a859043b0e97027"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#ae39658b71c4afc3c8a859043b0e97027">Catch::AssertionResult::isOk</a></div><div class="ttdeci">bool isOk() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:657</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1AssertionResult_html_aea7b7b6894924f055ae23b6f2b89d43d"><div class="ttname"><a href="classCatch_1_1AssertionResult.html#aea7b7b6894924f055ae23b6f2b89d43d">Catch::AssertionResult::AssertionResult</a></div><div class="ttdeci">AssertionResult()=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html">Catch::BinaryExpr</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5334</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html_a306b29e77b48f9c538c5031a59adc4ce"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html#a306b29e77b48f9c538c5031a59adc4ce">Catch::BinaryExpr::m_lhs</a></div><div class="ttdeci">LhsT m_lhs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5335</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html_a54cb1629bf304ebe0c1560f4cc2bc186"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html#a54cb1629bf304ebe0c1560f4cc2bc186">Catch::BinaryExpr::m_rhs</a></div><div class="ttdeci">RhsT m_rhs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5337</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html_ab21dea40c53fd64d4f7a073dbe93ec95"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html#ab21dea40c53fd64d4f7a073dbe93ec95">Catch::BinaryExpr::m_op</a></div><div class="ttdeci">StringRef m_op</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5336</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html_ae8fd9b01257647d28205b3db2f9e34c4"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html#ae8fd9b01257647d28205b3db2f9e34c4">Catch::BinaryExpr::BinaryExpr</a></div><div class="ttdeci">constexpr BinaryExpr(bool comparisonResult, LhsT lhs, StringRef op, RhsT rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5345</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1BinaryExpr_html_af998022712d4bd3e4fc7ab9b8a38b445"><div class="ttname"><a href="classCatch_1_1BinaryExpr.html#af998022712d4bd3e4fc7ab9b8a38b445">Catch::BinaryExpr::streamReconstructedExpression</a></div><div class="ttdeci">void streamReconstructedExpression(std::ostream &os) const override</div><div class="ttdoc">This function has to be overriden by the derived class.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5339</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a0695ebf77f7cdcb344c73bcb3d9131e4"><div class="ttname"><a href="classCatch_1_1Capturer.html#a0695ebf77f7cdcb344c73bcb3d9131e4">Catch::Capturer::captureValue</a></div><div class="ttdeci">void captureValue(size_t index, std::string const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1066</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a1c3bea0fde97a7663ece4b81187fa9ed"><div class="ttname"><a href="classCatch_1_1Capturer.html#a1c3bea0fde97a7663ece4b81187fa9ed">Catch::Capturer::m_captured</a></div><div class="ttdeci">size_t m_captured</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4018</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a29edecce81d56837945ba2585c0ff941"><div class="ttname"><a href="classCatch_1_1Capturer.html#a29edecce81d56837945ba2585c0ff941">Catch::Capturer::m_resultCapture</a></div><div class="ttdeci">IResultCapture & m_resultCapture</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4017</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a60d08e6db2e54740bb2298bbbec3bc0b"><div class="ttname"><a href="classCatch_1_1Capturer.html#a60d08e6db2e54740bb2298bbbec3bc0b">Catch::Capturer::captureValues</a></div><div class="ttdeci">void captureValues(size_t index, T const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4030</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a6de9ab7fdd4f1e3cccbbb058d8e58d1d"><div class="ttname"><a href="classCatch_1_1Capturer.html#a6de9ab7fdd4f1e3cccbbb058d8e58d1d">Catch::Capturer::operator=</a></div><div class="ttdeci">Capturer & operator=(Capturer const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a76f2a097cfeb3042688300b81eb9bcbc"><div class="ttname"><a href="classCatch_1_1Capturer.html#a76f2a097cfeb3042688300b81eb9bcbc">Catch::Capturer::captureValues</a></div><div class="ttdeci">void captureValues(size_t index, T const &value, Ts const &... values)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4035</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_a86b0b27acc803a4e1310c10820f3038f"><div class="ttname"><a href="classCatch_1_1Capturer.html#a86b0b27acc803a4e1310c10820f3038f">Catch::Capturer::Capturer</a></div><div class="ttdeci">Capturer(StringRef macroName, SourceLineInfo const &lineInfo, ResultWas::OfType resultType, StringRef names)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:995</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_ab8010e6737ac7a1cdf1be9ab65220cb6"><div class="ttname"><a href="classCatch_1_1Capturer.html#ab8010e6737ac7a1cdf1be9ab65220cb6">Catch::Capturer::Capturer</a></div><div class="ttdeci">Capturer(Capturer const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Capturer_html_aefa14693d28906e5e7b06975af38aaed"><div class="ttname"><a href="classCatch_1_1Capturer.html#aefa14693d28906e5e7b06975af38aaed">Catch::Capturer::m_messages</a></div><div class="ttdeci">std::vector< MessageInfo > m_messages</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4016</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Arg_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Arg.html">Catch::Clara::Arg</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4730</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Arg_html_af51ed6fd1a7f911a814e9ea9992cbace"><div class="ttname"><a href="classCatch_1_1Clara_1_1Arg.html#af51ed6fd1a7f911a814e9ea9992cbace">Catch::Clara::Arg::parse</a></div><div class="ttdeci">Detail::InternalParseResult parse(std::string const &, Detail::TokenStream tokens) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2776</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Args_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Args.html">Catch::Clara::Args</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4879</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Args_html_a012a63b737ba7441a58274a339586117"><div class="ttname"><a href="classCatch_1_1Clara_1_1Args.html#a012a63b737ba7441a58274a339586117">Catch::Clara::Args::m_exeName</a></div><div class="ttdeci">StringRef m_exeName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4881</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Args_html_a09e56cf99555389453e3fafa932b137d"><div class="ttname"><a href="classCatch_1_1Clara_1_1Args.html#a09e56cf99555389453e3fafa932b137d">Catch::Clara::Args::m_args</a></div><div class="ttdeci">std::vector< StringRef > m_args</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4882</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Args_html_a6f03913f5e23a45f5a6a1ac5fb119ed1"><div class="ttname"><a href="classCatch_1_1Clara_1_1Args.html#a6f03913f5e23a45f5a6a1ac5fb119ed1">Catch::Clara::Args::exeName</a></div><div class="ttdeci">StringRef exeName() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4889</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Args_html_a88ddab37dc708bbef2974dc7e0f90449"><div class="ttname"><a href="classCatch_1_1Clara_1_1Args.html#a88ddab37dc708bbef2974dc7e0f90449">Catch::Clara::Args::Args</a></div><div class="ttdeci">Args(int argc, char const *const *argv)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3055</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html">Catch::Clara::Detail::BasicResult</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4406</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a29bc3a3b25ac304c5d8fff1edcf11446"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a29bc3a3b25ac304c5d8fff1edcf11446">Catch::Clara::Detail::BasicResult::ok</a></div><div class="ttdeci">static auto ok(U &&value) -> BasicResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4416</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a4d9c94c86f71eaa76356ab808a221b62"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4d9c94c86f71eaa76356ab808a221b62">Catch::Clara::Detail::BasicResult::ok</a></div><div class="ttdeci">static auto ok() -> BasicResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4419</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a4fff47323e9c1d47912c8968719d97a0"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a4fff47323e9c1d47912c8968719d97a0">Catch::Clara::Detail::BasicResult::BasicResult</a></div><div class="ttdeci">BasicResult(BasicResult< U > const &other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4409</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a72212341d12d38b9ef6f8c3ecaae3d66"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a72212341d12d38b9ef6f8c3ecaae3d66">Catch::Clara::Detail::BasicResult< void >::errorMessage</a></div><div class="ttdeci">auto errorMessage() const -> std::string const &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4433</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a84c9409f5c91ba6794ea9ea87a38fdf8"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a84c9409f5c91ba6794ea9ea87a38fdf8">Catch::Clara::Detail::BasicResult< void >::m_errorMessage</a></div><div class="ttdeci">std::string m_errorMessage</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4449</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a87690846616d49ba834603770909055d"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a87690846616d49ba834603770909055d">Catch::Clara::Detail::BasicResult::enforceOk</a></div><div class="ttdeci">void enforceOk() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4438</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a881617c5872c403eacc22966a046fc82"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a881617c5872c403eacc22966a046fc82">Catch::Clara::Detail::BasicResult::BasicResult</a></div><div class="ttdeci">BasicResult(ResultType type, std::string &&message)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4451</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_a8adbd2c9cd517ae768a18b9d9dca2c01"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#a8adbd2c9cd517ae768a18b9d9dca2c01">Catch::Clara::Detail::BasicResult::runtimeError</a></div><div class="ttdeci">static auto runtimeError(std::string &&message) -> BasicResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4424</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_ac043c61d7ad6b9fe6660cb85e1380c16"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ac043c61d7ad6b9fe6660cb85e1380c16">Catch::Clara::Detail::BasicResult< void >::type</a></div><div class="ttdeci">auto type() const -> ResultType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4432</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_ae6c470af1becfc54d75df69104e45160"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#ae6c470af1becfc54d75df69104e45160">Catch::Clara::Detail::BasicResult::logicError</a></div><div class="ttdeci">static auto logicError(std::string &&message) -> BasicResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4420</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1BasicResult_html_af794d366dd0035764edf572222725eb2"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1BasicResult.html#af794d366dd0035764edf572222725eb2">Catch::Clara::Detail::BasicResult< void >::m_type</a></div><div class="ttdeci">ResultType m_type</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html">Catch::Clara::Detail::ComposableParserImpl</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4653</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl_html_a33578a14a9859be5728415bcb6aaa5bb"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ComposableParserImpl.html#a33578a14a9859be5728415bcb6aaa5bb">Catch::Clara::Detail::ComposableParserImpl::operator|</a></div><div class="ttdeci">auto operator|(T const &other) const -> Parser</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_a0679064574ecbebec9285d8e92afbd9b"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a0679064574ecbebec9285d8e92afbd9b">Catch::Clara::Detail::ParseState::ParseState</a></div><div class="ttdeci">ParseState(ParseResultType type, TokenStream remainingTokens)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2757</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_a1783a7644a87ceeda5757c9dbaee15a8"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a1783a7644a87ceeda5757c9dbaee15a8">Catch::Clara::Detail::ParseState::remainingTokens</a></div><div class="ttdeci">TokenStream && remainingTokens() &&</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4470</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_a211fa625d0df8986696fa20cce24b303"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a211fa625d0df8986696fa20cce24b303">Catch::Clara::Detail::ParseState::type</a></div><div class="ttdeci">ParseResultType type() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4466</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_a2c6aaa931d54f2733f653379db9b6cc7"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a2c6aaa931d54f2733f653379db9b6cc7">Catch::Clara::Detail::ParseState::remainingTokens</a></div><div class="ttdeci">TokenStream const & remainingTokens() const &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4467</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_a9d44a683a634fb521a1caafa9afaa69f"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#a9d44a683a634fb521a1caafa9afaa69f">Catch::Clara::Detail::ParseState::m_remainingTokens</a></div><div class="ttdeci">TokenStream m_remainingTokens</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4476</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParseState_html_ac5d99ac34c7f193b80d2172f4390c821"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParseState.html#ac5d99ac34c7f193b80d2172f4390c821">Catch::Clara::Detail::ParseState::m_type</a></div><div class="ttdeci">ParseResultType m_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4475</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserBase_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html">Catch::Clara::Detail::ParserBase</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4640</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserBase_html_a4ef196a88d331fe35b8c10a79b9b9163"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a4ef196a88d331fe35b8c10a79b9b9163">Catch::Clara::Detail::ParserBase::~ParserBase</a></div><div class="ttdeci">virtual ~ParserBase()=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserBase_html_a86e732b9e2f6428fe74bc2ac75eb97c3"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a86e732b9e2f6428fe74bc2ac75eb97c3">Catch::Clara::Detail::ParserBase::parse</a></div><div class="ttdeci">virtual auto parse(std::string const &exeName, TokenStream tokens) const -> InternalParseResult=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserBase_html_a87381c4aefdeeed6609be0eb26b47133"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#a87381c4aefdeeed6609be0eb26b47133">Catch::Clara::Detail::ParserBase::validate</a></div><div class="ttdeci">virtual auto validate() const -> Result</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4643</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserBase_html_aa143f6473623919d054d6ec4ffa63d63"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserBase.html#aa143f6473623919d054d6ec4ffa63d63">Catch::Clara::Detail::ParserBase::cardinality</a></div><div class="ttdeci">virtual size_t cardinality() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2751</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html">Catch::Clara::Detail::ParserRefImpl</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4661</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a04749012641bd3596b1bad797623214e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a04749012641bd3596b1bad797623214e">Catch::Clara::Detail::ParserRefImpl::ParserRefImpl</a></div><div class="ttdeci">ParserRefImpl(std::shared_ptr< BoundRef > const &ref)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4668</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a2533409ff2ce763b442c085a95c8dce9"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2533409ff2ce763b442c085a95c8dce9">Catch::Clara::Detail::ParserRefImpl::operator()</a></div><div class="ttdeci">DerivedT && operator()(StringRef description) &&</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4697</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a2f887bd22b4297826a57806e56cfd3f3"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a2f887bd22b4297826a57806e56cfd3f3">Catch::Clara::Detail::ParserRefImpl::ParserRefImpl</a></div><div class="ttdeci">ParserRefImpl(T &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4682</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a4c2c1717858e95d3c280dacaf8daadb4"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a4c2c1717858e95d3c280dacaf8daadb4">Catch::Clara::Detail::ParserRefImpl::ParserRefImpl</a></div><div class="ttdeci">ParserRefImpl(LambdaT const &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4689</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a51bed809ac3d01f86c33dbfbd1526a9e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a51bed809ac3d01f86c33dbfbd1526a9e">Catch::Clara::Detail::ParserRefImpl::m_description</a></div><div class="ttdeci">StringRef m_description</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4666</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a768770e1bb1236b734e1d1a2f8a84ec9"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a768770e1bb1236b734e1d1a2f8a84ec9">Catch::Clara::Detail::ParserRefImpl::operator()</a></div><div class="ttdeci">DerivedT & operator()(StringRef description) &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4693</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a7e63dd6369e1bafc99685b46e3f906ed"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7e63dd6369e1bafc99685b46e3f906ed">Catch::Clara::Detail::ParserRefImpl::m_optionality</a></div><div class="ttdeci">Optionality m_optionality</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4663</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a7f53be97ad14acf78874b60c506e3264"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a7f53be97ad14acf78874b60c506e3264">Catch::Clara::Detail::ParserRefImpl::isOptional</a></div><div class="ttdeci">auto isOptional() const -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4712</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_a9b4227e549fdf7ac060f32b04691f852"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#a9b4227e549fdf7ac060f32b04691f852">Catch::Clara::Detail::ParserRefImpl::optional</a></div><div class="ttdeci">auto optional() -> DerivedT &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4702</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_aa1f2cedbb0ff1cb196f2249f3ce96c59"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa1f2cedbb0ff1cb196f2249f3ce96c59">Catch::Clara::Detail::ParserRefImpl::ParserRefImpl</a></div><div class="ttdeci">ParserRefImpl(accept_many_t, LambdaT const &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4673</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_aa5bb1319c27841e765a56aea58435d0a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#aa5bb1319c27841e765a56aea58435d0a">Catch::Clara::Detail::ParserRefImpl::m_hint</a></div><div class="ttdeci">StringRef m_hint</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4665</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_adc3237f1191340d9567857efc5ffb82c"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#adc3237f1191340d9567857efc5ffb82c">Catch::Clara::Detail::ParserRefImpl::cardinality</a></div><div class="ttdeci">auto cardinality() const -> size_t override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4716</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_af2d565724a6e3e5306ff2fa324bc1e00"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af2d565724a6e3e5306ff2fa324bc1e00">Catch::Clara::Detail::ParserRefImpl::hint</a></div><div class="ttdeci">StringRef hint() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4723</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_af9928e53fd50e79bb2696775fb8f211e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#af9928e53fd50e79bb2696775fb8f211e">Catch::Clara::Detail::ParserRefImpl::required</a></div><div class="ttdeci">auto required() -> DerivedT &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4707</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ParserRefImpl_html_afb84f647163ba979e8ebf9a62963100b"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ParserRefImpl.html#afb84f647163ba979e8ebf9a62963100b">Catch::Clara::Detail::ParserRefImpl::m_ref</a></div><div class="ttdeci">std::shared_ptr< BoundRef > m_ref</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4664</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a07fecafa1021ad679bc878a4c6cbea6d"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a07fecafa1021ad679bc878a4c6cbea6d">Catch::Clara::Detail::ResultBase::~ResultBase</a></div><div class="ttdeci">virtual ~ResultBase()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a533f12fda5654c0f71f311877b137086"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a533f12fda5654c0f71f311877b137086">Catch::Clara::Detail::ResultBase::ResultBase</a></div><div class="ttdeci">ResultBase(ResultType type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4323</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a75a480c3898c4622db5922b5b146c006"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a75a480c3898c4622db5922b5b146c006">Catch::Clara::Detail::ResultBase::ResultBase</a></div><div class="ttdeci">ResultBase(ResultBase const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a761941b417b13ab165cab8f12db394f2"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a761941b417b13ab165cab8f12db394f2">Catch::Clara::Detail::ResultBase::operator=</a></div><div class="ttdeci">ResultBase & operator=(ResultBase const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a808a79ceca2dbf83da72347994784d4f"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a808a79ceca2dbf83da72347994784d4f">Catch::Clara::Detail::ResultBase::operator=</a></div><div class="ttdeci">ResultBase & operator=(ResultBase &&)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_a9971684f2626900c1ed1b9f43b8ad97a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#a9971684f2626900c1ed1b9f43b8ad97a">Catch::Clara::Detail::ResultBase::ResultBase</a></div><div class="ttdeci">ResultBase(ResultBase &&)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_aa745dfcd5ea1c94e93b57e5434a34177"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#aa745dfcd5ea1c94e93b57e5434a34177">Catch::Clara::Detail::ResultBase::enforceOk</a></div><div class="ttdeci">virtual void enforceOk() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultBase_html_af794d366dd0035764edf572222725eb2"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultBase.html#af794d366dd0035764edf572222725eb2">Catch::Clara::Detail::ResultBase::m_type</a></div><div class="ttdeci">ResultType m_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4334</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_3_01void_01_4_html_a533f12fda5654c0f71f311877b137086"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase_3_01void_01_4.html#a533f12fda5654c0f71f311877b137086">Catch::Clara::Detail::ResultValueBase< void >::ResultBase</a></div><div class="ttdeci">ResultBase(ResultType type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4323</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html">Catch::Clara::Detail::ResultValueBase</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4338</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a0bd390452e6412aefa0dc8d732ff52c5"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0bd390452e6412aefa0dc8d732ff52c5">Catch::Clara::Detail::ResultValueBase::ResultValueBase</a></div><div class="ttdeci">ResultValueBase(ResultType, T const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4364</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a0e5c16b22375908f71f052493deda158"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a0e5c16b22375908f71f052493deda158">Catch::Clara::Detail::ResultValueBase::operator=</a></div><div class="ttdeci">ResultValueBase & operator=(ResultValueBase const &other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4373</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a32385a630a328ffa9891032cdf0b5e78"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a32385a630a328ffa9891032cdf0b5e78">Catch::Clara::Detail::ResultValueBase::operator=</a></div><div class="ttdeci">ResultValueBase & operator=(ResultValueBase &&other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4381</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a3d85c7ccab03a8b20dffa2678ee8ed77"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a3d85c7ccab03a8b20dffa2678ee8ed77">Catch::Clara::Detail::ResultValueBase::ResultValueBase</a></div><div class="ttdeci">ResultValueBase(ResultType, T &&value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4368</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a468180a215cef2bd61993e560c255c3a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a468180a215cef2bd61993e560c255c3a">Catch::Clara::Detail::ResultValueBase::m_value</a></div><div class="ttdeci">T m_value</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4396</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a5c51e56e4f6074c61c6aa5cacfa18022"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a5c51e56e4f6074c61c6aa5cacfa18022">Catch::Clara::Detail::ResultValueBase::ResultValueBase</a></div><div class="ttdeci">ResultValueBase(ResultValueBase const &other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4352</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a6af8a6cea4393ec7aebfec7706451e2a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a6af8a6cea4393ec7aebfec7706451e2a">Catch::Clara::Detail::ResultValueBase::value</a></div><div class="ttdeci">T const & value() const &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4340</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a8ec617ccbc34a51c245208af9b41579a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a8ec617ccbc34a51c245208af9b41579a">Catch::Clara::Detail::ResultValueBase::ResultValueBase</a></div><div class="ttdeci">ResultValueBase(ResultType type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4350</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_a9eaf605757feed205f4fd6332a8baa1b"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#a9eaf605757feed205f4fd6332a8baa1b">Catch::Clara::Detail::ResultValueBase::ResultValueBase</a></div><div class="ttdeci">ResultValueBase(ResultValueBase &&other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4357</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_ab06f7ed3b1956baad0ea8316991d660e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ab06f7ed3b1956baad0ea8316991d660e">Catch::Clara::Detail::ResultValueBase::~ResultValueBase</a></div><div class="ttdeci">~ResultValueBase() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4390</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1ResultValueBase_html_ac205446a0e5a70a6d16fa497d515b83e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1ResultValueBase.html#ac205446a0e5a70a6d16fa497d515b83e">Catch::Clara::Detail::ResultValueBase::value</a></div><div class="ttdeci">T && value() &&</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4344</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html">Catch::Clara::Detail::TokenStream</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4281</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_a4a0cfed4b9781c7ff20c11da579d4c06"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a4a0cfed4b9781c7ff20c11da579d4c06">Catch::Clara::Detail::TokenStream::operator-></a></div><div class="ttdeci">Token const * operator->() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4305</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_a5f5638d7ce5234f7fb46cc3c9b3da198"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a5f5638d7ce5234f7fb46cc3c9b3da198">Catch::Clara::Detail::TokenStream::Iterator</a></div><div class="ttdeci">std::vector< StringRef >::const_iterator Iterator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4282</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_a940261ffe80ac6b4bc385196b0868621"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a940261ffe80ac6b4bc385196b0868621">Catch::Clara::Detail::TokenStream::count</a></div><div class="ttdeci">size_t count() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4296</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_a970fc9ebb56408c2ef3e3b1b9180034f"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a970fc9ebb56408c2ef3e3b1b9180034f">Catch::Clara::Detail::TokenStream::loadBuffer</a></div><div class="ttdeci">void loadBuffer()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2669</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_a9ad7ff44ce21f99b0c0cbea3f18f5e24"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#a9ad7ff44ce21f99b0c0cbea3f18f5e24">Catch::Clara::Detail::TokenStream::it</a></div><div class="ttdeci">Iterator it</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4283</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_ab3256d49e2065a8ee2f5c89767ac628a"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ab3256d49e2065a8ee2f5c89767ac628a">Catch::Clara::Detail::TokenStream::operator*</a></div><div class="ttdeci">Token operator*() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4300</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_ad8dc980877675c10dac0f65db670c6f0"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#ad8dc980877675c10dac0f65db670c6f0">Catch::Clara::Detail::TokenStream::TokenStream</a></div><div class="ttdeci">TokenStream(Args const &args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2708</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_af5f07229825568e40644fb69c3fdd57c"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#af5f07229825568e40644fb69c3fdd57c">Catch::Clara::Detail::TokenStream::itEnd</a></div><div class="ttdeci">Iterator itEnd</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4284</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Detail_1_1TokenStream_html_afbca1752444f6127fdff9dea672122a1"><div class="ttname"><a href="classCatch_1_1Clara_1_1Detail_1_1TokenStream.html#afbca1752444f6127fdff9dea672122a1">Catch::Clara::Detail::TokenStream::m_tokenBuffer</a></div><div class="ttdeci">std::vector< Token > m_tokenBuffer</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4285</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html">Catch::Clara::ExeName</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4792</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html_a1ac750117e67530dfcfe30463fc293c7"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html#a1ac750117e67530dfcfe30463fc293c7">Catch::Clara::ExeName::ExeName</a></div><div class="ttdeci">ExeName()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2898</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html_a8b0b26297f48352129a9c149ff242975"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html#a8b0b26297f48352129a9c149ff242975">Catch::Clara::ExeName::name</a></div><div class="ttdeci">std::string const & name() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4811</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html_abd67f80f71ef0e4148856ba62fa8832b"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html#abd67f80f71ef0e4148856ba62fa8832b">Catch::Clara::ExeName::ExeName</a></div><div class="ttdeci">ExeName(LambdaT const &lambda)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4801</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html_adc916f44682f223a015689bbe956d9bd"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html#adc916f44682f223a015689bbe956d9bd">Catch::Clara::ExeName::m_name</a></div><div class="ttdeci">std::shared_ptr< std::string > m_name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4793</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1ExeName_html_ae4374c29e1f04caa8057f0a666d6e453"><div class="ttname"><a href="classCatch_1_1Clara_1_1ExeName.html#ae4374c29e1f04caa8057f0a666d6e453">Catch::Clara::ExeName::m_ref</a></div><div class="ttdeci">std::shared_ptr< Detail::BoundValueRefBase > m_ref</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4794</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html">Catch::Clara::Opt</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4741</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_a09a55226a2b1b24b31ce698ad8eac452"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#a09a55226a2b1b24b31ce698ad8eac452">Catch::Clara::Opt::operator[]</a></div><div class="ttdeci">Opt & operator[](StringRef optName) &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4769</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_a23eb9437b3954927f347af65b315d65e"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#a23eb9437b3954927f347af65b315d65e">Catch::Clara::Opt::Opt</a></div><div class="ttdeci">Opt(LambdaT const &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4756</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_a4c9dd8a69ca69395394185cfe225613d"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#a4c9dd8a69ca69395394185cfe225613d">Catch::Clara::Opt::m_optNames</a></div><div class="ttdeci">std::vector< StringRef > m_optNames</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4743</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_a5c03617b158d29d339b58358464afe14"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#a5c03617b158d29d339b58358464afe14">Catch::Clara::Opt::Opt</a></div><div class="ttdeci">Opt(LambdaT const &ref)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4747</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_a7ad60746f51bb6af4d221fe9c9467b60"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#a7ad60746f51bb6af4d221fe9c9467b60">Catch::Clara::Opt::operator[]</a></div><div class="ttdeci">Opt && operator[](StringRef optName) &&</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4773</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_ab513f5b20ccc9d29a307b45ade26b072"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#ab513f5b20ccc9d29a307b45ade26b072">Catch::Clara::Opt::Opt</a></div><div class="ttdeci">Opt(T &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4766</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Opt_html_adc83c149e1c0bbfc753eee8d6a741f75"><div class="ttname"><a href="classCatch_1_1Clara_1_1Opt.html#adc83c149e1c0bbfc753eee8d6a741f75">Catch::Clara::Opt::Opt</a></div><div class="ttdeci">Opt(accept_many_t, LambdaT const &ref, StringRef hint)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4760</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html">Catch::Clara::Parser</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4817</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a154b215fce510ebb38694d5f9412e668"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a154b215fce510ebb38694d5f9412e668">Catch::Clara::Parser::operator|=</a></div><div class="ttdeci">friend Parser & operator|=(Parser &p, Opt const &opt)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4834</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a2e9b4fbe264b83fb1064ae1d739e29cf"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a2e9b4fbe264b83fb1064ae1d739e29cf">Catch::Clara::Parser::m_exeName</a></div><div class="ttdeci">ExeName m_exeName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4818</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a3bbea5c25e53979695f1079b0b029aed"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a3bbea5c25e53979695f1079b0b029aed">Catch::Clara::Parser::operator|=</a></div><div class="ttdeci">auto operator|=(Arg const &arg) -> Parser &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4829</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a4356adbe31ad7e63bde83df60d685fab"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a4356adbe31ad7e63bde83df60d685fab">Catch::Clara::Parser::operator<<</a></div><div class="ttdeci">friend auto operator<<(std::ostream &os, Parser const &parser) -> std::ostream &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4862</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a47453a99cfae1e8e420470c3a4a44d30"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a47453a99cfae1e8e420470c3a4a44d30">Catch::Clara::Parser::m_args</a></div><div class="ttdeci">std::vector< Arg > m_args</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4820</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a6cfe2812a49b59864257b823991fcf1f"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a6cfe2812a49b59864257b823991fcf1f">Catch::Clara::Parser::operator|</a></div><div class="ttdeci">friend Parser operator|(Parser &&p, T &&rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4853</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a7d635378f3877ebd9330b294c572cb7c"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a7d635378f3877ebd9330b294c572cb7c">Catch::Clara::Parser::operator|</a></div><div class="ttdeci">friend Parser operator|(Parser const &p, T &&rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4846</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_a966a3e5782e434272e3e43cce6c26dba"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#a966a3e5782e434272e3e43cce6c26dba">Catch::Clara::Parser::operator|=</a></div><div class="ttdeci">auto operator|=(ExeName const &exeName) -> Parser &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4824</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_abb1d031effc7ff98f0d12d9d1b7d7bff"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#abb1d031effc7ff98f0d12d9d1b7d7bff">Catch::Clara::Parser::operator|=</a></div><div class="ttdeci">friend Parser & operator|=(Parser &p, Opt &&opt)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4838</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Clara_1_1Parser_html_adcfaaec8f50aac71d1076e7e658f603b"><div class="ttname"><a href="classCatch_1_1Clara_1_1Parser.html#adcfaaec8f50aac71d1076e7e658f603b">Catch::Clara::Parser::m_options</a></div><div class="ttdeci">std::vector< Opt > m_options</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4819</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html"><div class="ttname"><a href="classCatch_1_1Config.html">Catch::Config</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3809</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a00dfd8d83bec3e3fda355808b2fb17f3"><div class="ttname"><a href="classCatch_1_1Config.html#a00dfd8d83bec3e3fda355808b2fb17f3">Catch::Config::shardCount</a></div><div class="ttdeci">unsigned int shardCount() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:907</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a0861c17ff4a01038f73eac5836d5c6fc"><div class="ttname"><a href="classCatch_1_1Config.html#a0861c17ff4a01038f73eac5836d5c6fc">Catch::Config::getTestsOrTags</a></div><div class="ttdeci">std::vector< std::string > const & getTestsOrTags() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:875</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a221f859f37a43fbbad28b7cb7f429683"><div class="ttname"><a href="classCatch_1_1Config.html#a221f859f37a43fbbad28b7cb7f429683">Catch::Config::benchmarkConfidenceInterval</a></div><div class="ttdeci">double benchmarkConfidenceInterval() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:918</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a25c21a50fd3ac97d55dd8a068d83a732"><div class="ttname"><a href="classCatch_1_1Config.html#a25c21a50fd3ac97d55dd8a068d83a732">Catch::Config::hasTestFilters</a></div><div class="ttdeci">bool hasTestFilters() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:888</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a26266f99f3de3c5e2033a2ce50fdfade"><div class="ttname"><a href="classCatch_1_1Config.html#a26266f99f3de3c5e2033a2ce50fdfade">Catch::Config::defaultColourMode</a></div><div class="ttdeci">ColourMode defaultColourMode() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:909</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a29df3e2ed944f9dd58638757656ceddb"><div class="ttname"><a href="classCatch_1_1Config.html#a29df3e2ed944f9dd58638757656ceddb">Catch::Config::benchmarkSamples</a></div><div class="ttdeci">unsigned int benchmarkSamples() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:917</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a2ed6d226278786e4ef6461dd42f8ff45"><div class="ttname"><a href="classCatch_1_1Config.html#a2ed6d226278786e4ef6461dd42f8ff45">Catch::Config::m_testSpec</a></div><div class="ttdeci">TestSpec m_testSpec</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3864</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a32e48a3b9bbf4ce933a154545de13b3f"><div class="ttname"><a href="classCatch_1_1Config.html#a32e48a3b9bbf4ce933a154545de13b3f">Catch::Config::getSectionsToRun</a></div><div class="ttdeci">std::vector< std::string > const & getSectionsToRun() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:876</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a357e6e4cb2e8e27c15b0cb1749a82582"><div class="ttname"><a href="classCatch_1_1Config.html#a357e6e4cb2e8e27c15b0cb1749a82582">Catch::Config::m_processedReporterSpecs</a></div><div class="ttdeci">std::vector< ProcessedReporterSpec > m_processedReporterSpecs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3863</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a4717b0c64f13c6f7dc4afdaeb396b7b9"><div class="ttname"><a href="classCatch_1_1Config.html#a4717b0c64f13c6f7dc4afdaeb396b7b9">Catch::Config::listTests</a></div><div class="ttdeci">bool listTests() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:870</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a4af3e61afbc5db0c2bb1138254a765ce"><div class="ttname"><a href="classCatch_1_1Config.html#a4af3e61afbc5db0c2bb1138254a765ce">Catch::Config::listReporters</a></div><div class="ttdeci">bool listReporters() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:872</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a517d35c4a4d9e8fd0009f22e85af1bea"><div class="ttname"><a href="classCatch_1_1Config.html#a517d35c4a4d9e8fd0009f22e85af1bea">Catch::Config::warnAboutMissingAssertions</a></div><div class="ttdeci">bool warnAboutMissingAssertions() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:896</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a5b411a91a0799f5f4e377ce4e1c4daf6"><div class="ttname"><a href="classCatch_1_1Config.html#a5b411a91a0799f5f4e377ce4e1c4daf6">Catch::Config::benchmarkResamples</a></div><div class="ttdeci">unsigned int benchmarkResamples() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:919</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a67608968181d34335297e97eba690211"><div class="ttname"><a href="classCatch_1_1Config.html#a67608968181d34335297e97eba690211">Catch::Config::getProcessedReporterSpecs</a></div><div class="ttdeci">std::vector< ProcessedReporterSpec > const & getProcessedReporterSpecs() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:883</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a692d44c3e1d5fa3cf6f19d4f7e317611"><div class="ttname"><a href="classCatch_1_1Config.html#a692d44c3e1d5fa3cf6f19d4f7e317611">Catch::Config::showInvisibles</a></div><div class="ttdeci">bool showInvisibles() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:912</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a75a4abdf0463e615dad26bd758f5cca6"><div class="ttname"><a href="classCatch_1_1Config.html#a75a4abdf0463e615dad26bd758f5cca6">Catch::Config::m_hasTestFilters</a></div><div class="ttdeci">bool m_hasTestFilters</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3865</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a7f4f4c2b7bffa63026df5f47e845c526"><div class="ttname"><a href="classCatch_1_1Config.html#a7f4f4c2b7bffa63026df5f47e845c526">Catch::Config::includeSuccessfulResults</a></div><div class="ttdeci">bool includeSuccessfulResults() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:895</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a87797a539ff81a7c3c0b302ede7ec9d3"><div class="ttname"><a href="classCatch_1_1Config.html#a87797a539ff81a7c3c0b302ede7ec9d3">Catch::Config::listTags</a></div><div class="ttdeci">bool listTags() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:871</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a8ba83d69c3cacef6191027fd551d72ba"><div class="ttname"><a href="classCatch_1_1Config.html#a8ba83d69c3cacef6191027fd551d72ba">Catch::Config::benchmarkWarmupTime</a></div><div class="ttdeci">std::chrono::milliseconds benchmarkWarmupTime() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:920</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a922bc13dfc4bf00338b53e21fcd65780"><div class="ttname"><a href="classCatch_1_1Config.html#a922bc13dfc4bf00338b53e21fcd65780">Catch::Config::getReporterSpecs</a></div><div class="ttdeci">std::vector< ReporterSpec > const & getReporterSpecs() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:878</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a9444b56d6f7549c2c6aad594d1bc6423"><div class="ttname"><a href="classCatch_1_1Config.html#a9444b56d6f7549c2c6aad594d1bc6423">Catch::Config::testSpec</a></div><div class="ttdeci">TestSpec const & testSpec() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:887</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a96592271b5a0759d6fe48ad64363ecac"><div class="ttname"><a href="classCatch_1_1Config.html#a96592271b5a0759d6fe48ad64363ecac">Catch::Config::~Config</a></div><div class="ttdeci">~Config() override</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a9b4ce10d290aec9d81b6f81bbee2abac"><div class="ttname"><a href="classCatch_1_1Config.html#a9b4ce10d290aec9d81b6f81bbee2abac">Catch::Config::benchmarkNoAnalysis</a></div><div class="ttdeci">bool benchmarkNoAnalysis() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:916</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_a9ec9c643cac0984a7836ab6df06d6273"><div class="ttname"><a href="classCatch_1_1Config.html#a9ec9c643cac0984a7836ab6df06d6273">Catch::Config::showDurations</a></div><div class="ttdeci">ShowDurations showDurations() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:903</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aa0ac4601dd8e5bedf7dc4c0761ec2097"><div class="ttname"><a href="classCatch_1_1Config.html#aa0ac4601dd8e5bedf7dc4c0761ec2097">Catch::Config::verbosity</a></div><div class="ttdeci">Verbosity verbosity() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:913</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aa7e4e11370e1aa911be305bad13dec59"><div class="ttname"><a href="classCatch_1_1Config.html#aa7e4e11370e1aa911be305bad13dec59">Catch::Config::minDuration</a></div><div class="ttdeci">double minDuration() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:904</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aa9635ebb5686aa7b7a56670799f1bd55"><div class="ttname"><a href="classCatch_1_1Config.html#aa9635ebb5686aa7b7a56670799f1bd55">Catch::Config::listListeners</a></div><div class="ttdeci">bool listListeners() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:873</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ab0f3b902ccd7403d9e016ee7305aeab0"><div class="ttname"><a href="classCatch_1_1Config.html#ab0f3b902ccd7403d9e016ee7305aeab0">Catch::Config::name</a></div><div class="ttdeci">StringRef name() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:894</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ab70d50b3dc71a13a193fa7c8af5bad57"><div class="ttname"><a href="classCatch_1_1Config.html#ab70d50b3dc71a13a193fa7c8af5bad57">Catch::Config::readBazelEnvVars</a></div><div class="ttdeci">void readBazelEnvVars()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:922</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_abd76a2429ec39af0d0007e68b799995a"><div class="ttname"><a href="classCatch_1_1Config.html#abd76a2429ec39af0d0007e68b799995a">Catch::Config::warnAboutUnmatchedTestSpecs</a></div><div class="ttdeci">bool warnAboutUnmatchedTestSpecs() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:899</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ac012a4b2c761d98ea5932f15c8a6e1e5"><div class="ttname"><a href="classCatch_1_1Config.html#ac012a4b2c761d98ea5932f15c8a6e1e5">Catch::Config::skipBenchmarks</a></div><div class="ttdeci">bool skipBenchmarks() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:915</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ac39443127fe7694ed429ecd7150d56a8"><div class="ttname"><a href="classCatch_1_1Config.html#ac39443127fe7694ed429ecd7150d56a8">Catch::Config::zeroTestsCountAsSuccess</a></div><div class="ttdeci">bool zeroTestsCountAsSuccess() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:902</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ac61658e58a9ebcee936305f64ed01f7a"><div class="ttname"><a href="classCatch_1_1Config.html#ac61658e58a9ebcee936305f64ed01f7a">Catch::Config::runOrder</a></div><div class="ttdeci">TestRunOrder runOrder() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:905</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_acb7644621cf5d1f8221a6cb2cfe209a8"><div class="ttname"><a href="classCatch_1_1Config.html#acb7644621cf5d1f8221a6cb2cfe209a8">Catch::Config::abortAfter</a></div><div class="ttdeci">int abortAfter() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:911</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ae37d3d2cf69338328ea1ba3c468c084f"><div class="ttname"><a href="classCatch_1_1Config.html#ae37d3d2cf69338328ea1ba3c468c084f">Catch::Config::m_data</a></div><div class="ttdeci">ConfigData m_data</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3862</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_ae98cabe03f0358b3cc626192c6c688e6"><div class="ttname"><a href="classCatch_1_1Config.html#ae98cabe03f0358b3cc626192c6c688e6">Catch::Config::shardIndex</a></div><div class="ttdeci">unsigned int shardIndex() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:908</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aeb09ac92356afabdd2adde43f188d80b"><div class="ttname"><a href="classCatch_1_1Config.html#aeb09ac92356afabdd2adde43f188d80b">Catch::Config::allowThrows</a></div><div class="ttdeci">bool allowThrows() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:893</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aec665ed79cc298ea0eb88908870f8b44"><div class="ttname"><a href="classCatch_1_1Config.html#aec665ed79cc298ea0eb88908870f8b44">Catch::Config::shouldDebugBreak</a></div><div class="ttdeci">bool shouldDebugBreak() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:910</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_aef773b055ffea632b300f9a44caac969"><div class="ttname"><a href="classCatch_1_1Config.html#aef773b055ffea632b300f9a44caac969">Catch::Config::Config</a></div><div class="ttdeci">Config()=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_af3f236719ddeb5e90ef4a019ddbe9536"><div class="ttname"><a href="classCatch_1_1Config.html#af3f236719ddeb5e90ef4a019ddbe9536">Catch::Config::rngSeed</a></div><div class="ttdeci">uint32_t rngSeed() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:906</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Config_html_af86a5df3faae04019a4fcadaae412e06"><div class="ttname"><a href="classCatch_1_1Config.html#af86a5df3faae04019a4fcadaae412e06">Catch::Config::showHelp</a></div><div class="ttdeci">bool showHelp() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:890</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html"><div class="ttname"><a href="classCatch_1_1Context.html">Catch::Context</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:563</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_a12fa72b7a9659a712bfa4c9833134e0f"><div class="ttname"><a href="classCatch_1_1Context.html#a12fa72b7a9659a712bfa4c9833134e0f">Catch::Context::m_config</a></div><div class="ttdeci">IConfig const * m_config</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:564</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_a39f49850dc5e3f917cd2b92391a89bd8"><div class="ttname"><a href="classCatch_1_1Context.html#a39f49850dc5e3f917cd2b92391a89bd8">Catch::Context::m_resultCapture</a></div><div class="ttdeci">IResultCapture * m_resultCapture</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:565</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_a43810eeee01821fe7b0f9f7f5bd9fb4c"><div class="ttname"><a href="classCatch_1_1Context.html#a43810eeee01821fe7b0f9f7f5bd9fb4c">Catch::Context::setResultCapture</a></div><div class="ttdeci">constexpr void setResultCapture(IResultCapture *resultCapture)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:578</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_a8791e458c00734bcbaa403d02a731c48"><div class="ttname"><a href="classCatch_1_1Context.html#a8791e458c00734bcbaa403d02a731c48">Catch::Context::createContext</a></div><div class="ttdeci">static void createContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3652</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_a9b9038b5e6bd8495cbb247ff8a39fc41"><div class="ttname"><a href="classCatch_1_1Context.html#a9b9038b5e6bd8495cbb247ff8a39fc41">Catch::Context::getConfig</a></div><div class="ttdeci">constexpr IConfig const * getConfig() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:577</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_ab888e693701673adef316571fab0cf77"><div class="ttname"><a href="classCatch_1_1Context.html#ab888e693701673adef316571fab0cf77">Catch::Context::setConfig</a></div><div class="ttdeci">constexpr void setConfig(IConfig const *config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:581</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_abaf57ad1081788ced532da4609578b21"><div class="ttname"><a href="classCatch_1_1Context.html#abaf57ad1081788ced532da4609578b21">Catch::Context::getCurrentMutableContext</a></div><div class="ttdeci">friend Context & getCurrentMutableContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3656</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_ac07cdb7d744cc8f09672d924324b55fd"><div class="ttname"><a href="classCatch_1_1Context.html#ac07cdb7d744cc8f09672d924324b55fd">Catch::Context::cleanUpContext</a></div><div class="ttdeci">friend void cleanUpContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3648</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_ac4ba79b6c2667f0c54dee09ae9b0a6d6"><div class="ttname"><a href="classCatch_1_1Context.html#ac4ba79b6c2667f0c54dee09ae9b0a6d6">Catch::Context::currentContext</a></div><div class="ttdeci">static CATCH_EXPORT Context * currentContext</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:567</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_af881f79b2f58b449f1d55ce2a46fefab"><div class="ttname"><a href="classCatch_1_1Context.html#af881f79b2f58b449f1d55ce2a46fefab">Catch::Context::getCurrentContext</a></div><div class="ttdeci">friend Context const & getCurrentContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:587</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Context_html_af982da2ffec655cc4b95af6c86d3e2d2"><div class="ttname"><a href="classCatch_1_1Context.html#af982da2ffec655cc4b95af6c86d3e2d2">Catch::Context::getResultCapture</a></div><div class="ttdeci">constexpr IResultCapture * getResultCapture() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:574</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1IsStreamInsertable_html"><div class="ttname"><a href="classCatch_1_1Detail_1_1IsStreamInsertable.html">Catch::Detail::IsStreamInsertable</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2500</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1IsStreamInsertable_html_a4269761a8bcae50110c0814462fc4ef0"><div class="ttname"><a href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a4269761a8bcae50110c0814462fc4ef0">Catch::Detail::IsStreamInsertable::test</a></div><div class="ttdeci">static auto test(int) -> decltype(std::declval< Stream & >()<< std::declval< U >(), std::true_type())</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1IsStreamInsertable_html_a42818b09ae5851126a70ee263769e309"><div class="ttname"><a href="classCatch_1_1Detail_1_1IsStreamInsertable.html#a42818b09ae5851126a70ee263769e309">Catch::Detail::IsStreamInsertable::value</a></div><div class="ttdeci">static const bool value</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2509</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1IsStreamInsertable_html_ac5761375646929916dc5e165d44cd3d9"><div class="ttname"><a href="classCatch_1_1Detail_1_1IsStreamInsertable.html#ac5761375646929916dc5e165d44cd3d9">Catch::Detail::IsStreamInsertable::test</a></div><div class="ttdeci">static auto test(...) -> std::false_type</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html">Catch::Detail::NonCopyable</a></div><div class="ttdoc">Deriving classes become noncopyable and nonmovable.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1131</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html_a315cfc89a382ba3a8b268067f022740a"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html#a315cfc89a382ba3a8b268067f022740a">Catch::Detail::NonCopyable::operator=</a></div><div class="ttdeci">NonCopyable & operator=(NonCopyable &&)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html_a7f0e313665c25273c85b06e219b6406d"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html#a7f0e313665c25273c85b06e219b6406d">Catch::Detail::NonCopyable::operator=</a></div><div class="ttdeci">NonCopyable & operator=(NonCopyable const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html_a887aaefdc2f77d0e5ecfd67cf5f88400"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html#a887aaefdc2f77d0e5ecfd67cf5f88400">Catch::Detail::NonCopyable::NonCopyable</a></div><div class="ttdeci">NonCopyable(NonCopyable &&)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html_a8b6a39ee724869e9e92fe803d8c90877"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html#a8b6a39ee724869e9e92fe803d8c90877">Catch::Detail::NonCopyable::NonCopyable</a></div><div class="ttdeci">NonCopyable(NonCopyable const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1NonCopyable_html_abd28b961dddb3f72466b29bc6184cbe0"><div class="ttname"><a href="classCatch_1_1Detail_1_1NonCopyable.html#abd28b961dddb3f72466b29bc6184cbe0">Catch::Detail::NonCopyable::NonCopyable</a></div><div class="ttdeci">NonCopyable() noexcept=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html">Catch::Detail::unique_ptr</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:890</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a1c313a0159917cf27fa4d9376114e38b"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a1c313a0159917cf27fa4d9376114e38b">Catch::Detail::unique_ptr::operator*</a></div><div class="ttdeci">T & operator*()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:929</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a5266a33f00a306a6156c6d4356e772ae"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a5266a33f00a306a6156c6d4356e772ae">Catch::Detail::unique_ptr::unique_ptr</a></div><div class="ttdeci">unique_ptr(unique_ptr &&rhs) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:915</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a66c5b83def672a0749d9bcd601a67a58"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a66c5b83def672a0749d9bcd601a67a58">Catch::Detail::unique_ptr::operator=</a></div><div class="ttdeci">unique_ptr & operator=(unique_ptr &&rhs) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:919</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a6b7061af88a95f3ca8ec86dac1ac0c47"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a6b7061af88a95f3ca8ec86dac1ac0c47">Catch::Detail::unique_ptr::swap</a></div><div class="ttdeci">friend void swap(unique_ptr &lhs, unique_ptr &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:964</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a7ab896098db02738739c9e66a466585d"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a7ab896098db02738739c9e66a466585d">Catch::Detail::unique_ptr::unique_ptr</a></div><div class="ttdeci">constexpr unique_ptr(std::nullptr_t=nullptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:893</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a7c4bb525194df5d27654c5a8d8e3a670"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a7c4bb525194df5d27654c5a8d8e3a670">Catch::Detail::unique_ptr::operator-></a></div><div class="ttdeci">T * operator->() noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:937</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a7ccbf09095dfce1287e2c2c279bd04be"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a7ccbf09095dfce1287e2c2c279bd04be">Catch::Detail::unique_ptr< GeneratorUntypedBase >::m_ptr</a></div><div class="ttdeci">GeneratorUntypedBase * m_ptr</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:891</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a8075fa379f6cc67ed0ab211004e6e627"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a8075fa379f6cc67ed0ab211004e6e627">Catch::Detail::unique_ptr::get</a></div><div class="ttdeci">T * get()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:946</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a827187e435c61bdf9f0d65f1c8b2011b"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a827187e435c61bdf9f0d65f1c8b2011b">Catch::Detail::unique_ptr< GeneratorUntypedBase >::release</a></div><div class="ttdeci">GeneratorUntypedBase * release()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:954</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_a92f161a72218c4522f29c70552cd1f88"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#a92f161a72218c4522f29c70552cd1f88">Catch::Detail::unique_ptr::~unique_ptr</a></div><div class="ttdeci">~unique_ptr()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:925</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_aa7724a0a130998010d8db5edb6260c49"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#aa7724a0a130998010d8db5edb6260c49">Catch::Detail::unique_ptr::operator=</a></div><div class="ttdeci">unique_ptr & operator=(unique_ptr const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_aa9c7f2059c8c6ef34bbd5e6968c31c0c"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#aa9c7f2059c8c6ef34bbd5e6968c31c0c">Catch::Detail::unique_ptr::unique_ptr</a></div><div class="ttdeci">unique_ptr(unique_ptr const &)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_ab7ef130f75c1073991ac87db1dea7a9a"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#ab7ef130f75c1073991ac87db1dea7a9a">Catch::Detail::unique_ptr::reset</a></div><div class="ttdeci">void reset(T *ptr=nullptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:949</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_ac9b4b4097ba1688d21b40aac08bd030b"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#ac9b4b4097ba1688d21b40aac08bd030b">Catch::Detail::unique_ptr::operator-></a></div><div class="ttdeci">T const * operator->() const noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:941</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_ad2c3124e37521192d044e1c9ed862d1f"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#ad2c3124e37521192d044e1c9ed862d1f">Catch::Detail::unique_ptr::operator=</a></div><div class="ttdeci">unique_ptr & operator=(unique_ptr< U > &&from)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:906</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_ada945d412babbf029959b777e3b94657"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#ada945d412babbf029959b777e3b94657">Catch::Detail::unique_ptr::operator*</a></div><div class="ttdeci">T const & operator*() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:933</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_ade89e9372df0a1d95755a9d2a36cb161"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#ade89e9372df0a1d95755a9d2a36cb161">Catch::Detail::unique_ptr::unique_ptr</a></div><div class="ttdeci">constexpr unique_ptr(T *ptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:896</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_aeb280c701b547d66f4816e814eca5713"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#aeb280c701b547d66f4816e814eca5713">Catch::Detail::unique_ptr::get</a></div><div class="ttdeci">T const * get() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:947</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Detail_1_1unique__ptr_html_af9a3368047f17545019d9f59e393dbd2"><div class="ttname"><a href="classCatch_1_1Detail_1_1unique__ptr.html#af9a3368047f17545019d9f59e393dbd2">Catch::Detail::unique_ptr::unique_ptr</a></div><div class="ttdeci">unique_ptr(unique_ptr< U > &&from)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:901</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator_html"><div class="ttname"><a href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html">Catch::ExceptionTranslatorRegistrar::ExceptionTranslator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7248</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator_html_a29e85940ee9ce719f26e43550cb4ed48"><div class="ttname"><a href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a29e85940ee9ce719f26e43550cb4ed48">Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate</a></div><div class="ttdeci">std::string translate(ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7255</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator_html_a591d6428999832a6ea5138a95b95d33d"><div class="ttname"><a href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#a591d6428999832a6ea5138a95b95d33d">Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::ExceptionTranslator</a></div><div class="ttdeci">constexpr ExceptionTranslator(std::string(*translateFunction)(T const &))</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7251</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator_html_aceae75027c92c7c36a9f59b77ce2b7db"><div class="ttname"><a href="classCatch_1_1ExceptionTranslatorRegistrar_1_1ExceptionTranslator.html#aceae75027c92c7c36a9f59b77ce2b7db">Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::m_translateFunction</a></div><div class="ttdeci">std::string(* m_translateFunction)(T const &)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7272</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExceptionTranslatorRegistrar_html_a641142ed5d0f3c6608f496a9b9c4b38b"><div class="ttname"><a href="classCatch_1_1ExceptionTranslatorRegistrar.html#a641142ed5d0f3c6608f496a9b9c4b38b">Catch::ExceptionTranslatorRegistrar::ExceptionTranslatorRegistrar</a></div><div class="ttdeci">ExceptionTranslatorRegistrar(std::string(*translateFunction)(T const &))</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7277</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExprLhs_html"><div class="ttname"><a href="classCatch_1_1ExprLhs.html">Catch::ExprLhs</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5426</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExprLhs_html_a0bcbddc42c67a4dea5fc68c4e8bcde84"><div class="ttname"><a href="classCatch_1_1ExprLhs.html#a0bcbddc42c67a4dea5fc68c4e8bcde84">Catch::ExprLhs::makeUnaryExpr</a></div><div class="ttdeci">constexpr auto makeUnaryExpr() const -> UnaryExpr< LhsT ></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5574</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExprLhs_html_aa05660c1ebe53b4989d4459c89ee6e46"><div class="ttname"><a href="classCatch_1_1ExprLhs.html#aa05660c1ebe53b4989d4459c89ee6e46">Catch::ExprLhs::ExprLhs</a></div><div class="ttdeci">constexpr ExprLhs(LhsT lhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5429</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ExprLhs_html_af290873a8427ccbdae6acb915fb7366a"><div class="ttname"><a href="classCatch_1_1ExprLhs.html#af290873a8427ccbdae6acb915fb7366a">Catch::ExprLhs::m_lhs</a></div><div class="ttdeci">LhsT m_lhs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5427</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1GeneratorException_html_a3cf9282d555ec32389665ce723bf36ea"><div class="ttname"><a href="classCatch_1_1GeneratorException.html#a3cf9282d555ec32389665ce723bf36ea">Catch::GeneratorException::GeneratorException</a></div><div class="ttdeci">GeneratorException(const char *msg)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7390</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1GeneratorException_html_a493b6ec9e3be0e3852de73c87dba6e5e"><div class="ttname"><a href="classCatch_1_1GeneratorException.html#a493b6ec9e3be0e3852de73c87dba6e5e">Catch::GeneratorException::m_msg</a></div><div class="ttdeci">const char *const m_msg</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7387</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_a222b9cd460e6d48b12f939833b1b0beb"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#a222b9cd460e6d48b12f939833b1b0beb">Catch::Generators::ChunkGenerator::m_chunk_size</a></div><div class="ttdeci">size_t m_chunk_size</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7904</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_a4a5f14d8f6c7a94e5771eb999c1ffe5a"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#a4a5f14d8f6c7a94e5771eb999c1ffe5a">Catch::Generators::ChunkGenerator::m_used_up</a></div><div class="ttdeci">bool m_used_up</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7906</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_a50c334d00cde3166d71e9b90ebc2d2e3"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#a50c334d00cde3166d71e9b90ebc2d2e3">Catch::Generators::ChunkGenerator::ChunkGenerator</a></div><div class="ttdeci">ChunkGenerator(size_t size, GeneratorWrapper< T > generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7908</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_a545e89f80eb1e3c953491541ea083f86"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#a545e89f80eb1e3c953491541ea083f86">Catch::Generators::ChunkGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7925</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_aa12b90ee9d029c44528fdba6b9de17bb"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#aa12b90ee9d029c44528fdba6b9de17bb">Catch::Generators::ChunkGenerator::m_generator</a></div><div class="ttdeci">GeneratorWrapper< T > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7905</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_ab5e382bc5be2e327331bd694a40fa827"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#ab5e382bc5be2e327331bd694a40fa827">Catch::Generators::ChunkGenerator::m_chunk</a></div><div class="ttdeci">std::vector< T > m_chunk</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7903</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1ChunkGenerator_html_afab9d06c84aa469b3af60eb3e8f10597"><div class="ttname"><a href="classCatch_1_1Generators_1_1ChunkGenerator.html#afab9d06c84aa469b3af60eb3e8f10597">Catch::Generators::ChunkGenerator::get</a></div><div class="ttdeci">std::vector< T > const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7922</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html">Catch::Generators::FilterGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7765</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html_a02ce0839dcaa7545c55d0fe70cc50e84"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html#a02ce0839dcaa7545c55d0fe70cc50e84">Catch::Generators::FilterGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7788</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html_a51cda8aafad62eba1d26618f3ca8cff1"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html#a51cda8aafad62eba1d26618f3ca8cff1">Catch::Generators::FilterGenerator::m_predicate</a></div><div class="ttdeci">Predicate m_predicate</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7767</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html_a6fb6975b1401cf7bd7e76e3a542a45cf"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html#a6fb6975b1401cf7bd7e76e3a542a45cf">Catch::Generators::FilterGenerator::m_generator</a></div><div class="ttdeci">GeneratorWrapper< T > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7766</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html_a903396f7cf5f1a04379b7c917351e6da"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html#a903396f7cf5f1a04379b7c917351e6da">Catch::Generators::FilterGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7784</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FilterGenerator_html_aa16886a5e41cbd3b6ffa3dd52388a3a1"><div class="ttname"><a href="classCatch_1_1Generators_1_1FilterGenerator.html#aa16886a5e41cbd3b6ffa3dd52388a3a1">Catch::Generators::FilterGenerator::FilterGenerator</a></div><div class="ttdeci">FilterGenerator(P &&pred, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7770</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html">Catch::Generators::FixedValuesGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7561</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html_a14c3c77deb624c09065e5ccaf8646f33"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a14c3c77deb624c09065e5ccaf8646f33">Catch::Generators::FixedValuesGenerator::m_idx</a></div><div class="ttdeci">size_t m_idx</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7566</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html_a591837f944b435858bc3b9fa73502ee6"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a591837f944b435858bc3b9fa73502ee6">Catch::Generators::FixedValuesGenerator::m_values</a></div><div class="ttdeci">std::vector< T > m_values</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7565</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html_a6ce9e3ed045239c7b82873f24bd9cd3b"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6ce9e3ed045239c7b82873f24bd9cd3b">Catch::Generators::FixedValuesGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7573</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html_a6e9f473655413c1cb15f079890f06b86"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a6e9f473655413c1cb15f079890f06b86">Catch::Generators::FixedValuesGenerator::FixedValuesGenerator</a></div><div class="ttdeci">FixedValuesGenerator(std::initializer_list< T > values)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7568</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1FixedValuesGenerator_html_a8d64d3d943f3029d1669ae3cf91cc493"><div class="ttname"><a href="classCatch_1_1Generators_1_1FixedValuesGenerator.html#a8d64d3d943f3029d1669ae3cf91cc493">Catch::Generators::FixedValuesGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7570</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html">Catch::Generators::GeneratorUntypedBase</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7416</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a00ff0179d739c3016756b6cf56fabbad"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a00ff0179d739c3016756b6cf56fabbad">Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase</a></div><div class="ttdeci">GeneratorUntypedBase()=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a1ea657675ef9274645608f521238ff54"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a1ea657675ef9274645608f521238ff54">Catch::Generators::GeneratorUntypedBase::countedNext</a></div><div class="ttdeci">bool countedNext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2399</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a3e9065352141a8706eafeb3ffb3b662e"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a3e9065352141a8706eafeb3ffb3b662e">Catch::Generators::GeneratorUntypedBase::~GeneratorUntypedBase</a></div><div class="ttdeci">virtual ~GeneratorUntypedBase()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a8d18b35875fbe431d1830c5fa97af1f5"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8d18b35875fbe431d1830c5fa97af1f5">Catch::Generators::GeneratorUntypedBase::m_stringReprCache</a></div><div class="ttdeci">std::string m_stringReprCache</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7419</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a8fa7f7c7225ca57dc0d2e8c151b4094d"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a8fa7f7c7225ca57dc0d2e8c151b4094d">Catch::Generators::GeneratorUntypedBase::operator=</a></div><div class="ttdeci">GeneratorUntypedBase & operator=(GeneratorUntypedBase const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_a96ed7d50f3aae243430303063ceac7a7"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#a96ed7d50f3aae243430303063ceac7a7">Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase</a></div><div class="ttdeci">GeneratorUntypedBase(GeneratorUntypedBase const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_aaa80fc99f7a69098dccb9947ecd373e9"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aaa80fc99f7a69098dccb9947ecd373e9">Catch::Generators::GeneratorUntypedBase::stringifyImpl</a></div><div class="ttdeci">virtual std::string stringifyImpl() const =0</div><div class="ttdoc">Customization point for currentElementAsString</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_aadcb64ad978f735c089a45857c395805"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aadcb64ad978f735c089a45857c395805">Catch::Generators::GeneratorUntypedBase::m_currentElementIndex</a></div><div class="ttdeci">std::size_t m_currentElementIndex</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7422</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_adad3e935ee04c1da8d015b4bcb60a74b"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#adad3e935ee04c1da8d015b4bcb60a74b">Catch::Generators::GeneratorUntypedBase::currentElementIndex</a></div><div class="ttdeci">std::size_t currentElementIndex() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7456</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorUntypedBase_html_aeed3c0cd6233c5f553549e453b8d6638"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorUntypedBase.html#aeed3c0cd6233c5f553549e453b8d6638">Catch::Generators::GeneratorUntypedBase::next</a></div><div class="ttdeci">virtual bool next()=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html">Catch::Generators::GeneratorWrapper</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7523</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html_a4a461a591d0bd5360a2745cb2b5011cc"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a4a461a591d0bd5360a2745cb2b5011cc">Catch::Generators::GeneratorWrapper::get</a></div><div class="ttdeci">T const & get() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7532</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html_a5147ec694b792135c55b421ea7c7080f"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a5147ec694b792135c55b421ea7c7080f">Catch::Generators::GeneratorWrapper::GeneratorWrapper</a></div><div class="ttdeci">GeneratorWrapper(GeneratorPtr< T > generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7529</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html_a60489f55be04e4f4d88359f54ddb03ef"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html#a60489f55be04e4f4d88359f54ddb03ef">Catch::Generators::GeneratorWrapper::GeneratorWrapper</a></div><div class="ttdeci">GeneratorWrapper(IGenerator< T > *generator)</div><div class="ttdoc">Takes ownership of the passed pointer.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7527</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html_acbfdca94811ae02461bd2cf5f60b666e"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html#acbfdca94811ae02461bd2cf5f60b666e">Catch::Generators::GeneratorWrapper::next</a></div><div class="ttdeci">bool next()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7535</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1GeneratorWrapper_html_ae1ee1487dd25379ff0e211ddb3fd8bf4"><div class="ttname"><a href="classCatch_1_1Generators_1_1GeneratorWrapper.html#ae1ee1487dd25379ff0e211ddb3fd8bf4">Catch::Generators::GeneratorWrapper::m_generator</a></div><div class="ttdeci">GeneratorPtr< T > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7524</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html">Catch::Generators::Generators</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7591</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_a2bcb50c42a8729cbac079b3b61699a61"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#a2bcb50c42a8729cbac079b3b61699a61">Catch::Generators::Generators::Generators</a></div><div class="ttdeci">Generators(Gs &&... moreGenerators)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7622</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_a4d41bb9f0e8d726a8a53c86354bf19de"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#a4d41bb9f0e8d726a8a53c86354bf19de">Catch::Generators::Generators::m_generators</a></div><div class="ttdeci">std::vector< GeneratorWrapper< T > > m_generators</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7592</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_a587e6d850eecaee91a64fd5df043bf9b"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#a587e6d850eecaee91a64fd5df043bf9b">Catch::Generators::Generators::add_generator</a></div><div class="ttdeci">void add_generator(GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7595</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_a8f5cd6b2479cfadbd45033c4ad17ff0c"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#a8f5cd6b2479cfadbd45033c4ad17ff0c">Catch::Generators::Generators::m_current</a></div><div class="ttdeci">size_t m_current</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7593</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_aac3b0e4ab4488979af0ffcfa70d9af0c"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#aac3b0e4ab4488979af0ffcfa70d9af0c">Catch::Generators::Generators::add_generators</a></div><div class="ttdeci">void add_generators(U &&valueOrGenerator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7610</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_aafe58f12805e3f9e54a0c0ec233d17aa"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#aafe58f12805e3f9e54a0c0ec233d17aa">Catch::Generators::Generators::add_generator</a></div><div class="ttdeci">void add_generator(T const &val)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7598</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_ad127fd2a07347b527f79ab3b78bd40fb"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#ad127fd2a07347b527f79ab3b78bd40fb">Catch::Generators::Generators::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7631</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_ad86b343eac34f6771358507dd8ea98c4"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#ad86b343eac34f6771358507dd8ea98c4">Catch::Generators::Generators::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7627</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_adeef65a4c2a9d1926567c2e7409f7f19"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#adeef65a4c2a9d1926567c2e7409f7f19">Catch::Generators::Generators::add_generator</a></div><div class="ttdeci">std::enable_if_t<!std::is_same< std::decay_t< U >, T >::value > add_generator(U &&val)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7606</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_adf8cc578226ac198a3efa08f742e1b09"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#adf8cc578226ac198a3efa08f742e1b09">Catch::Generators::Generators::add_generator</a></div><div class="ttdeci">void add_generator(T &&val)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7601</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1Generators_html_ae41374dc7e65437321c54d979e8df45a"><div class="ttname"><a href="classCatch_1_1Generators_1_1Generators.html#ae41374dc7e65437321c54d979e8df45a">Catch::Generators::Generators::add_generators</a></div><div class="ttdeci">void add_generators(U &&valueOrGenerator, Gs &&... moreGenerators)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7615</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1IGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1IGenerator.html">Catch::Generators::IGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7505</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1IGenerator_html_a0fb6da789cda5b4e90f036737db82485"><div class="ttname"><a href="classCatch_1_1Generators_1_1IGenerator.html#a0fb6da789cda5b4e90f036737db82485">Catch::Generators::IGenerator::get</a></div><div class="ttdeci">virtual T const & get() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1IGenerator_html_a1f8677875fe0ff31f39c60d45504b9a5"><div class="ttname"><a href="classCatch_1_1Generators_1_1IGenerator.html#a1f8677875fe0ff31f39c60d45504b9a5">Catch::Generators::IGenerator::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7516</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1IGenerator_html_a543d9e13656eef6f4ab7924ac0ee2a0d"><div class="ttname"><a href="classCatch_1_1Generators_1_1IGenerator.html#a543d9e13656eef6f4ab7924ac0ee2a0d">Catch::Generators::IGenerator::stringifyImpl</a></div><div class="ttdeci">std::string stringifyImpl() const override</div><div class="ttdoc">Customization point for currentElementAsString</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7506</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html">Catch::Generators::MapGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7861</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_a525c7eaf53ad220ee7add534aff2522c"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#a525c7eaf53ad220ee7add534aff2522c">Catch::Generators::MapGenerator::MapGenerator</a></div><div class="ttdeci">MapGenerator(F2 &&function, GeneratorWrapper< U > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7869</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_a7a4c986b7721df82559d5c3cbb3bdb66"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#a7a4c986b7721df82559d5c3cbb3bdb66">Catch::Generators::MapGenerator::m_generator</a></div><div class="ttdeci">GeneratorWrapper< U > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7863</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_a970d45e8dccf903d3539daada255da42"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#a970d45e8dccf903d3539daada255da42">Catch::Generators::MapGenerator::m_cache</a></div><div class="ttdeci">T m_cache</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7866</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_aa07e2f12d38ae060c30cc30d9dc236c5"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#aa07e2f12d38ae060c30cc30d9dc236c5">Catch::Generators::MapGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7878</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_abd7ffdef7f7c8575331146c4a95141ad"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#abd7ffdef7f7c8575331146c4a95141ad">Catch::Generators::MapGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7875</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1MapGenerator_html_add8fa24bfa56705c798fe70f4c6235ff"><div class="ttname"><a href="classCatch_1_1Generators_1_1MapGenerator.html#add8fa24bfa56705c798fe70f4c6235ff">Catch::Generators::MapGenerator::m_function</a></div><div class="ttdeci">Func m_function</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7864</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html">Catch::Generators::RepeatGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7805</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_a1b5a4018df276b05dc48e5fa0bcd3d28"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#a1b5a4018df276b05dc48e5fa0bcd3d28">Catch::Generators::RepeatGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7822</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_a24d5c2b1c09d6d220d4bd4c83f222dcb"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#a24d5c2b1c09d6d220d4bd4c83f222dcb">Catch::Generators::RepeatGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7830</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_a3aee12c4f9c2c04823ca3c75a20f234f"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#a3aee12c4f9c2c04823ca3c75a20f234f">Catch::Generators::RepeatGenerator::RepeatGenerator</a></div><div class="ttdeci">RepeatGenerator(size_t repeats, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7815</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_ab311143cc38451a21de61f444fbc7cf6"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#ab311143cc38451a21de61f444fbc7cf6">Catch::Generators::RepeatGenerator::m_repeat_index</a></div><div class="ttdeci">size_t m_repeat_index</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7813</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_ad834535fe3a2aec44bf53632c43f68cf"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#ad834535fe3a2aec44bf53632c43f68cf">Catch::Generators::RepeatGenerator::m_current_repeat</a></div><div class="ttdeci">size_t m_current_repeat</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7812</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_ae4eeba772ffba6d928f959835e8db154"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#ae4eeba772ffba6d928f959835e8db154">Catch::Generators::RepeatGenerator::m_generator</a></div><div class="ttdeci">GeneratorWrapper< T > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7809</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_aee4c7a8c54c739f2fea75c01b02ccc6e"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#aee4c7a8c54c739f2fea75c01b02ccc6e">Catch::Generators::RepeatGenerator::m_returned</a></div><div class="ttdeci">std::vector< T > m_returned</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7810</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1RepeatGenerator_html_af73981a50e1e1438d0159ac0b55a84bf"><div class="ttname"><a href="classCatch_1_1Generators_1_1RepeatGenerator.html#af73981a50e1e1438d0159ac0b55a84bf">Catch::Generators::RepeatGenerator::m_target_repeats</a></div><div class="ttdeci">size_t m_target_repeats</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7811</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html">Catch::Generators::SingleValueGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7542</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html_a10833b34e3ccbc484624185712eb8b6e"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a10833b34e3ccbc484624185712eb8b6e">Catch::Generators::SingleValueGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7555</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html_a4bed2ad14ffe04102d8135e2c82b3ace"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a4bed2ad14ffe04102d8135e2c82b3ace">Catch::Generators::SingleValueGenerator::SingleValueGenerator</a></div><div class="ttdeci">SingleValueGenerator(T const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7545</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html_a532140dd2d1a673692271bb76a661ebe"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a532140dd2d1a673692271bb76a661ebe">Catch::Generators::SingleValueGenerator::SingleValueGenerator</a></div><div class="ttdeci">SingleValueGenerator(T &&value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7548</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html_a93402a3203dad8ae7edcd681b1ed5938"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html#a93402a3203dad8ae7edcd681b1ed5938">Catch::Generators::SingleValueGenerator::m_value</a></div><div class="ttdeci">T m_value</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7543</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1SingleValueGenerator_html_af1ed1913c9c73687fd74378fe5394382"><div class="ttname"><a href="classCatch_1_1Generators_1_1SingleValueGenerator.html#af1ed1913c9c73687fd74378fe5394382">Catch::Generators::SingleValueGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7552</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html">Catch::Generators::TakeGenerator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7728</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_a1014eb709685999a1b6aeed05b4dd978"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#a1014eb709685999a1b6aeed05b4dd978">Catch::Generators::TakeGenerator::m_returned</a></div><div class="ttdeci">size_t m_returned</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7730</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_a2193ff62cd0fe809049b6d6b2f399d89"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#a2193ff62cd0fe809049b6d6b2f399d89">Catch::Generators::TakeGenerator::m_generator</a></div><div class="ttdeci">GeneratorWrapper< T > m_generator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7729</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_a7240fb96c311b7d7fde32d1fb5bb67c6"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#a7240fb96c311b7d7fde32d1fb5bb67c6">Catch::Generators::TakeGenerator::get</a></div><div class="ttdeci">T const & get() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7739</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_a8ad16c4baed05b024a86a9c87c9cd0a7"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#a8ad16c4baed05b024a86a9c87c9cd0a7">Catch::Generators::TakeGenerator::m_target</a></div><div class="ttdeci">size_t m_target</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7731</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_aacef789c01a86246249c88a184268c65"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#aacef789c01a86246249c88a184268c65">Catch::Generators::TakeGenerator::TakeGenerator</a></div><div class="ttdeci">TakeGenerator(size_t target, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7733</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Generators_1_1TakeGenerator_html_ae343f3e28fe04e0a20d6fdf69bfb4c78"><div class="ttname"><a href="classCatch_1_1Generators_1_1TakeGenerator.html#ae343f3e28fe04e0a20d6fdf69bfb4c78">Catch::Generators::TakeGenerator::next</a></div><div class="ttdeci">bool next() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7742</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html"><div class="ttname"><a href="classCatch_1_1IConfig.html">Catch::IConfig</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1197</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a001afe9548a978b25f048f889f98f65a"><div class="ttname"><a href="classCatch_1_1IConfig.html#a001afe9548a978b25f048f889f98f65a">Catch::IConfig::~IConfig</a></div><div class="ttdeci">virtual ~IConfig()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a160c6f6e19ed6ae946f7a9e737099189"><div class="ttname"><a href="classCatch_1_1IConfig.html#a160c6f6e19ed6ae946f7a9e737099189">Catch::IConfig::minDuration</a></div><div class="ttdeci">virtual double minDuration() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a1634aa220fc1c822d1f4d54614443d47"><div class="ttname"><a href="classCatch_1_1IConfig.html#a1634aa220fc1c822d1f4d54614443d47">Catch::IConfig::benchmarkSamples</a></div><div class="ttdeci">virtual unsigned int benchmarkSamples() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a1e50ac75407e1e7d808eae26a4e353dd"><div class="ttname"><a href="classCatch_1_1IConfig.html#a1e50ac75407e1e7d808eae26a4e353dd">Catch::IConfig::defaultColourMode</a></div><div class="ttdeci">virtual ColourMode defaultColourMode() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a2f1b0391019b9ce69921527a684eab23"><div class="ttname"><a href="classCatch_1_1IConfig.html#a2f1b0391019b9ce69921527a684eab23">Catch::IConfig::includeSuccessfulResults</a></div><div class="ttdeci">virtual bool includeSuccessfulResults() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a363f3388a439d02217f37198eff96744"><div class="ttname"><a href="classCatch_1_1IConfig.html#a363f3388a439d02217f37198eff96744">Catch::IConfig::abortAfter</a></div><div class="ttdeci">virtual int abortAfter() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a3b8e5581be01f4773593f8b85eb7db98"><div class="ttname"><a href="classCatch_1_1IConfig.html#a3b8e5581be01f4773593f8b85eb7db98">Catch::IConfig::benchmarkResamples</a></div><div class="ttdeci">virtual unsigned int benchmarkResamples() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a439d37638d37248d8a7f3f39ad5dc6f2"><div class="ttname"><a href="classCatch_1_1IConfig.html#a439d37638d37248d8a7f3f39ad5dc6f2">Catch::IConfig::getTestsOrTags</a></div><div class="ttdeci">virtual std::vector< std::string > const & getTestsOrTags() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a49a475bbeb3180c06799d6d958914649"><div class="ttname"><a href="classCatch_1_1IConfig.html#a49a475bbeb3180c06799d6d958914649">Catch::IConfig::hasTestFilters</a></div><div class="ttdeci">virtual bool hasTestFilters() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a516879e39f2e46f69bb4ef1f1fe7023c"><div class="ttname"><a href="classCatch_1_1IConfig.html#a516879e39f2e46f69bb4ef1f1fe7023c">Catch::IConfig::benchmarkWarmupTime</a></div><div class="ttdeci">virtual std::chrono::milliseconds benchmarkWarmupTime() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a55aff5924bdbb3f558775821b1eb4b3d"><div class="ttname"><a href="classCatch_1_1IConfig.html#a55aff5924bdbb3f558775821b1eb4b3d">Catch::IConfig::verbosity</a></div><div class="ttdeci">virtual Verbosity verbosity() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a5a9e2fbbb8150bd197d8abd9af18da14"><div class="ttname"><a href="classCatch_1_1IConfig.html#a5a9e2fbbb8150bd197d8abd9af18da14">Catch::IConfig::showDurations</a></div><div class="ttdeci">virtual ShowDurations showDurations() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a5b886c5aad9001e90f63a7cf0726af63"><div class="ttname"><a href="classCatch_1_1IConfig.html#a5b886c5aad9001e90f63a7cf0726af63">Catch::IConfig::shouldDebugBreak</a></div><div class="ttdeci">virtual bool shouldDebugBreak() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a62498b40b04b87b721537f8e0e7d333e"><div class="ttname"><a href="classCatch_1_1IConfig.html#a62498b40b04b87b721537f8e0e7d333e">Catch::IConfig::warnAboutUnmatchedTestSpecs</a></div><div class="ttdeci">virtual bool warnAboutUnmatchedTestSpecs() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a6c021a1bf5cae58cb6c4b754af6cd4b5"><div class="ttname"><a href="classCatch_1_1IConfig.html#a6c021a1bf5cae58cb6c4b754af6cd4b5">Catch::IConfig::testSpec</a></div><div class="ttdeci">virtual TestSpec const & testSpec() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a6ff06a3e00a2002992d3139d9c21718d"><div class="ttname"><a href="classCatch_1_1IConfig.html#a6ff06a3e00a2002992d3139d9c21718d">Catch::IConfig::zeroTestsCountAsSuccess</a></div><div class="ttdeci">virtual bool zeroTestsCountAsSuccess() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a71994ea53eb66e353e5e195088f9bad7"><div class="ttname"><a href="classCatch_1_1IConfig.html#a71994ea53eb66e353e5e195088f9bad7">Catch::IConfig::rngSeed</a></div><div class="ttdeci">virtual uint32_t rngSeed() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a75d970c495a28e46b8e9b04a1d32149f"><div class="ttname"><a href="classCatch_1_1IConfig.html#a75d970c495a28e46b8e9b04a1d32149f">Catch::IConfig::warnAboutMissingAssertions</a></div><div class="ttdeci">virtual bool warnAboutMissingAssertions() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_a7d7b5de3ff81f08e343b3b6266efbeba"><div class="ttname"><a href="classCatch_1_1IConfig.html#a7d7b5de3ff81f08e343b3b6266efbeba">Catch::IConfig::shardIndex</a></div><div class="ttdeci">virtual unsigned int shardIndex() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_aa288bf92ccd0aafd85409d8aefdf738c"><div class="ttname"><a href="classCatch_1_1IConfig.html#aa288bf92ccd0aafd85409d8aefdf738c">Catch::IConfig::showInvisibles</a></div><div class="ttdeci">virtual bool showInvisibles() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_aa9aa1eafdbe510e27bf319233969ee2c"><div class="ttname"><a href="classCatch_1_1IConfig.html#aa9aa1eafdbe510e27bf319233969ee2c">Catch::IConfig::benchmarkNoAnalysis</a></div><div class="ttdeci">virtual bool benchmarkNoAnalysis() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_aadb95f849359de1e6eb915aab063e542"><div class="ttname"><a href="classCatch_1_1IConfig.html#aadb95f849359de1e6eb915aab063e542">Catch::IConfig::allowThrows</a></div><div class="ttdeci">virtual bool allowThrows() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_acd7e1cb74682279ba1e460510d6b5859"><div class="ttname"><a href="classCatch_1_1IConfig.html#acd7e1cb74682279ba1e460510d6b5859">Catch::IConfig::skipBenchmarks</a></div><div class="ttdeci">virtual bool skipBenchmarks() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_ad286c00a41278a94e89791be29b920a1"><div class="ttname"><a href="classCatch_1_1IConfig.html#ad286c00a41278a94e89791be29b920a1">Catch::IConfig::shardCount</a></div><div class="ttdeci">virtual unsigned int shardCount() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_ad67bb593486213c6918732f73177b7a5"><div class="ttname"><a href="classCatch_1_1IConfig.html#ad67bb593486213c6918732f73177b7a5">Catch::IConfig::name</a></div><div class="ttdeci">virtual StringRef name() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_ae1ec73d460a2b58c7c9b022a430a34dd"><div class="ttname"><a href="classCatch_1_1IConfig.html#ae1ec73d460a2b58c7c9b022a430a34dd">Catch::IConfig::benchmarkConfidenceInterval</a></div><div class="ttdeci">virtual double benchmarkConfidenceInterval() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_aeb282b2b74d01c0d95ef1a4dbd2d12df"><div class="ttname"><a href="classCatch_1_1IConfig.html#aeb282b2b74d01c0d95ef1a4dbd2d12df">Catch::IConfig::getSectionsToRun</a></div><div class="ttdeci">virtual std::vector< std::string > const & getSectionsToRun() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IConfig_html_afef98a620d17d1ef1cba91550146ca28"><div class="ttname"><a href="classCatch_1_1IConfig.html#afef98a620d17d1ef1cba91550146ca28">Catch::IConfig::runOrder</a></div><div class="ttdeci">virtual TestRunOrder runOrder() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslatorRegistry_html"><div class="ttname"><a href="classCatch_1_1IExceptionTranslatorRegistry.html">Catch::IExceptionTranslatorRegistry</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7228</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslatorRegistry_html_a5943b77f962a069348669fd5f0317084"><div class="ttname"><a href="classCatch_1_1IExceptionTranslatorRegistry.html#a5943b77f962a069348669fd5f0317084">Catch::IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry</a></div><div class="ttdeci">virtual ~IExceptionTranslatorRegistry()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslatorRegistry_html_af76ae8c331a17f2a94c9720bc0d686bb"><div class="ttname"><a href="classCatch_1_1IExceptionTranslatorRegistry.html#af76ae8c331a17f2a94c9720bc0d686bb">Catch::IExceptionTranslatorRegistry::translateActiveException</a></div><div class="ttdeci">virtual std::string translateActiveException() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslator_html"><div class="ttname"><a href="classCatch_1_1IExceptionTranslator.html">Catch::IExceptionTranslator</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7222</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslator_html_a2a554b96ed5ed411e7c796b6b42837a5"><div class="ttname"><a href="classCatch_1_1IExceptionTranslator.html#a2a554b96ed5ed411e7c796b6b42837a5">Catch::IExceptionTranslator::translate</a></div><div class="ttdeci">virtual std::string translate(ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd) const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IExceptionTranslator_html_afd9be9d858f9be158d0d30baadd4fd7c"><div class="ttname"><a href="classCatch_1_1IExceptionTranslator.html#afd9be9d858f9be158d0d30baadd4fd7c">Catch::IExceptionTranslator::~IExceptionTranslator</a></div><div class="ttdeci">virtual ~IExceptionTranslator()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IGeneratorTracker_html"><div class="ttname"><a href="classCatch_1_1IGeneratorTracker.html">Catch::IGeneratorTracker</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7477</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IGeneratorTracker_html_a23be942fc51672598bfa02c678c3078a"><div class="ttname"><a href="classCatch_1_1IGeneratorTracker.html#a23be942fc51672598bfa02c678c3078a">Catch::IGeneratorTracker::getGenerator</a></div><div class="ttdeci">virtual auto getGenerator() const -> Generators::GeneratorBasePtr const &=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IGeneratorTracker_html_a9945eff42219edc5a7071eebd8b0419e"><div class="ttname"><a href="classCatch_1_1IGeneratorTracker.html#a9945eff42219edc5a7071eebd8b0419e">Catch::IGeneratorTracker::setGenerator</a></div><div class="ttdeci">virtual void setGenerator(Generators::GeneratorBasePtr &&generator)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IGeneratorTracker_html_ae48542e221a0931482ba61e6d30462c3"><div class="ttname"><a href="classCatch_1_1IGeneratorTracker.html#ae48542e221a0931482ba61e6d30462c3">Catch::IGeneratorTracker::~IGeneratorTracker</a></div><div class="ttdeci">virtual ~IGeneratorTracker()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IGeneratorTracker_html_ae88084f9af27c8b9a5d5775b9c148498"><div class="ttname"><a href="classCatch_1_1IGeneratorTracker.html#ae88084f9af27c8b9a5d5775b9c148498">Catch::IGeneratorTracker::hasGenerator</a></div><div class="ttdeci">virtual auto hasGenerator() const -> bool=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableEnumValuesRegistry_html"><div class="ttname"><a href="classCatch_1_1IMutableEnumValuesRegistry.html">Catch::IMutableEnumValuesRegistry</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2434</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableEnumValuesRegistry_html_a438c16ba32f3ecbbbbd8b3d49a530dcb"><div class="ttname"><a href="classCatch_1_1IMutableEnumValuesRegistry.html#a438c16ba32f3ecbbbbd8b3d49a530dcb">Catch::IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry</a></div><div class="ttdeci">virtual ~IMutableEnumValuesRegistry()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableEnumValuesRegistry_html_a56e9726c383ed48731621c7183730310"><div class="ttname"><a href="classCatch_1_1IMutableEnumValuesRegistry.html#a56e9726c383ed48731621c7183730310">Catch::IMutableEnumValuesRegistry::registerEnum</a></div><div class="ttdeci">virtual Detail::EnumInfo const & registerEnum(StringRef enumName, StringRef allEnums, std::vector< int > const &values)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableEnumValuesRegistry_html_ac1f8c7d3d97100ec30e09a3866f69904"><div class="ttname"><a href="classCatch_1_1IMutableEnumValuesRegistry.html#ac1f8c7d3d97100ec30e09a3866f69904">Catch::IMutableEnumValuesRegistry::registerEnum</a></div><div class="ttdeci">Detail::EnumInfo const & registerEnum(StringRef enumName, StringRef allEnums, std::initializer_list< E > values)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2441</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html">Catch::IMutableRegistryHub</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1273</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_a07ecec9d39a4ec17ee6a12c9a5a7c8a6"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#a07ecec9d39a4ec17ee6a12c9a5a7c8a6">Catch::IMutableRegistryHub::registerTest</a></div><div class="ttdeci">virtual void registerTest(Detail::unique_ptr< TestCaseInfo > &&testInfo, Detail::unique_ptr< ITestInvoker > &&invoker)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_a72a7d5386851ac3200f8da794a009c86"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#a72a7d5386851ac3200f8da794a009c86">Catch::IMutableRegistryHub::registerStartupException</a></div><div class="ttdeci">virtual void registerStartupException() noexcept=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_a8c70c6e8f0d2ac0c83fe4e5c53d193f6"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#a8c70c6e8f0d2ac0c83fe4e5c53d193f6">Catch::IMutableRegistryHub::registerListener</a></div><div class="ttdeci">virtual void registerListener(Detail::unique_ptr< EventListenerFactory > factory)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_a91993b5de4d60adf3ecf9b8db203bde7"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#a91993b5de4d60adf3ecf9b8db203bde7">Catch::IMutableRegistryHub::~IMutableRegistryHub</a></div><div class="ttdeci">virtual ~IMutableRegistryHub()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_aa94a804d04ed6ca0dbd0553d6acd6257"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#aa94a804d04ed6ca0dbd0553d6acd6257">Catch::IMutableRegistryHub::registerReporter</a></div><div class="ttdeci">virtual void registerReporter(std::string const &name, IReporterFactoryPtr factory)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_ab1f0013630047f8295e5969b624ad632"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#ab1f0013630047f8295e5969b624ad632">Catch::IMutableRegistryHub::getMutableEnumValuesRegistry</a></div><div class="ttdeci">virtual IMutableEnumValuesRegistry & getMutableEnumValuesRegistry()=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_abf2e386b6f94f615719ada711adbf822"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#abf2e386b6f94f615719ada711adbf822">Catch::IMutableRegistryHub::registerTagAlias</a></div><div class="ttdeci">virtual void registerTagAlias(std::string const &alias, std::string const &tag, SourceLineInfo const &lineInfo)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IMutableRegistryHub_html_aed579e45f9d9082d8e45f93fa028d11e"><div class="ttname"><a href="classCatch_1_1IMutableRegistryHub.html#aed579e45f9d9082d8e45f93fa028d11e">Catch::IMutableRegistryHub::registerTranslator</a></div><div class="ttdeci">virtual void registerTranslator(Detail::unique_ptr< IExceptionTranslator > &&translator)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html">Catch::IRegistryHub</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1260</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_a3016c8766e42bae7b021f02d1cbd356b"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#a3016c8766e42bae7b021f02d1cbd356b">Catch::IRegistryHub::getTestCaseRegistry</a></div><div class="ttdeci">virtual ITestCaseRegistry const & getTestCaseRegistry() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_a3fb24564dba3f679dfa58792f1e21708"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#a3fb24564dba3f679dfa58792f1e21708">Catch::IRegistryHub::getTagAliasRegistry</a></div><div class="ttdeci">virtual ITagAliasRegistry const & getTagAliasRegistry() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_a697c64b61add26349b875d18435ce451"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#a697c64b61add26349b875d18435ce451">Catch::IRegistryHub::~IRegistryHub</a></div><div class="ttdeci">virtual ~IRegistryHub()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_a6a1810bb78ba99c3be091958bcc12f29"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#a6a1810bb78ba99c3be091958bcc12f29">Catch::IRegistryHub::getStartupExceptionRegistry</a></div><div class="ttdeci">virtual StartupExceptionRegistry const & getStartupExceptionRegistry() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_aa97defa756fe28dd6249b19c12bbbec1"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#aa97defa756fe28dd6249b19c12bbbec1">Catch::IRegistryHub::getExceptionTranslatorRegistry</a></div><div class="ttdeci">virtual IExceptionTranslatorRegistry const & getExceptionTranslatorRegistry() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IRegistryHub_html_aecb81b9fcf4fc3348778adc57531f079"><div class="ttname"><a href="classCatch_1_1IRegistryHub.html#aecb81b9fcf4fc3348778adc57531f079">Catch::IRegistryHub::getReporterRegistry</a></div><div class="ttdeci">virtual ReporterRegistry const & getReporterRegistry() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html"><div class="ttname"><a href="classCatch_1_1IResultCapture.html">Catch::IResultCapture</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1048</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a1aa4505b96a637a44b5d3580cd90f18b"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a1aa4505b96a637a44b5d3580cd90f18b">Catch::IResultCapture::emplaceUnscopedMessage</a></div><div class="ttdeci">virtual void emplaceUnscopedMessage(MessageBuilder &&builder)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a264ae12330c74b2daae41715a30d51bf"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a264ae12330c74b2daae41715a30d51bf">Catch::IResultCapture::benchmarkStarting</a></div><div class="ttdeci">virtual void benchmarkStarting(BenchmarkInfo const &info)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a2d101e96f7001f917db6aac96e17b3a5"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a2d101e96f7001f917db6aac96e17b3a5">Catch::IResultCapture::benchmarkEnded</a></div><div class="ttdeci">virtual void benchmarkEnded(BenchmarkStats<> const &stats)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a2f44f3fa0bb898ce1aef650c1e063cc9"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a2f44f3fa0bb898ce1aef650c1e063cc9">Catch::IResultCapture::getLastResult</a></div><div class="ttdeci">virtual const AssertionResult * getLastResult() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a347c416a766bf77cde2aa05a2a27d034"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a347c416a766bf77cde2aa05a2a27d034">Catch::IResultCapture::createGeneratorTracker</a></div><div class="ttdeci">virtual IGeneratorTracker * createGeneratorTracker(StringRef generatorName, SourceLineInfo lineInfo, Generators::GeneratorBasePtr &&generator)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a42bcb13276706bf8c3ce081ce16d37fd"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a42bcb13276706bf8c3ce081ce16d37fd">Catch::IResultCapture::popScopedMessage</a></div><div class="ttdeci">virtual void popScopedMessage(MessageInfo const &message)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a48559e6598ba9474b903697b69c769b2"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a48559e6598ba9474b903697b69c769b2">Catch::IResultCapture::handleFatalErrorCondition</a></div><div class="ttdeci">virtual void handleFatalErrorCondition(StringRef message)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a524756bea06c8807ba08dbeb5da9c34d"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a524756bea06c8807ba08dbeb5da9c34d">Catch::IResultCapture::handleUnexpectedInflightException</a></div><div class="ttdeci">virtual void handleUnexpectedInflightException(AssertionInfo const &info, std::string &&message, AssertionReaction &reaction)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a59a2b05391e464954575d2afb6d5d607"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a59a2b05391e464954575d2afb6d5d607">Catch::IResultCapture::handleExpr</a></div><div class="ttdeci">virtual void handleExpr(AssertionInfo const &info, ITransientExpression const &expr, AssertionReaction &reaction)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a5b31d0da45a3e45bd2a99cee7c81fbe9"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a5b31d0da45a3e45bd2a99cee7c81fbe9">Catch::IResultCapture::notifyAssertionStarted</a></div><div class="ttdeci">virtual void notifyAssertionStarted(AssertionInfo const &info)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a5dd461a2beebddd4459c8267500dbfcc"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a5dd461a2beebddd4459c8267500dbfcc">Catch::IResultCapture::handleMessage</a></div><div class="ttdeci">virtual void handleMessage(AssertionInfo const &info, ResultWas::OfType resultType, std::string &&message, AssertionReaction &reaction)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a6382ed20486e2d9a020da971c6d5c53d"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a6382ed20486e2d9a020da971c6d5c53d">Catch::IResultCapture::handleUnexpectedExceptionNotThrown</a></div><div class="ttdeci">virtual void handleUnexpectedExceptionNotThrown(AssertionInfo const &info, AssertionReaction &reaction)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a68894109a49c7c6d62e583bbd6f6556b"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a68894109a49c7c6d62e583bbd6f6556b">Catch::IResultCapture::benchmarkFailed</a></div><div class="ttdeci">virtual void benchmarkFailed(StringRef error)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a70ac2d7c143aaba84e5ce8a8dbcfdf88"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a70ac2d7c143aaba84e5ce8a8dbcfdf88">Catch::IResultCapture::~IResultCapture</a></div><div class="ttdeci">virtual ~IResultCapture()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a89b89372eb09cc44f8dcad363de6157d"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a89b89372eb09cc44f8dcad363de6157d">Catch::IResultCapture::handleIncomplete</a></div><div class="ttdeci">virtual void handleIncomplete(AssertionInfo const &info)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a911474796a49609a26da3cb726595077"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a911474796a49609a26da3cb726595077">Catch::IResultCapture::sectionEnded</a></div><div class="ttdeci">virtual void sectionEnded(SectionEndInfo &&endInfo)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a91d154c1e087e383dcde5aad95cb6a05"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a91d154c1e087e383dcde5aad95cb6a05">Catch::IResultCapture::pushScopedMessage</a></div><div class="ttdeci">virtual void pushScopedMessage(MessageInfo const &message)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a973435fbdcb2f6f07a0ec5719a01e956"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a973435fbdcb2f6f07a0ec5719a01e956">Catch::IResultCapture::lastAssertionPassed</a></div><div class="ttdeci">virtual bool lastAssertionPassed()=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_a9b0ef2cb071e9a9dc6ec1b533026aea7"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#a9b0ef2cb071e9a9dc6ec1b533026aea7">Catch::IResultCapture::assertionPassed</a></div><div class="ttdeci">virtual void assertionPassed()=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_aa587a5e482902f91c14a4d575589fb70"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#aa587a5e482902f91c14a4d575589fb70">Catch::IResultCapture::acquireGeneratorTracker</a></div><div class="ttdeci">virtual IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName, SourceLineInfo const &lineInfo)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_aaa54841942b2fc40e6be19b94f57f18b"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#aaa54841942b2fc40e6be19b94f57f18b">Catch::IResultCapture::sectionStarted</a></div><div class="ttdeci">virtual bool sectionStarted(StringRef sectionName, SourceLineInfo const &sectionLineInfo, Counts &assertions)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_ab7dbdf8aa28427119583e24dbb302c63"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#ab7dbdf8aa28427119583e24dbb302c63">Catch::IResultCapture::handleNonExpr</a></div><div class="ttdeci">virtual void handleNonExpr(AssertionInfo const &info, ResultWas::OfType resultType, AssertionReaction &reaction)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_ac95c81a362630e5f80084e1a42a806d6"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#ac95c81a362630e5f80084e1a42a806d6">Catch::IResultCapture::sectionEndedEarly</a></div><div class="ttdeci">virtual void sectionEndedEarly(SectionEndInfo &&endInfo)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_ae63ecec95db4c236c63ecf616f483810"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#ae63ecec95db4c236c63ecf616f483810">Catch::IResultCapture::exceptionEarlyReported</a></div><div class="ttdeci">virtual void exceptionEarlyReported()=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_aea1617f4a84cc648246aa3ed6918b5bf"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#aea1617f4a84cc648246aa3ed6918b5bf">Catch::IResultCapture::getCurrentTestName</a></div><div class="ttdeci">virtual std::string getCurrentTestName() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1IResultCapture_html_aff96862103881a6e002066000de65ae2"><div class="ttname"><a href="classCatch_1_1IResultCapture.html#aff96862103881a6e002066000de65ae2">Catch::IResultCapture::benchmarkPreparing</a></div><div class="ttdeci">virtual void benchmarkPreparing(StringRef name)=0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITestInvoker_html"><div class="ttname"><a href="classCatch_1_1ITestInvoker.html">Catch::ITestInvoker</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5967</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITestInvoker_html_a43db31a32490670701161fad7c8c97e3"><div class="ttname"><a href="classCatch_1_1ITestInvoker.html#a43db31a32490670701161fad7c8c97e3">Catch::ITestInvoker::prepareTestCase</a></div><div class="ttdeci">virtual void prepareTestCase()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7095</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITestInvoker_html_a6fcd5c5b67d6d5ade6491ff33411ca7f"><div class="ttname"><a href="classCatch_1_1ITestInvoker.html#a6fcd5c5b67d6d5ade6491ff33411ca7f">Catch::ITestInvoker::invoke</a></div><div class="ttdeci">virtual void invoke() const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITestInvoker_html_a71968ab16ca03c8008b1ca25ca5b4c17"><div class="ttname"><a href="classCatch_1_1ITestInvoker.html#a71968ab16ca03c8008b1ca25ca5b4c17">Catch::ITestInvoker::tearDownTestCase</a></div><div class="ttdeci">virtual void tearDownTestCase()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7096</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITestInvoker_html_a99f1c750e08df86e117995ea75b5dd9d"><div class="ttname"><a href="classCatch_1_1ITestInvoker.html#a99f1c750e08df86e117995ea75b5dd9d">Catch::ITestInvoker::~ITestInvoker</a></div><div class="ttdeci">virtual ~ITestInvoker()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html">Catch::ITransientExpression</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5304</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_a4646e2b5e0156e913653ec3b9b60c942"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#a4646e2b5e0156e913653ec3b9b60c942">Catch::ITransientExpression::m_result</a></div><div class="ttdeci">bool m_result</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5306</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_a4a5f9ba111d8832ebca336d68486f6ce"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#a4a5f9ba111d8832ebca336d68486f6ce">Catch::ITransientExpression::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &out, ITransientExpression const &expr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5325</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_a5cd3e95366a4efb2e351aa62def0fe8e"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#a5cd3e95366a4efb2e351aa62def0fe8e">Catch::ITransientExpression::getResult</a></div><div class="ttdeci">constexpr auto getResult() const -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5313</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_a6cd3f868f1346293bd706578cde47873"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#a6cd3f868f1346293bd706578cde47873">Catch::ITransientExpression::ITransientExpression</a></div><div class="ttdeci">constexpr ITransientExpression(bool isBinaryExpression, bool result)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5317</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_a75ce48da824d514d08152d396abb28d8"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#a75ce48da824d514d08152d396abb28d8">Catch::ITransientExpression::m_isBinaryExpression</a></div><div class="ttdeci">bool m_isBinaryExpression</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5305</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_aad59bc043e01f4e7d727d9158a846038"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#aad59bc043e01f4e7d727d9158a846038">Catch::ITransientExpression::isBinaryExpression</a></div><div class="ttdeci">constexpr auto isBinaryExpression() const -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5312</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_aaf4838293904ee28ef9c147f9069d56d"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#aaf4838293904ee28ef9c147f9069d56d">Catch::ITransientExpression::streamReconstructedExpression</a></div><div class="ttdeci">virtual void streamReconstructedExpression(std::ostream &os) const</div><div class="ttdoc">This function has to be overriden by the derived class.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3819</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_ab4f9ce61ed614e17b2c63e2b7c88c5fb"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#ab4f9ce61ed614e17b2c63e2b7c88c5fb">Catch::ITransientExpression::~ITransientExpression</a></div><div class="ttdeci">~ITransientExpression()=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_afa2112610febd70d5f6563fb82b83b73"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#afa2112610febd70d5f6563fb82b83b73">Catch::ITransientExpression::ITransientExpression</a></div><div class="ttdeci">constexpr ITransientExpression(ITransientExpression const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ITransientExpression_html_afb1ea60be183ff81fcea46f0fe0672e0"><div class="ttname"><a href="classCatch_1_1ITransientExpression.html#afb1ea60be183ff81fcea46f0fe0672e0">Catch::ITransientExpression::operator=</a></div><div class="ttdeci">constexpr ITransientExpression & operator=(ITransientExpression const &)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html"><div class="ttname"><a href="classCatch_1_1LazyExpression.html">Catch::LazyExpression</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3295</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_a4301a3aa57b612dd8b6ef8461742ecab"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#a4301a3aa57b612dd8b6ef8461742ecab">Catch::LazyExpression::AssertionHandler</a></div><div class="ttdeci">friend class AssertionHandler</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3296</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_a5a9ce4c2401a262c21b4e107551180bc"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#a5a9ce4c2401a262c21b4e107551180bc">Catch::LazyExpression::m_transientExpression</a></div><div class="ttdeci">ITransientExpression const * m_transientExpression</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3300</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_a64019eb137f5ce447cdc71cb80b6e7a4"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#a64019eb137f5ce447cdc71cb80b6e7a4">Catch::LazyExpression::AssertionStats</a></div><div class="ttdeci">friend struct AssertionStats</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3297</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_a975fdfe2bb139512024bb479d478425e"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#a975fdfe2bb139512024bb479d478425e">Catch::LazyExpression::m_isNegated</a></div><div class="ttdeci">bool m_isNegated</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3301</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_a9c6e5852c18f5e54391822ac2ad9ebf7"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#a9c6e5852c18f5e54391822ac2ad9ebf7">Catch::LazyExpression::LazyExpression</a></div><div class="ttdeci">constexpr LazyExpression(bool isNegated)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3303</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_aa3648643bd1eb5fa1206eb6dc83a52ff"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#aa3648643bd1eb5fa1206eb6dc83a52ff">Catch::LazyExpression::LazyExpression</a></div><div class="ttdeci">constexpr LazyExpression(LazyExpression const &other)=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1LazyExpression_html_af3aa096bb29a772bc534830f29a2ce7a"><div class="ttname"><a href="classCatch_1_1LazyExpression.html#af3aa096bb29a772bc534830f29a2ce7a">Catch::LazyExpression::RunContext</a></div><div class="ttdeci">friend class RunContext</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3298</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html"><div class="ttname"><a href="classCatch_1_1Optional.html">Catch::Optional</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3537</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a093e7b10b13367c45f797a9539058591"><div class="ttname"><a href="classCatch_1_1Optional.html#a093e7b10b13367c45f797a9539058591">Catch::Optional::operator!=</a></div><div class="ttdeci">friend bool operator!=(Optional const &a, Optional const &b)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3624</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a0d2520264f58c455d4a0329f6c1ad378"><div class="ttname"><a href="classCatch_1_1Optional.html#a0d2520264f58c455d4a0329f6c1ad378">Catch::Optional::storage</a></div><div class="ttdeci">char storage[sizeof(T)]</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3630</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a11640fe6b19a9d2ecdfd1704a47d4a6b"><div class="ttname"><a href="classCatch_1_1Optional.html#a11640fe6b19a9d2ecdfd1704a47d4a6b">Catch::Optional::Optional</a></div><div class="ttdeci">Optional(T const &_value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3542</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a1cd2d43cdf6c3942d9697d05bccfb5bf"><div class="ttname"><a href="classCatch_1_1Optional.html#a1cd2d43cdf6c3942d9697d05bccfb5bf">Catch::Optional::operator*</a></div><div class="ttdeci">T const & operator*() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3590</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a21c7049e5e3fbdc06566e814be31a1d1"><div class="ttname"><a href="classCatch_1_1Optional.html#a21c7049e5e3fbdc06566e814be31a1d1">Catch::Optional::some</a></div><div class="ttdeci">bool some() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3607</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a28ad04d25eaab682db6689ec0f2cb0ce"><div class="ttname"><a href="classCatch_1_1Optional.html#a28ad04d25eaab682db6689ec0f2cb0ce">Catch::Optional::operator-></a></div><div class="ttdeci">T * operator->()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3594</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a2e786500fe59b1a006c4a59ccc068303"><div class="ttname"><a href="classCatch_1_1Optional.html#a2e786500fe59b1a006c4a59ccc068303">Catch::Optional::operator*</a></div><div class="ttdeci">T & operator*()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3586</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a3407e0994fe2e46eb3a333f78c21cadf"><div class="ttname"><a href="classCatch_1_1Optional.html#a3407e0994fe2e46eb3a333f78c21cadf">Catch::Optional::operator=</a></div><div class="ttdeci">Optional & operator=(T const &_value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3547</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a4761d94b45a205bb9b5e7408e6cf963d"><div class="ttname"><a href="classCatch_1_1Optional.html#a4761d94b45a205bb9b5e7408e6cf963d">Catch::Optional::none</a></div><div class="ttdeci">bool none() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3608</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a4d8e2b6e96fe4156e1ff6c7eb6a47176"><div class="ttname"><a href="classCatch_1_1Optional.html#a4d8e2b6e96fe4156e1ff6c7eb6a47176">Catch::Optional::~Optional</a></div><div class="ttdeci">~Optional()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3540</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a543ecebe7d36d7ec101671c6a82db705"><div class="ttname"><a href="classCatch_1_1Optional.html#a543ecebe7d36d7ec101671c6a82db705">Catch::Optional::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3581</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a5a9aa5d9ddd0a03bbde2119ae1a3290d"><div class="ttname"><a href="classCatch_1_1Optional.html#a5a9aa5d9ddd0a03bbde2119ae1a3290d">Catch::Optional::operator=</a></div><div class="ttdeci">Optional & operator=(T &&_value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3552</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a6d145286d1378bc01b4239101d472da6"><div class="ttname"><a href="classCatch_1_1Optional.html#a6d145286d1378bc01b4239101d472da6">Catch::Optional::operator=</a></div><div class="ttdeci">Optional & operator=(Optional const &_other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3564</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a7f41723152dc3657fe0657f93035dc50"><div class="ttname"><a href="classCatch_1_1Optional.html#a7f41723152dc3657fe0657f93035dc50">Catch::Optional::nullableValue</a></div><div class="ttdeci">T * nullableValue</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3629</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a8b50f316f18ebb56b8b510158ea3f328"><div class="ttname"><a href="classCatch_1_1Optional.html#a8b50f316f18ebb56b8b510158ea3f328">Catch::Optional::operator==</a></div><div class="ttdeci">friend bool operator==(Optional const &a, Optional const &b)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3615</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_a963601c7cbbd0ce468fd07916cd1d991"><div class="ttname"><a href="classCatch_1_1Optional.html#a963601c7cbbd0ce468fd07916cd1d991">Catch::Optional::Optional</a></div><div class="ttdeci">Optional(T &&_value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3544</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_aa528301eb45724cf1db1b2c7123778f3"><div class="ttname"><a href="classCatch_1_1Optional.html#aa528301eb45724cf1db1b2c7123778f3">Catch::Optional::valueOr</a></div><div class="ttdeci">T valueOr(T const &defaultValue) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3603</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_ac685eb1a7d000aee65cee303adaed49b"><div class="ttname"><a href="classCatch_1_1Optional.html#ac685eb1a7d000aee65cee303adaed49b">Catch::Optional::Optional</a></div><div class="ttdeci">Optional(Optional &&_other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3560</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_adb48c01b92e96dd355e267e3b7297187"><div class="ttname"><a href="classCatch_1_1Optional.html#adb48c01b92e96dd355e267e3b7297187">Catch::Optional::Optional</a></div><div class="ttdeci">Optional()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3539</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_ae295c76939d8f51b51d2790e40dc7eda"><div class="ttname"><a href="classCatch_1_1Optional.html#ae295c76939d8f51b51d2790e40dc7eda">Catch::Optional::operator-></a></div><div class="ttdeci">const T * operator->() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3598</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_aec0083bc2eb795be370f93811dda4716"><div class="ttname"><a href="classCatch_1_1Optional.html#aec0083bc2eb795be370f93811dda4716">Catch::Optional::operator=</a></div><div class="ttdeci">Optional & operator=(Optional &&_other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3571</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Optional_html_af6ee253a7322440833f4aa52624adead"><div class="ttname"><a href="classCatch_1_1Optional.html#af6ee253a7322440833f4aa52624adead">Catch::Optional::Optional</a></div><div class="ttdeci">Optional(Optional const &_other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3558</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html">Catch::ReporterSpec</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3686</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a0371ae20e7e8589beb12a5e3be964f3d"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a0371ae20e7e8589beb12a5e3be964f3d">Catch::ReporterSpec::colourMode</a></div><div class="ttdeci">Optional< ColourMode > const & colourMode() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3712</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a07dad08f0c82e235fe1cc9b0ec32f838"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a07dad08f0c82e235fe1cc9b0ec32f838">Catch::ReporterSpec::m_colourMode</a></div><div class="ttdeci">Optional< ColourMode > m_colourMode</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3689</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a0e5fa7c1edb8caebfd9468cbb5742942"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a0e5fa7c1edb8caebfd9468cbb5742942">Catch::ReporterSpec::m_customOptions</a></div><div class="ttdeci">std::map< std::string, std::string > m_customOptions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3690</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a5ed5c5634c667d64dfc4a18a9534404b"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a5ed5c5634c667d64dfc4a18a9534404b">Catch::ReporterSpec::operator==</a></div><div class="ttdeci">friend bool operator==(ReporterSpec const &lhs, ReporterSpec const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5469</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a6ffea7ca24daf1d8d1b64e434b61dcc0"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a6ffea7ca24daf1d8d1b64e434b61dcc0">Catch::ReporterSpec::customOptions</a></div><div class="ttdeci">std::map< std::string, std::string > const & customOptions() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3714</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a71b0055588d164144557dbdfcc529ed4"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a71b0055588d164144557dbdfcc529ed4">Catch::ReporterSpec::operator!=</a></div><div class="ttdeci">friend bool operator!=(ReporterSpec const &lhs, ReporterSpec const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3694</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a80f4deef91e481a8cf33780cac44aa98"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a80f4deef91e481a8cf33780cac44aa98">Catch::ReporterSpec::outputFile</a></div><div class="ttdeci">Optional< std::string > const & outputFile() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3708</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_a8767d90584b1feaccb75d157045c5e7a"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#a8767d90584b1feaccb75d157045c5e7a">Catch::ReporterSpec::name</a></div><div class="ttdeci">std::string const & name() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3706</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_aac26108d5319d5522dc4da69c85ef78f"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#aac26108d5319d5522dc4da69c85ef78f">Catch::ReporterSpec::ReporterSpec</a></div><div class="ttdeci">ReporterSpec(std::string name, Optional< std::string > outputFileName, Optional< ColourMode > colourMode, std::map< std::string, std::string > customOptions)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5533</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_ad80296f4842b1232146c18fced36aaff"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#ad80296f4842b1232146c18fced36aaff">Catch::ReporterSpec::m_name</a></div><div class="ttdeci">std::string m_name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3687</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReporterSpec_html_ad98793da3055504211331d3fba6999ac"><div class="ttname"><a href="classCatch_1_1ReporterSpec.html#ad98793da3055504211331d3fba6999ac">Catch::ReporterSpec::m_outputFileName</a></div><div class="ttdeci">Optional< std::string > m_outputFileName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3688</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html">Catch::ReusableStringStream</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2355</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html_a3d93d9f26cddd6c5c48b6ef63c694119"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html#a3d93d9f26cddd6c5c48b6ef63c694119">Catch::ReusableStringStream::str</a></div><div class="ttdeci">std::string str() const</div><div class="ttdoc">Returns the serialized state.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5588</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html_a6881808c60a080d4e24a0b81c94cbf67"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html#a6881808c60a080d4e24a0b81c94cbf67">Catch::ReusableStringStream::get</a></div><div class="ttdeci">auto get() -> std::ostream &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2388</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html_a6e8154ffe67117de424c491e3b192504"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html#a6e8154ffe67117de424c491e3b192504">Catch::ReusableStringStream::m_index</a></div><div class="ttdeci">std::size_t m_index</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2356</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html_a9b3f8c52b0d2d63ffd825297a9c09781"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html#a9b3f8c52b0d2d63ffd825297a9c09781">Catch::ReusableStringStream::ReusableStringStream</a></div><div class="ttdeci">ReusableStringStream()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5577</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ReusableStringStream_html_ae8dc0aa8ab418990869cd5ea9ee51f14"><div class="ttname"><a href="classCatch_1_1ReusableStringStream.html#ae8dc0aa8ab418990869cd5ea9ee51f14">Catch::ReusableStringStream::m_oss</a></div><div class="ttdeci">std::ostream * m_oss</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2357</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ScopedMessage_html_a4fe5607c1f7407240a0da8405b1c12e7"><div class="ttname"><a href="classCatch_1_1ScopedMessage.html#a4fe5607c1f7407240a0da8405b1c12e7">Catch::ScopedMessage::m_moved</a></div><div class="ttdeci">bool m_moved</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4012</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ScopedMessage_html_a5fe2e79afdfd737818c15edfc49f378e"><div class="ttname"><a href="classCatch_1_1ScopedMessage.html#a5fe2e79afdfd737818c15edfc49f378e">Catch::ScopedMessage::ScopedMessage</a></div><div class="ttdeci">ScopedMessage(ScopedMessage &duplicate)=delete</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ScopedMessage_html_a8eab57b16f308eeb19bbb2b01a43e212"><div class="ttname"><a href="classCatch_1_1ScopedMessage.html#a8eab57b16f308eeb19bbb2b01a43e212">Catch::ScopedMessage::ScopedMessage</a></div><div class="ttdeci">ScopedMessage(MessageBuilder &&builder)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:977</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1ScopedMessage_html_ae6e1476f389cc6e1586f033b3747b27b"><div class="ttname"><a href="classCatch_1_1ScopedMessage.html#ae6e1476f389cc6e1586f033b3747b27b">Catch::ScopedMessage::m_info</a></div><div class="ttdeci">MessageInfo m_info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4011</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Section_html_a038bb0d5d2718df6e3ae1ece4b3d695d"><div class="ttname"><a href="classCatch_1_1Section.html#a038bb0d5d2718df6e3ae1ece4b3d695d">Catch::Section::m_sectionIncluded</a></div><div class="ttdeci">bool m_sectionIncluded</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5886</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Section_html_a1548993afa64305a1b093391c6884b7e"><div class="ttname"><a href="classCatch_1_1Section.html#a1548993afa64305a1b093391c6884b7e">Catch::Section::m_timer</a></div><div class="ttdeci">Timer m_timer</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5887</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Section_html_a22f54832b33b341ae5a78807a6219af6"><div class="ttname"><a href="classCatch_1_1Section.html#a22f54832b33b341ae5a78807a6219af6">Catch::Section::m_info</a></div><div class="ttdeci">SectionInfo m_info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5883</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Section_html_a8a721885bdf057651c2745e67dad5946"><div class="ttname"><a href="classCatch_1_1Section.html#a8a721885bdf057651c2745e67dad5946">Catch::Section::Section</a></div><div class="ttdeci">Section(SectionInfo &&info)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6310</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Section_html_ae0a2acc394d4bd1bc7a51a1445d25034"><div class="ttname"><a href="classCatch_1_1Section.html#ae0a2acc394d4bd1bc7a51a1445d25034">Catch::Section::m_assertions</a></div><div class="ttdeci">Counts m_assertions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5885</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a122417ed44bfa29a229941b1e12b91a3"><div class="ttname"><a href="classCatch_1_1Session.html#a122417ed44bfa29a229941b1e12b91a3">Catch::Session::useConfigData</a></div><div class="ttdeci">void useConfigData(ConfigData const &configData)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1395</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a4286263c17b16c3ea9d0632bd4f8eaee"><div class="ttname"><a href="classCatch_1_1Session.html#a4286263c17b16c3ea9d0632bd4f8eaee">Catch::Session::showHelp</a></div><div class="ttdeci">void showHelp() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1328</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a4564992e2b028770e38a1dcc6fff8b34"><div class="ttname"><a href="classCatch_1_1Session.html#a4564992e2b028770e38a1dcc6fff8b34">Catch::Session::Session</a></div><div class="ttdeci">Session()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1290</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a5393c1a489adedc24a22c57cb7d0b1fb"><div class="ttname"><a href="classCatch_1_1Session.html#a5393c1a489adedc24a22c57cb7d0b1fb">Catch::Session::m_startupExceptions</a></div><div class="ttdeci">bool m_startupExceptions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4973</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a69fa5a937e338428851b8193a1a57c6e"><div class="ttname"><a href="classCatch_1_1Session.html#a69fa5a937e338428851b8193a1a57c6e">Catch::Session::m_configData</a></div><div class="ttdeci">ConfigData m_configData</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4971</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a76cd4bf9eb85e35f4df746278d758c79"><div class="ttname"><a href="classCatch_1_1Session.html#a76cd4bf9eb85e35f4df746278d758c79">Catch::Session::m_config</a></div><div class="ttdeci">Detail::unique_ptr< Config > m_config</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4972</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_a8c82b89613ebd99f1ba1a3f7b634e571"><div class="ttname"><a href="classCatch_1_1Session.html#a8c82b89613ebd99f1ba1a3f7b634e571">Catch::Session::run</a></div><div class="ttdeci">int run(int argc, CharT const *const argv[])</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4952</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_aadb20e3b2955209aaab3126c0c3da7a6"><div class="ttname"><a href="classCatch_1_1Session.html#aadb20e3b2955209aaab3126c0c3da7a6">Catch::Session::configData</a></div><div class="ttdeci">ConfigData & configData()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1419</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_ac1d53d25ac1252c58df1c4c41fa461bb"><div class="ttname"><a href="classCatch_1_1Session.html#ac1d53d25ac1252c58df1c4c41fa461bb">Catch::Session::m_cli</a></div><div class="ttdeci">Clara::Parser m_cli</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4970</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_ac28e293014007bbd9f6383c2d5daa1e4"><div class="ttname"><a href="classCatch_1_1Session.html#ac28e293014007bbd9f6383c2d5daa1e4">Catch::Session::libIdentify</a></div><div class="ttdeci">void libIdentify()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1334</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Session_html_af890db02c69e36356ac9f8be4084c464"><div class="ttname"><a href="classCatch_1_1Session.html#af890db02c69e36356ac9f8be4084c464">Catch::Session::applyCommandLine</a></div><div class="ttdeci">int applyCommandLine(int argc, char const *const *argv)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1342</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html">Catch::SimplePcg32</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7968</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a045c99a96f9b0faf384e22f871576282"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a045c99a96f9b0faf384e22f871576282">Catch::SimplePcg32::SimplePcg32</a></div><div class="ttdeci">SimplePcg32()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7980</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a220ca38f6d16804c6e99937a673ec3ff"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a220ca38f6d16804c6e99937a673ec3ff">Catch::SimplePcg32::result_type</a></div><div class="ttdeci">std::uint32_t result_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7971</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a34f89a8ee054db204c8cf17632ac4c03"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a34f89a8ee054db204c8cf17632ac4c03">Catch::SimplePcg32::s_inc</a></div><div class="ttdeci">static const std::uint64_t s_inc</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:8002</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a3a5dd5385309d3999943697c33f57715"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a3a5dd5385309d3999943697c33f57715">Catch::SimplePcg32::min</a></div><div class="ttdeci">static constexpr result_type min()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7972</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a6eb0691cc730376d80ab49ba6f4e47d6"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a6eb0691cc730376d80ab49ba6f4e47d6">Catch::SimplePcg32::max</a></div><div class="ttdeci">static constexpr result_type max()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7975</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a830bb20e51776b605910f4a00dde46ad"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a830bb20e51776b605910f4a00dde46ad">Catch::SimplePcg32::m_state</a></div><div class="ttdeci">std::uint64_t m_state</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7997</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1SimplePcg32_html_a87e58661dd1fa2994b6b9c38c4efafdb"><div class="ttname"><a href="classCatch_1_1SimplePcg32.html#a87e58661dd1fa2994b6b9c38c4efafdb">Catch::SimplePcg32::state_type</a></div><div class="ttdeci">std::uint64_t state_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7969</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html"><div class="ttname"><a href="classCatch_1_1StringRef.html">Catch::StringRef</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:711</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a0583d4e5ea88c99c121504052a4fcb6c"><div class="ttname"><a href="classCatch_1_1StringRef.html#a0583d4e5ea88c99c121504052a4fcb6c">Catch::StringRef::m_start</a></div><div class="ttdeci">char const * m_start</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:721</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a06b4db8fc82b197004291cf370b2ba7c"><div class="ttname"><a href="classCatch_1_1StringRef.html#a06b4db8fc82b197004291cf370b2ba7c">Catch::StringRef::size_type</a></div><div class="ttdeci">std::size_t size_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:713</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a0b4841c28cbb14ba07296964a0187023"><div class="ttname"><a href="classCatch_1_1StringRef.html#a0b4841c28cbb14ba07296964a0187023">Catch::StringRef::empty</a></div><div class="ttdeci">constexpr auto empty() const noexcept -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:760</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a0e8d47921104f73376ad48337339edef"><div class="ttname"><a href="classCatch_1_1StringRef.html#a0e8d47921104f73376ad48337339edef">Catch::StringRef::operator+</a></div><div class="ttdeci">friend std::string operator+(StringRef lhs, StringRef rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6605</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a22adacb4efefaaed6cf899153bfbc1b8"><div class="ttname"><a href="classCatch_1_1StringRef.html#a22adacb4efefaaed6cf899153bfbc1b8">Catch::StringRef::operator!=</a></div><div class="ttdeci">auto operator!=(StringRef other) const noexcept -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:748</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a2f91b207a5797f0e2633c13d63f06929"><div class="ttname"><a href="classCatch_1_1StringRef.html#a2f91b207a5797f0e2633c13d63f06929">Catch::StringRef::operator[]</a></div><div class="ttdeci">constexpr auto operator[](size_type index) const noexcept -> char</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:752</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a38d077e89f7f2ce666507ab28dd28653"><div class="ttname"><a href="classCatch_1_1StringRef.html#a38d077e89f7f2ce666507ab28dd28653">Catch::StringRef::s_empty</a></div><div class="ttdeci">static constexpr char const *const s_empty</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:719</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a3ce9afc711b559d6cc59666898fc0828"><div class="ttname"><a href="classCatch_1_1StringRef.html#a3ce9afc711b559d6cc59666898fc0828">Catch::StringRef::end</a></div><div class="ttdeci">constexpr const_iterator end() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:785</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a41c0073b47c737088ae557ab8a07e773"><div class="ttname"><a href="classCatch_1_1StringRef.html#a41c0073b47c737088ae557ab8a07e773">Catch::StringRef::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &os, StringRef str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6601</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a4634fb03222f376c5d76e8c16f1743d1"><div class="ttname"><a href="classCatch_1_1StringRef.html#a4634fb03222f376c5d76e8c16f1743d1">Catch::StringRef::compare</a></div><div class="ttdeci">int compare(StringRef rhs) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6580</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a505ac756fc052fd96cdbc9de3c04d398"><div class="ttname"><a href="classCatch_1_1StringRef.html#a505ac756fc052fd96cdbc9de3c04d398">Catch::StringRef::npos</a></div><div class="ttdeci">static constexpr size_type npos</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:716</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a53ffc0e61b39326c3347042bcf1f5424"><div class="ttname"><a href="classCatch_1_1StringRef.html#a53ffc0e61b39326c3347042bcf1f5424">Catch::StringRef::operator<</a></div><div class="ttdeci">bool operator<(StringRef rhs) const noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6573</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a611907867225695d38198c058758c92d"><div class="ttname"><a href="classCatch_1_1StringRef.html#a611907867225695d38198c058758c92d">Catch::StringRef::StringRef</a></div><div class="ttdeci">constexpr StringRef() noexcept=default</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a6f0336769aed4b5c1a9001314c2e2451"><div class="ttname"><a href="classCatch_1_1StringRef.html#a6f0336769aed4b5c1a9001314c2e2451">Catch::StringRef::operator==</a></div><div class="ttdeci">auto operator==(StringRef other) const noexcept -> bool</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:744</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a7f6ea2c2386b3800687ad1f7327b704b"><div class="ttname"><a href="classCatch_1_1StringRef.html#a7f6ea2c2386b3800687ad1f7327b704b">Catch::StringRef::data</a></div><div class="ttdeci">constexpr char const * data() const noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:780</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a7fe41469048f906e9a847798cd335f23"><div class="ttname"><a href="classCatch_1_1StringRef.html#a7fe41469048f906e9a847798cd335f23">Catch::StringRef::StringRef</a></div><div class="ttdeci">StringRef(std::string const &stdString) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:734</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_a91ee253f5b7e43303352186139845753"><div class="ttname"><a href="classCatch_1_1StringRef.html#a91ee253f5b7e43303352186139845753">Catch::StringRef::m_size</a></div><div class="ttdeci">size_type m_size</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:722</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_aabf71767dfce1066e721456d54972bc5"><div class="ttname"><a href="classCatch_1_1StringRef.html#aabf71767dfce1066e721456d54972bc5">Catch::StringRef::substr</a></div><div class="ttdeci">constexpr StringRef substr(size_type start, size_type length) const noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:770</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_ab0adc7198d60867c2842b998ae456795"><div class="ttname"><a href="classCatch_1_1StringRef.html#ab0adc7198d60867c2842b998ae456795">Catch::StringRef::begin</a></div><div class="ttdeci">constexpr const_iterator begin() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:784</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_ac3aa3d16f48b5429a480f823c504f93c"><div class="ttname"><a href="classCatch_1_1StringRef.html#ac3aa3d16f48b5429a480f823c504f93c">Catch::StringRef::const_iterator</a></div><div class="ttdeci">const char * const_iterator</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:714</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_acb22719801de2b64361b4c283080d4e5"><div class="ttname"><a href="classCatch_1_1StringRef.html#acb22719801de2b64361b4c283080d4e5">Catch::StringRef::size</a></div><div class="ttdeci">constexpr auto size() const noexcept -> size_type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:763</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1StringRef_html_ae0f042cea0672f394e866f4b54560747"><div class="ttname"><a href="classCatch_1_1StringRef.html#ae0f042cea0672f394e866f4b54560747">Catch::StringRef::operator+=</a></div><div class="ttdeci">friend std::string & operator+=(std::string &lhs, StringRef rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6613</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_a2da696381f3c5bc0aa9b0046fed4aab6"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#a2da696381f3c5bc0aa9b0046fed4aab6">Catch::TestCaseHandle::m_info</a></div><div class="ttdeci">TestCaseInfo * m_info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7168</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_a3ceefa8ee4fecb6aba985fb539ef94f4"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#a3ceefa8ee4fecb6aba985fb539ef94f4">Catch::TestCaseHandle::invoke</a></div><div class="ttdeci">void invoke() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7182</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_a7e78330f0d1a6ddbb952369bf37b1e52"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#a7e78330f0d1a6ddbb952369bf37b1e52">Catch::TestCaseHandle::prepareTestCase</a></div><div class="ttdeci">void prepareTestCase() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7174</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_a9a89d26457c8585f93eb8baea0f39884"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#a9a89d26457c8585f93eb8baea0f39884">Catch::TestCaseHandle::getTestCaseInfo</a></div><div class="ttdeci">constexpr TestCaseInfo const & getTestCaseInfo() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7186</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_aa3ff2082845c57d48277907110fd8514"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#aa3ff2082845c57d48277907110fd8514">Catch::TestCaseHandle::m_invoker</a></div><div class="ttdeci">ITestInvoker * m_invoker</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7169</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_ad243c3ac78d702cda848c909383da2d7"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#ad243c3ac78d702cda848c909383da2d7">Catch::TestCaseHandle::tearDownTestCase</a></div><div class="ttdeci">void tearDownTestCase() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7178</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestCaseHandle_html_ae265e45e0c834125ebd1cb6a370ebb83"><div class="ttname"><a href="classCatch_1_1TestCaseHandle.html#ae265e45e0c834125ebd1cb6a370ebb83">Catch::TestCaseHandle::TestCaseHandle</a></div><div class="ttdeci">constexpr TestCaseHandle(TestCaseInfo *info, ITestInvoker *invoker)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7171</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerAsMethod_html_a4851e50d6b43c022c41d5de776a27ed7"><div class="ttname"><a href="classCatch_1_1TestInvokerAsMethod.html#a4851e50d6b43c022c41d5de776a27ed7">Catch::TestInvokerAsMethod::m_testAsMethod</a></div><div class="ttdeci">void(C::* m_testAsMethod)()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6006</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerAsMethod_html_a8115a06efe273f4112ec0b5452c1b5f2"><div class="ttname"><a href="classCatch_1_1TestInvokerAsMethod.html#a8115a06efe273f4112ec0b5452c1b5f2">Catch::TestInvokerAsMethod::invoke</a></div><div class="ttdeci">void invoke() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6011</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerAsMethod_html_ab6ae1265119f3ffd09b2f8b76c8268bb"><div class="ttname"><a href="classCatch_1_1TestInvokerAsMethod.html#ab6ae1265119f3ffd09b2f8b76c8268bb">Catch::TestInvokerAsMethod::TestInvokerAsMethod</a></div><div class="ttdeci">constexpr TestInvokerAsMethod(void(C::*testAsMethod)()) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6008</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_a04b87ab951d6974a6db5e591d71ae394"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#a04b87ab951d6974a6db5e591d71ae394">Catch::TestInvokerFixture::invoke</a></div><div class="ttdeci">void invoke() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6041</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_a0bcc8c4ab449a90509093bff2c471aa1"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#a0bcc8c4ab449a90509093bff2c471aa1">Catch::TestInvokerFixture::TestInvokerFixture</a></div><div class="ttdeci">constexpr TestInvokerFixture(void(C::*testAsMethod)() const) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6030</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_a684322fda0b8df02f46c35f6c472cb4f"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#a684322fda0b8df02f46c35f6c472cb4f">Catch::TestInvokerFixture::m_fixture</a></div><div class="ttdeci">Detail::unique_ptr< C > m_fixture</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6027</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_a9fe1bd75d0aac05c56a292e0badfaba1"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#a9fe1bd75d0aac05c56a292e0badfaba1">Catch::TestInvokerFixture::tearDownTestCase</a></div><div class="ttdeci">void tearDownTestCase() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6037</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_acc4b336d1cdf8261d3a0a2985707647a"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#acc4b336d1cdf8261d3a0a2985707647a">Catch::TestInvokerFixture::m_testAsMethod</a></div><div class="ttdeci">void(C::* m_testAsMethod)() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6026</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestInvokerFixture_html_adf8b4e93f443c8fdbcbea4b59d0a151f"><div class="ttname"><a href="classCatch_1_1TestInvokerFixture.html#adf8b4e93f443c8fdbcbea4b59d0a151f">Catch::TestInvokerFixture::prepareTestCase</a></div><div class="ttdeci">void prepareTestCase() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6033</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1NamePattern_html_a105f14dc1a786334d589cfe211663199"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1NamePattern.html#a105f14dc1a786334d589cfe211663199">Catch::TestSpec::NamePattern::NamePattern</a></div><div class="ttdeci">NamePattern(std::string const &name, std::string const &filterString)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1794</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1NamePattern_html_a2906467f63b2239f4a8cf6211a4bd0e1"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1NamePattern.html#a2906467f63b2239f4a8cf6211a4bd0e1">Catch::TestSpec::NamePattern::m_wildcardPattern</a></div><div class="ttdeci">WildcardPattern m_wildcardPattern</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3461</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1NamePattern_html_aa48f2bb185ea2fd8c777da0b925d28f7"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1NamePattern.html#aa48f2bb185ea2fd8c777da0b925d28f7">Catch::TestSpec::NamePattern::matches</a></div><div class="ttdeci">bool matches(TestCaseInfo const &testCase) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1799</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1NamePattern_html_ae856d54dea1edfe2adacf4f717250aef"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1NamePattern.html#ae856d54dea1edfe2adacf4f717250aef">Catch::TestSpec::NamePattern::serializeTo</a></div><div class="ttdeci">void serializeTo(std::ostream &out) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1803</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_a367d54387c5ec6714a290fed6fff2f8d"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#a367d54387c5ec6714a290fed6fff2f8d">Catch::TestSpec::Pattern::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &out, Pattern const &pattern)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3445</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_a5d2a89cf8fc86dd6430c97d5bcc08c15"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#a5d2a89cf8fc86dd6430c97d5bcc08c15">Catch::TestSpec::Pattern::~Pattern</a></div><div class="ttdeci">virtual ~Pattern()</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_a93ef584ef74b7631e2569cee8626d2cf"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#a93ef584ef74b7631e2569cee8626d2cf">Catch::TestSpec::Pattern::Pattern</a></div><div class="ttdeci">Pattern(std::string const &name)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1783</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_a97a0c28ce8d6f55bad15eed4dd07896c"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#a97a0c28ce8d6f55bad15eed4dd07896c">Catch::TestSpec::Pattern::matches</a></div><div class="ttdeci">virtual bool matches(TestCaseInfo const &testCase) const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_aab90aeef486cbb5993d13a09b0ea2046"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#aab90aeef486cbb5993d13a09b0ea2046">Catch::TestSpec::Pattern::name</a></div><div class="ttdeci">std::string const & name() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1789</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_ae342a06a2d8e91b08e0381f5f744c98c"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#ae342a06a2d8e91b08e0381f5f744c98c">Catch::TestSpec::Pattern::serializeTo</a></div><div class="ttdeci">virtual void serializeTo(std::ostream &out) const =0</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1Pattern_html_afed21c2b4042fadb0f4ab50d69ec928b"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1Pattern.html#afed21c2b4042fadb0f4ab50d69ec928b">Catch::TestSpec::Pattern::m_name</a></div><div class="ttdeci">std::string const m_name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3451</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1TagPattern_html_a0f869df564b2f9682899f7e177d88a90"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1TagPattern.html#a0f869df564b2f9682899f7e177d88a90">Catch::TestSpec::TagPattern::m_tag</a></div><div class="ttdeci">std::string m_tag</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3471</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1TagPattern_html_a5a393a3ce431dc0b74ab6e7650a72b1b"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1TagPattern.html#a5a393a3ce431dc0b74ab6e7650a72b1b">Catch::TestSpec::TagPattern::matches</a></div><div class="ttdeci">bool matches(TestCaseInfo const &testCase) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1813</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1TagPattern_html_a706569dc93f0f5c59c9d5b24e60f4ab4"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1TagPattern.html#a706569dc93f0f5c59c9d5b24e60f4ab4">Catch::TestSpec::TagPattern::serializeTo</a></div><div class="ttdeci">void serializeTo(std::ostream &out) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1819</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_1_1TagPattern_html_aa721206ef2031155619bfb7e6d561347"><div class="ttname"><a href="classCatch_1_1TestSpec_1_1TagPattern.html#aa721206ef2031155619bfb7e6d561347">Catch::TestSpec::TagPattern::TagPattern</a></div><div class="ttdeci">TagPattern(std::string const &tag, std::string const &filterString)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1808</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html"><div class="ttname"><a href="classCatch_1_1TestSpec.html">Catch::TestSpec</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3434</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_a06b08ac127c37d48a4353f34bf20c0e3"><div class="ttname"><a href="classCatch_1_1TestSpec.html#a06b08ac127c37d48a4353f34bf20c0e3">Catch::TestSpec::Matches</a></div><div class="ttdeci">std::vector< FilterMatch > Matches</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3496</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_a2342df9eff2c7db0d26432c1ddef796f"><div class="ttname"><a href="classCatch_1_1TestSpec.html#a2342df9eff2c7db0d26432c1ddef796f">Catch::TestSpec::matches</a></div><div class="ttdeci">bool matches(TestCaseInfo const &testCase) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1868</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_a2e48bf00322a3a2f9a4a9f207d6da096"><div class="ttname"><a href="classCatch_1_1TestSpec.html#a2e48bf00322a3a2f9a4a9f207d6da096">Catch::TestSpec::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &out, TestSpec const &spec)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3512</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_a8b4fea0f5a37c5ef447eddceacf113a7"><div class="ttname"><a href="classCatch_1_1TestSpec.html#a8b4fea0f5a37c5ef447eddceacf113a7">Catch::TestSpec::TestSpecParser</a></div><div class="ttdeci">friend class TestSpecParser</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3508</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_a8fca1c29ab3a21ea943f724ab0ecce08"><div class="ttname"><a href="classCatch_1_1TestSpec.html#a8fca1c29ab3a21ea943f724ab0ecce08">Catch::TestSpec::vectorStrings</a></div><div class="ttdeci">std::vector< std::string > vectorStrings</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3497</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_ac05f6fc74f457794b9f6dff95ec7ea7a"><div class="ttname"><a href="classCatch_1_1TestSpec.html#ac05f6fc74f457794b9f6dff95ec7ea7a">Catch::TestSpec::m_invalidSpecs</a></div><div class="ttdeci">std::vector< std::string > m_invalidSpecs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3506</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_ac6d69b4a19677d95e46af0467fc72ecd"><div class="ttname"><a href="classCatch_1_1TestSpec.html#ac6d69b4a19677d95e46af0467fc72ecd">Catch::TestSpec::hasFilters</a></div><div class="ttdeci">bool hasFilters() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1864</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_ae62a33926c9c2c3ab5b6f27a9e7aa484"><div class="ttname"><a href="classCatch_1_1TestSpec.html#ae62a33926c9c2c3ab5b6f27a9e7aa484">Catch::TestSpec::matchesByFilter</a></div><div class="ttdeci">Matches matchesByFilter(std::vector< TestCaseHandle > const &testCases, IConfig const &config) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1872</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_ae6af81e7e267ae9a374d3f4ce0f9b88a"><div class="ttname"><a href="classCatch_1_1TestSpec.html#ae6af81e7e267ae9a374d3f4ce0f9b88a">Catch::TestSpec::getInvalidSpecs</a></div><div class="ttdeci">const vectorStrings & getInvalidSpecs() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1887</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_afc031d95269ce917dde9ff113c597caf"><div class="ttname"><a href="classCatch_1_1TestSpec.html#afc031d95269ce917dde9ff113c597caf">Catch::TestSpec::serializeTo</a></div><div class="ttdeci">void serializeTo(std::ostream &out) const</div><div class="ttdoc">Serializes this test spec into a string that would be parsed into equivalent test spec.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1891</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1TestSpec_html_afe0c1e198e82143eae0fce3d7be0453d"><div class="ttname"><a href="classCatch_1_1TestSpec.html#afe0c1e198e82143eae0fce3d7be0453d">Catch::TestSpec::m_filters</a></div><div class="ttdeci">std::vector< Filter > m_filters</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3505</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html"><div class="ttname"><a href="classCatch_1_1Timer.html">Catch::Timer</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5855</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_a065e37e3c9eb16bd4dcf41971d8deedc"><div class="ttname"><a href="classCatch_1_1Timer.html#a065e37e3c9eb16bd4dcf41971d8deedc">Catch::Timer::getElapsedSeconds</a></div><div class="ttdeci">auto getElapsedSeconds() const -> double</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1928</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_a0a56e879e43f36c102bf9ea8b5fc8b72"><div class="ttname"><a href="classCatch_1_1Timer.html#a0a56e879e43f36c102bf9ea8b5fc8b72">Catch::Timer::start</a></div><div class="ttdeci">void start()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1916</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_a30aaf458dbb59dd8ac8971c9c62e0eac"><div class="ttname"><a href="classCatch_1_1Timer.html#a30aaf458dbb59dd8ac8971c9c62e0eac">Catch::Timer::getElapsedMilliseconds</a></div><div class="ttdeci">auto getElapsedMilliseconds() const -> unsigned int</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1925</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_a545de17a61a6fee1dbe3de5b0723e5fa"><div class="ttname"><a href="classCatch_1_1Timer.html#a545de17a61a6fee1dbe3de5b0723e5fa">Catch::Timer::getElapsedMicroseconds</a></div><div class="ttdeci">auto getElapsedMicroseconds() const -> uint64_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1922</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_a57be5d17ca868a2d6fb1eea84de665cf"><div class="ttname"><a href="classCatch_1_1Timer.html#a57be5d17ca868a2d6fb1eea84de665cf">Catch::Timer::getElapsedNanoseconds</a></div><div class="ttdeci">auto getElapsedNanoseconds() const -> uint64_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1919</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1Timer_html_ac13c1ef867cc3b9f942032d5ed79c2a7"><div class="ttname"><a href="classCatch_1_1Timer.html#ac13c1ef867cc3b9f942032d5ed79c2a7">Catch::Timer::m_nanoseconds</a></div><div class="ttdeci">uint64_t m_nanoseconds</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5856</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1UnaryExpr_html"><div class="ttname"><a href="classCatch_1_1UnaryExpr.html">Catch::UnaryExpr</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5410</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1UnaryExpr_html_a7b6e97e576377dd60c77ab551a180325"><div class="ttname"><a href="classCatch_1_1UnaryExpr.html#a7b6e97e576377dd60c77ab551a180325">Catch::UnaryExpr::m_lhs</a></div><div class="ttdeci">LhsT m_lhs</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5411</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1UnaryExpr_html_a91767607719503ad40a8c5db7fbc08f2"><div class="ttname"><a href="classCatch_1_1UnaryExpr.html#a91767607719503ad40a8c5db7fbc08f2">Catch::UnaryExpr::UnaryExpr</a></div><div class="ttdeci">constexpr UnaryExpr(LhsT lhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5418</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1UnaryExpr_html_aaabf30455a996c80675c0f388a6e4110"><div class="ttname"><a href="classCatch_1_1UnaryExpr.html#aaabf30455a996c80675c0f388a6e4110">Catch::UnaryExpr::streamReconstructedExpression</a></div><div class="ttdeci">void streamReconstructedExpression(std::ostream &os) const override</div><div class="ttdoc">This function has to be overriden by the derived class.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5413</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html">Catch::WildcardPattern</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3401</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_a8b96a014f1194387ce441f8f0c0e8a2e"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#a8b96a014f1194387ce441f8f0c0e8a2e">Catch::WildcardPattern::m_pattern</a></div><div class="ttdeci">std::string m_pattern</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3418</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_aeb90dae9b701d90cbed1e43904c86af2"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#aeb90dae9b701d90cbed1e43904c86af2">Catch::WildcardPattern::WildcardPattern</a></div><div class="ttdeci">WildcardPattern(std::string const &pattern, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7786</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_aef561aafa0f021653bc6b5806b6d57b0"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#aef561aafa0f021653bc6b5806b6d57b0">Catch::WildcardPattern::m_caseSensitivity</a></div><div class="ttdeci">CaseSensitive m_caseSensitivity</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3416</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af74da965b1257c4e958d95da15f30c69"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af74da965b1257c4e958d95da15f30c69">Catch::WildcardPattern::m_wildcard</a></div><div class="ttdeci">WildcardPosition m_wildcard</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3417</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af851fc7cd377fb358a50f58eb5dafadb"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadb">Catch::WildcardPattern::WildcardPosition</a></div><div class="ttdeci">WildcardPosition</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3402</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af851fc7cd377fb358a50f58eb5dafadba558b757b9392b8aca7815be8e90aa92e"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba558b757b9392b8aca7815be8e90aa92e">Catch::WildcardPattern::WildcardAtEnd</a></div><div class="ttdeci">@ WildcardAtEnd</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3405</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af851fc7cd377fb358a50f58eb5dafadba89f900210573e866296490b85798289c"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba89f900210573e866296490b85798289c">Catch::WildcardPattern::WildcardAtBothEnds</a></div><div class="ttdeci">@ WildcardAtBothEnds</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3406</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af851fc7cd377fb358a50f58eb5dafadba92974148108b6e2e681d4682321b89a1"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadba92974148108b6e2e681d4682321b89a1">Catch::WildcardPattern::NoWildcard</a></div><div class="ttdeci">@ NoWildcard</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3403</div></div>
|
|
<div class="ttc" id="aclassCatch_1_1WildcardPattern_html_af851fc7cd377fb358a50f58eb5dafadbab15d0d9a0f6aa1bb3a529ff4aff087af"><div class="ttname"><a href="classCatch_1_1WildcardPattern.html#af851fc7cd377fb358a50f58eb5dafadbab15d0d9a0f6aa1bb3a529ff4aff087af">Catch::WildcardPattern::WildcardAtStart</a></div><div class="ttdeci">@ WildcardAtStart</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3404</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a059e0c7024cc2e0e0dfd861d875fe97d"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a059e0c7024cc2e0e0dfd861d875fe97d">Catch::Benchmark::Detail::warmup_iterations</a></div><div class="ttdeci">constexpr auto warmup_iterations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1977</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a0a635ce60c227f5217d9606e2afe527c"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0a635ce60c227f5217d9606e2afe527c">Catch::Benchmark::Detail::bootstrap</a></div><div class="ttdeci">Estimate< double > bootstrap(double confidence_level, double *first, double *last, sample const &resample, double(*estimator)(double const *, double const *))</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:447</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a0cd94d0f213053517ee9b3ed487fa189"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a0cd94d0f213053517ee9b3ed487fa189">Catch::Benchmark::Detail::warmup_seed</a></div><div class="ttdeci">constexpr auto warmup_seed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1980</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a1a4ae7ccc7fa8c996bc6e4ada5a7004b"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1a4ae7ccc7fa8c996bc6e4ada5a7004b">Catch::Benchmark::Detail::analyse_samples</a></div><div class="ttdeci">bootstrap_analysis analyse_samples(double confidence_level, unsigned int n_resamples, double *first, double *last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:504</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a1ee35c3ddb5cdf0f4ad7354240e4288d"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1ee35c3ddb5cdf0f4ad7354240e4288d">Catch::Benchmark::Detail::clock_cost_estimation_tick_limit</a></div><div class="ttdeci">constexpr auto clock_cost_estimation_tick_limit</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1983</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a1effa40e15b6b2c9cec48b3b734da8a4"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a1effa40e15b6b2c9cec48b3b734da8a4">Catch::Benchmark::Detail::measure</a></div><div class="ttdeci">TimingOf< Fun, Args... > measure(Fun &&fun, Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1791</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a258a5fe6cc543b6ab8cceb3e175e1c1d"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a258a5fe6cc543b6ab8cceb3e175e1c1d">Catch::Benchmark::Detail::clock_cost_estimation_time_limit</a></div><div class="ttdeci">constexpr auto clock_cost_estimation_time_limit</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1982</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a3ae31b1a7b7d447f0d6d46635bbff40c"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3ae31b1a7b7d447f0d6d46635bbff40c">Catch::Benchmark::Detail::analyse</a></div><div class="ttdeci">SampleAnalysis analyse(const IConfig &cfg, FDuration *first, FDuration *last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:60</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a3e1a65d3c8935e2e731ce6edb4932b7e"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a3e1a65d3c8935e2e731ce6edb4932b7e">Catch::Benchmark::Detail::run_for_at_least</a></div><div class="ttdeci">TimingOf< Fun, run_for_at_least_argument_t< Clock, Fun > > run_for_at_least(IDuration how_long, const int initial_iterations, Fun &&fun)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1830</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a523468c0e7dbf99ffb1801aad78e352d"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a523468c0e7dbf99ffb1801aad78e352d">Catch::Benchmark::Detail::classify_outliers</a></div><div class="ttdeci">OutlierClassification classify_outliers(double const *first, double const *last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:384</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a571030d8a3068b49d454220cfdea714f"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a571030d8a3068b49d454220cfdea714f">Catch::Benchmark::Detail::weighted_average_quantile</a></div><div class="ttdeci">double weighted_average_quantile(int k, int q, double *first, double *last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:365</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a5c57c45d75d53880caaf8c422aa1a5ab"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a5c57c45d75d53880caaf8c422aa1a5ab">Catch::Benchmark::Detail::estimate_clock_resolution</a></div><div class="ttdeci">EnvironmentEstimate estimate_clock_resolution(int iterations)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1993</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a62d6c634e2c8901d02ffe8718817f1b4"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a62d6c634e2c8901d02ffe8718817f1b4">Catch::Benchmark::Detail::erfc_inv</a></div><div class="ttdeci">double erfc_inv(double x)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:426</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a69e10795ffabb9fb2a472c5743c3b7ed"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a69e10795ffabb9fb2a472c5743c3b7ed">Catch::Benchmark::Detail::measure_one</a></div><div class="ttdeci">TimingOf< Fun, int > measure_one(Fun &&fun, int iters, std::false_type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1810</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a7021d1312f7e031b95d9dc9697e8fa81"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a7021d1312f7e031b95d9dc9697e8fa81">Catch::Benchmark::Detail::warmup</a></div><div class="ttdeci">int warmup()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1988</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a805143fb513ffc616374ea01f764f87c"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a805143fb513ffc616374ea01f764f87c">Catch::Benchmark::Detail::clock_resolution_estimation_time</a></div><div class="ttdeci">constexpr auto clock_resolution_estimation_time</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1981</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a971609fd1bf1dffc78fbb645d649bcae"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a971609fd1bf1dffc78fbb645d649bcae">Catch::Benchmark::Detail::clock_cost_estimation_iterations</a></div><div class="ttdeci">constexpr auto clock_cost_estimation_iterations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1985</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_a9b7d750760d2dbafad94a78957d85b68"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#a9b7d750760d2dbafad94a78957d85b68">Catch::Benchmark::Detail::clock_cost_estimation_time</a></div><div class="ttdeci">constexpr auto clock_cost_estimation_time</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1984</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_aa94892c9c8fe45c0c82bde19bf0f8667"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#aa94892c9c8fe45c0c82bde19bf0f8667">Catch::Benchmark::Detail::repeat</a></div><div class="ttdeci">repeater< std::decay_t< Fun > > repeat(Fun &&fun)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1689</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_abc5e70b0f758f550b2fdff85512efdb5"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#abc5e70b0f758f550b2fdff85512efdb5">Catch::Benchmark::Detail::normal_cdf</a></div><div class="ttdeci">double normal_cdf(double x)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:422</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_abe0ffc409d126e1e7f4573c16abcbf84"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#abe0ffc409d126e1e7f4573c16abcbf84">Catch::Benchmark::Detail::complete_invoke</a></div><div class="ttdeci">CompleteType_t< FunctionReturnType< Fun, Args... > > complete_invoke(Fun &&fun, Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1748</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ac01002836fbe714bcc1bb266c249258c"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac01002836fbe714bcc1bb266c249258c">Catch::Benchmark::Detail::CompleteType_t</a></div><div class="ttdeci">typename CompleteType< T >::type CompleteType_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1728</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ac10ce6a746501524891ce359e61f3e43"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac10ce6a746501524891ce359e61f3e43">Catch::Benchmark::Detail::estimate_clock_cost</a></div><div class="ttdeci">EnvironmentEstimate estimate_clock_cost(FDuration resolution)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2002</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ac5f830d662344dd75387c26aa83e6ac3"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ac5f830d662344dd75387c26aa83e6ac3">Catch::Benchmark::Detail::mean</a></div><div class="ttdeci">double mean(double const *first, double const *last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:412</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_accb97601fac7308aa9c11dcdb439ddb8"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#accb97601fac7308aa9c11dcdb439ddb8">Catch::Benchmark::Detail::throw_optimized_away_error</a></div><div class="ttdeci">void throw_optimized_away_error()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:158</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ad1a286fbe7a670a886ac5839289b5b2a"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad1a286fbe7a670a886ac5839289b5b2a">Catch::Benchmark::Detail::warmup_time</a></div><div class="ttdeci">constexpr auto warmup_time</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1978</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ad7bb71eb022618e4a57e3378f5d70b13"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ad7bb71eb022618e4a57e3378f5d70b13">Catch::Benchmark::Detail::sample</a></div><div class="ttdeci">std::vector< double > sample</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1909</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_adb6f098507d08daee7e92c9ab12dab09"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#adb6f098507d08daee7e92c9ab12dab09">Catch::Benchmark::Detail::measure_environment</a></div><div class="ttdeci">Environment measure_environment()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2032</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_ae8c942e45f848e3f1f1a22d7e7528507"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#ae8c942e45f848e3f1f1a22d7e7528507">Catch::Benchmark::Detail::run_for_at_least_argument_t</a></div><div class="ttdeci">std::conditional_t< is_callable< Fun(Chronometer)>::value, Chronometer, int > run_for_at_least_argument_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1822</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_aec277578b65b8dfb2578b4b94e0b2562"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#aec277578b65b8dfb2578b4b94e0b2562">Catch::Benchmark::Detail::minimum_ticks</a></div><div class="ttdeci">constexpr auto minimum_ticks</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1979</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_af3527090cdeb0456b1aacbdc29050841"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#af3527090cdeb0456b1aacbdc29050841">Catch::Benchmark::Detail::normal_quantile</a></div><div class="ttdeci">double normal_quantile(double p)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:430</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_1_1Detail_html_af41e4c8ef30c33051b7330895f8effd1"><div class="ttname"><a href="namespaceCatch_1_1Benchmark_1_1Detail.html#af41e4c8ef30c33051b7330895f8effd1">Catch::Benchmark::Detail::resolution</a></div><div class="ttdeci">std::vector< double > resolution(int k)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1958</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html">Catch::Benchmark</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:44</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a39a7da4c749ecf788244a1a91dc9adb0"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a39a7da4c749ecf788244a1a91dc9adb0">Catch::Benchmark::IDuration</a></div><div class="ttdeci">std::chrono::nanoseconds IDuration</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1001</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a49daedbacb4c240e304482a88245fd10"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a49daedbacb4c240e304482a88245fd10">Catch::Benchmark::destructable_object</a></div><div class="ttdeci">Detail::ObjectStorage< T, false > destructable_object</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2290</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a5e29f55ad3195ac7b08e7028b0095d02"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a5e29f55ad3195ac7b08e7028b0095d02">Catch::Benchmark::FDuration</a></div><div class="ttdeci">std::chrono::duration< double, std::nano > FDuration</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1002</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a5ffee9674c457dfb4a868ea55290089c"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a5ffee9674c457dfb4a868ea55290089c">Catch::Benchmark::default_clock</a></div><div class="ttdeci">std::chrono::steady_clock default_clock</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1007</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a737e4b9b2571ab17d74621f181a33eff"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a737e4b9b2571ab17d74621f181a33eff">Catch::Benchmark::storage_for</a></div><div class="ttdeci">Detail::ObjectStorage< T, true > storage_for</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2287</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a839ab043d92ae34f0c83e6142674ffa5"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a839ab043d92ae34f0c83e6142674ffa5">Catch::Benchmark::TimePoint</a></div><div class="ttdeci">typename Clock::time_point TimePoint</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1005</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_a9aa891ce6b44df3561292fc1a44b11fb"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#a9aa891ce6b44df3561292fc1a44b11fb">Catch::Benchmark::invoke_deoptimized</a></div><div class="ttdeci">auto invoke_deoptimized(Fn &&fn, Args &&... args) -> std::enable_if_t<!std::is_same< void, decltype(fn(args...))>::value ></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1480</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_ab10cc5a63e65cd55178d7f1473da9f04"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#ab10cc5a63e65cd55178d7f1473da9f04">Catch::Benchmark::user_code</a></div><div class="ttdeci">Detail::CompleteType_t< FunctionReturnType< Fun > > user_code(Fun &&fun)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1755</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_af5d85780971e55f9337023ad04caa247"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#af5d85780971e55f9337023ad04caa247">Catch::Benchmark::deoptimize_value</a></div><div class="ttdeci">void deoptimize_value(T &&x)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1475</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Benchmark_html_afea8ef765e5669143dfc9bbc8d81e1ac"><div class="ttname"><a href="namespaceCatch_1_1Benchmark.html#afea8ef765e5669143dfc9bbc8d81e1ac">Catch::Benchmark::TimingOf</a></div><div class="ttdeci">Timing< Detail::CompleteType_t< FunctionReturnType< Func, Args... > > > TimingOf</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1781</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html">Catch::Clara::Detail</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2667</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a58800f68faab69c44d58b2c0038875d1"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1">Catch::Clara::Detail::ResultType</a></div><div class="ttdeci">ResultType</div><div class="ttdoc">Denotes type of a parsing result.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4314</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa334b8fdd25f8fb3e632228494604ee1">Catch::Clara::Detail::ResultType::RuntimeError</a></div><div class="ttdeci">@ RuntimeError</div><div class="ttdoc">Error in parsing inputs.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4318</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa50b3452a2f7b026eb9325c5df52c157">Catch::Clara::Detail::ResultType::LogicError</a></div><div class="ttdeci">@ LogicError</div><div class="ttdoc">Error in user-specified arguments for construction.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4316</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a58800f68faab69c44d58b2c0038875d1aa60852f204ed8028c1c58808b746d115">Catch::Clara::Detail::ResultType::Ok</a></div><div class="ttdeci">@ Ok</div><div class="ttdoc">No errors.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4315</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a6822080555d7f8f7fb6f8149c7819c42"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a6822080555d7f8f7fb6f8149c7819c42">Catch::Clara::Detail::ParserResult</a></div><div class="ttdeci">BasicResult< ParseResultType > ParserResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4480</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a6ead4fe5ce95aee22dc4fb3e38404a04"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04">Catch::Clara::Detail::TokenType</a></div><div class="ttdeci">TokenType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4273</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a6ead4fe5ce95aee22dc4fb3e38404a04a054b4f3ea543c990f6b125f41af6ebf7"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04a054b4f3ea543c990f6b125f41af6ebf7">Catch::Clara::Detail::TokenType::Option</a></div><div class="ttdeci">@ Option</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4273</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a6ead4fe5ce95aee22dc4fb3e38404a04a1853680a6d666b9fea2d789dd00bc7eb"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a6ead4fe5ce95aee22dc4fb3e38404a04a1853680a6d666b9fea2d789dd00bc7eb">Catch::Clara::Detail::TokenType::Argument</a></div><div class="ttdeci">@ Argument</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4273</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_a9f7cb86c4f3231620885a142eb4ca8cf"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#a9f7cb86c4f3231620885a142eb4ca8cf">Catch::Clara::Detail::InternalParseResult</a></div><div class="ttdeci">BasicResult< ParseState > InternalParseResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4481</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_aa756e2e2404a66852ab7fbd14a2a4647"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#aa756e2e2404a66852ab7fbd14a2a4647">Catch::Clara::Detail::invokeLambda</a></div><div class="ttdeci">auto invokeLambda(L const &lambda, std::string const &arg) -> ParserResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4589</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_ab58189b0df24d5c251b76bd327164b6c"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6c">Catch::Clara::Detail::Optionality</a></div><div class="ttdeci">Optionality</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4638</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_ab58189b0df24d5c251b76bd327164b6cab651efdb98a5d6bd2b3935d0c3f4a5e2"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6cab651efdb98a5d6bd2b3935d0c3f4a5e2">Catch::Clara::Detail::Optionality::Required</a></div><div class="ttdeci">@ Required</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4638</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#ab58189b0df24d5c251b76bd327164b6caebb061953c0454b2c8ee7b0ac615ebcd">Catch::Clara::Detail::Optionality::Optional</a></div><div class="ttdeci">@ Optional</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4638</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_ab5b76a1843c33a4a71aa698a3defc528"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#ab5b76a1843c33a4a71aa698a3defc528">Catch::Clara::Detail::convertInto</a></div><div class="ttdeci">ParserResult convertInto(std::string const &source, std::string &target)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2727</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_1_1Detail_html_acef9be57d426e33e84b452e44cc60f2a"><div class="ttname"><a href="namespaceCatch_1_1Clara_1_1Detail.html#acef9be57d426e33e84b452e44cc60f2a">Catch::Clara::Detail::Result</a></div><div class="ttdeci">BasicResult< void > Result</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4479</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_aaef02c0376384b6e869e40b3dcc33f61"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61">Catch::Clara::ParseResultType</a></div><div class="ttdeci">ParseResultType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4223</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_aaef02c0376384b6e869e40b3dcc33f61a3b06a989e906666754995bb461cacc4f"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61a3b06a989e906666754995bb461cacc4f">Catch::Clara::ParseResultType::ShortCircuitSame</a></div><div class="ttdeci">@ ShortCircuitSame</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4227</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_aaef02c0376384b6e869e40b3dcc33f61aaa79962a9cad5bd52c86305ad0bd9442"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61aaa79962a9cad5bd52c86305ad0bd9442">Catch::Clara::ParseResultType::ShortCircuitAll</a></div><div class="ttdeci">@ ShortCircuitAll</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4226</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ab65b6f388bb1788248938a5cff5bad1d">Catch::Clara::ParseResultType::Matched</a></div><div class="ttdeci">@ Matched</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4224</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_aaef02c0376384b6e869e40b3dcc33f61ac8b77721c677e0429241a9250972122d"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#aaef02c0376384b6e869e40b3dcc33f61ac8b77721c677e0429241a9250972122d">Catch::Clara::ParseResultType::NoMatch</a></div><div class="ttdeci">@ NoMatch</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4225</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Clara_html_ae84a92d31f809405143b6a0963649ea4"><div class="ttname"><a href="namespaceCatch_1_1Clara.html#ae84a92d31f809405143b6a0963649ea4">Catch::Clara::accept_many</a></div><div class="ttdeci">constexpr accept_many_t accept_many</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4231</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html"><div class="ttname"><a href="namespaceCatch_1_1Detail.html">Catch::Detail</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1943</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a18f5992ca6894c1e025efb42b8320a4d"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a18f5992ca6894c1e025efb42b8320a4d">Catch::Detail::void_t</a></div><div class="ttdeci">typename make_void< Ts... >::type void_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2406</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a18fef8312d01399bbf5722432f099216"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a18fef8312d01399bbf5722432f099216">Catch::Detail::directCompare</a></div><div class="ttdeci">bool directCompare(float lhs, float rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4281</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a23bdcac0ef138b222c3747e2af979e9a"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a23bdcac0ef138b222c3747e2af979e9a">Catch::Detail::convertIntoString</a></div><div class="ttdeci">std::string convertIntoString(StringRef string, bool escapeInvisibles)</div><div class="ttdoc">Encases `string in quotes, and optionally escapes invisibles.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1984</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a242396de537c5176710d680cc9ca6b93"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a242396de537c5176710d680cc9ca6b93">Catch::Detail::convertUnknownEnumToString</a></div><div class="ttdeci">std::string convertUnknownEnumToString(E e)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2586</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a3175310a581a4d3b7bd12cf543dfa0d9"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a3175310a581a4d3b7bd12cf543dfa0d9">Catch::Detail::make_unique</a></div><div class="ttdeci">unique_ptr< T > make_unique(Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:976</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a355373f5d573df529c1ec80b76586c9f"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a355373f5d573df529c1ec80b76586c9f">Catch::Detail::convertUnstreamable</a></div><div class="ttdeci">std::enable_if_t< !std::is_enum< T >::value &&!std::is_base_of< std::exception, T >::value, std::string > convertUnstreamable(T const &)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2518</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a4e0e09e87f561af2d3a881b209a9a481"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a4e0e09e87f561af2d3a881b209a9a481">Catch::Detail::parseEnums</a></div><div class="ttdeci">std::vector< StringRef > parseEnums(StringRef enums)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3893</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a4f0c01d00fa6af891eb82fcf9baaf95c"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a4f0c01d00fa6af891eb82fcf9baaf95c">Catch::Detail::makeEnumInfo</a></div><div class="ttdeci">Catch::Detail::unique_ptr< EnumInfo > makeEnumInfo(StringRef enumName, StringRef allValueNames, std::vector< int > const &values)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3913</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a60f033a91680546a152f5dfa4427104c"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a60f033a91680546a152f5dfa4427104c">Catch::Detail::registerTranslatorImpl</a></div><div class="ttdeci">void registerTranslatorImpl(Detail::unique_ptr< IExceptionTranslator > &&translator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2247</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_a9a53cd3f44546dfc2935a3a6d3277ce6"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#a9a53cd3f44546dfc2935a3a6d3277ce6">Catch::Detail::getEnv</a></div><div class="ttdeci">char const * getEnv(char const *varName)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4305</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_aa8b72c37b9b6fb01fc898ce47136576f"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#aa8b72c37b9b6fb01fc898ce47136576f">Catch::Detail::unprintableString</a></div><div class="ttdeci">constexpr StringRef unprintableString</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2483</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_aab88097b4a1bd08c1973823106ffb5f6"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#aab88097b4a1bd08c1973823106ffb5f6">Catch::Detail::RemoveCVRef_t</a></div><div class="ttdeci">std::remove_cv_t< std::remove_reference_t< T > > RemoveCVRef_t</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5281</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_aae9b0608769b42ff7bbd07687348c7e5"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#aae9b0608769b42ff7bbd07687348c7e5">Catch::Detail::registerListenerImpl</a></div><div class="ttdeci">void registerListenerImpl(Detail::unique_ptr< EventListenerFactory > listenerFactory)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:10943</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_ac5d6c510e565ee5bddcc2236194ce29e"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#ac5d6c510e565ee5bddcc2236194ce29e">Catch::Detail::rawMemoryToString</a></div><div class="ttdeci">std::string rawMemoryToString(const void *object, std::size_t size)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2026</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_ac954cf158347a76a5b0c3f4fa9a9fa52"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#ac954cf158347a76a5b0c3f4fa9a9fa52">Catch::Detail::rangeToString</a></div><div class="ttdeci">std::string rangeToString(InputIterator first, Sentinel last)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2775</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_ade51091dea188100d1c7a8acc55f5ea5"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#ade51091dea188100d1c7a8acc55f5ea5">Catch::Detail::convertToBits</a></div><div class="ttdeci">uint32_t convertToBits(float f)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4263</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_ae9744f1112bb15fcb88df6b3e5ccd46a"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#ae9744f1112bb15fcb88df6b3e5ccd46a">Catch::Detail::catch_strnlen</a></div><div class="ttdeci">std::size_t catch_strnlen(const char *str, std::size_t n)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2475</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_af0ad48344ffd3f92f3568465248a9880"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#af0ad48344ffd3f92f3568465248a9880">Catch::Detail::stringify</a></div><div class="ttdeci">std::string stringify(const T &e)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2581</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Detail_html_af8703a4eaf12133aa02a50dee831f2bc"><div class="ttname"><a href="namespaceCatch_1_1Detail.html#af8703a4eaf12133aa02a50dee831f2bc">Catch::Detail::registerReporterImpl</a></div><div class="ttdeci">void registerReporterImpl(std::string const &name, IReporterFactoryPtr reporterPtr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:10930</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_1_1Detail_html_ab6e4736f7a2b0501a13c4dc4adfe5bb6"><div class="ttname"><a href="namespaceCatch_1_1Generators_1_1Detail.html#ab6e4736f7a2b0501a13c4dc4adfe5bb6">Catch::Generators::Detail::throw_generator_exception</a></div><div class="ttdeci">void throw_generator_exception(char const *msg)</div><div class="ttdoc">Throws GeneratorException with the provided message.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2315</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html"><div class="ttname"><a href="namespaceCatch_1_1Generators.html">Catch::Generators</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2310</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a01aec1a3265d83bfd89f32782521c96b"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a01aec1a3265d83bfd89f32782521c96b">Catch::Generators::value</a></div><div class="ttdeci">GeneratorWrapper< DecayedT > value(T &&value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7580</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a118b852de3ec020b428ad43245dda9c8"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a118b852de3ec020b428ad43245dda9c8">Catch::Generators::generate</a></div><div class="ttdeci">auto generate(StringRef generatorName, SourceLineInfo const &lineInfo, L const &generatorExpression) -> typename decltype(generatorExpression())::type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7678</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a24e1bac2be5e078f26c395a96470b706"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a24e1bac2be5e078f26c395a96470b706">Catch::Generators::createGeneratorTracker</a></div><div class="ttdeci">IGeneratorTracker * createGeneratorTracker(StringRef generatorName, SourceLineInfo lineInfo, GeneratorBasePtr &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2326</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a2fa425101893564ec8e95b0813077257"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a2fa425101893564ec8e95b0813077257">Catch::Generators::table</a></div><div class="ttdeci">GeneratorWrapper< std::tuple< std::decay_t< Ts >... > > table(std::initializer_list< std::tuple< std::decay_t< Ts >... > > tuples)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7646</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a4df89be8072a9685ee89b6776a54bb93"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a4df89be8072a9685ee89b6776a54bb93">Catch::Generators::filter</a></div><div class="ttdeci">GeneratorWrapper< T > filter(Predicate &&pred, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7800</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a510cc0d72a7bab8f967827e695b981ba"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a510cc0d72a7bab8f967827e695b981ba">Catch::Generators::repeat</a></div><div class="ttdeci">GeneratorWrapper< T > repeat(size_t repeats, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7856</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_a7cc95d72b060e2819b2edbbdbf8c646b"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#a7cc95d72b060e2819b2edbbdbf8c646b">Catch::Generators::makeGenerators</a></div><div class="ttdeci">auto makeGenerators(GeneratorWrapper< T > &&generator, Gs &&... moreGenerators) -> Generators< T ></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7655</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_aa9dc8fef28828fe351480d5be7bb287d"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#aa9dc8fef28828fe351480d5be7bb287d">Catch::Generators::GeneratorBasePtr</a></div><div class="ttdeci">Catch::Detail::unique_ptr< GeneratorUntypedBase > GeneratorBasePtr</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1044</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_ab0ad55177ac1e5f00b123909b191f436"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#ab0ad55177ac1e5f00b123909b191f436">Catch::Generators::acquireGeneratorTracker</a></div><div class="ttdeci">IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName, SourceLineInfo const &lineInfo)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2322</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_ab33907d04439196536cc56f05b3537aa"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#ab33907d04439196536cc56f05b3537aa">Catch::Generators::GeneratorPtr</a></div><div class="ttdeci">Catch::Detail::unique_ptr< IGenerator< T > > GeneratorPtr</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7520</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_acb4654b4e840e438e3bc204ac4d8e157"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#acb4654b4e840e438e3bc204ac4d8e157">Catch::Generators::chunk</a></div><div class="ttdeci">GeneratorWrapper< std::vector< T > > chunk(size_t size, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7938</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_adedfdb318219078ce9107690745d2f2f"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#adedfdb318219078ce9107690745d2f2f">Catch::Generators::take</a></div><div class="ttdeci">GeneratorWrapper< T > take(size_t target, GeneratorWrapper< T > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7759</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_af33fd06c51ac9173c3bee2ddee2559a6"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#af33fd06c51ac9173c3bee2ddee2559a6">Catch::Generators::map</a></div><div class="ttdeci">GeneratorWrapper< T > map(Func &&function, GeneratorWrapper< U > &&generator)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7888</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Generators_html_aff55717239311a0e8352a4de5d29967f"><div class="ttname"><a href="namespaceCatch_1_1Generators.html#aff55717239311a0e8352a4de5d29967f">Catch::Generators::values</a></div><div class="ttdeci">GeneratorWrapper< T > values(std::initializer_list< T > values)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7586</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_1_1Detail_html_a228a8fff5aa311bd0e3592b8cb711392"><div class="ttname"><a href="namespaceCatch_1_1Matchers_1_1Detail.html#a228a8fff5aa311bd0e3592b8cb711392">Catch::Matchers::Detail::describe_multi_matcher</a></div><div class="ttdeci">std::string describe_multi_matcher(StringRef combine, std::string const *descriptions_begin, std::string const *descriptions_end)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8565</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_1_1Detail_html_a65dcb4c6cc6803847848523398ae680c"><div class="ttname"><a href="namespaceCatch_1_1Matchers_1_1Detail.html#a65dcb4c6cc6803847848523398ae680c">Catch::Matchers::Detail::FloatingPointKind</a></div><div class="ttdeci">FloatingPointKind</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8263</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_1_1Detail_html_a65dcb4c6cc6803847848523398ae680ca22ae0e2b89e5e3d477f988cc36d3272b"><div class="ttname"><a href="namespaceCatch_1_1Matchers_1_1Detail.html#a65dcb4c6cc6803847848523398ae680ca22ae0e2b89e5e3d477f988cc36d3272b">Catch::Matchers::Detail::FloatingPointKind::Float</a></div><div class="ttdeci">@ Float</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8264</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a072ee44afcb1647b55b6c3437f22af44"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a072ee44afcb1647b55b6c3437f22af44">Catch::Matchers::NoneTrue</a></div><div class="ttdeci">NoneTrueMatcher NoneTrue()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8444</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a0d170fa146d9a4ec0d908acce010128e"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a0d170fa146d9a4ec0d908acce010128e">Catch::Matchers::IsNaN</a></div><div class="ttdeci">IsNaNMatcher IsNaN()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8418</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a12b1480cb0af61579e8776cf538d0069"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a12b1480cb0af61579e8776cf538d0069">Catch::Matchers::EndsWith</a></div><div class="ttdeci">EndsWithMatcher EndsWith(std::string const &str, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8543</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a13a915665906ab3efb39e118c649285f"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a13a915665906ab3efb39e118c649285f">Catch::Matchers::WithinAbs</a></div><div class="ttdeci">WithinAbsMatcher WithinAbs(double target, double margin)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8387</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a348b90347a2dea3747eabd01d03c114c"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a348b90347a2dea3747eabd01d03c114c">Catch::Matchers::ContainsSubstring</a></div><div class="ttdeci">StringContainsMatcher ContainsSubstring(std::string const &str, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8540</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a4c7d45a32d4ecf1d71b24b37920a5be7"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a4c7d45a32d4ecf1d71b24b37920a5be7">Catch::Matchers::Message</a></div><div class="ttdeci">ExceptionMessageMatcher Message(std::string const &message)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8201</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a4f719bca42718f4936668308772732ae"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a4f719bca42718f4936668308772732ae">Catch::Matchers::AllTrue</a></div><div class="ttdeci">AllTrueMatcher AllTrue()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8440</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a640c1714c014191cc131b37f955f83ed"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a640c1714c014191cc131b37f955f83ed">Catch::Matchers::SizeIs</a></div><div class="ttdeci">HasSizeMatcher SizeIs(std::size_t sz)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8181</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a78dba3ba1112c48a6376a38b48ea70e2"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a78dba3ba1112c48a6376a38b48ea70e2">Catch::Matchers::WithinRel</a></div><div class="ttdeci">WithinRelMatcher WithinRel(double target, double eps)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8391</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a88361ad809aab09ff75c87bf6cdd7fad"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a88361ad809aab09ff75c87bf6cdd7fad">Catch::Matchers::WithinULP</a></div><div class="ttdeci">WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8379</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_a99b3d0b547a4335b786e8fcea6a11cad"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#a99b3d0b547a4335b786e8fcea6a11cad">Catch::Matchers::AnyTrue</a></div><div class="ttdeci">AnyTrueMatcher AnyTrue()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8448</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_ae345560f84f68d52fc5df4ac77eb4b92"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#ae345560f84f68d52fc5df4ac77eb4b92">Catch::Matchers::IsEmpty</a></div><div class="ttdeci">IsEmptyMatcher IsEmpty()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8177</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_ae584743abef84739c036faf46eef53b7"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#ae584743abef84739c036faf46eef53b7">Catch::Matchers::Equals</a></div><div class="ttdeci">StringEqualsMatcher Equals(std::string const &str, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8537</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_af3c7edfbfb4cba59f76578304597e548"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#af3c7edfbfb4cba59f76578304597e548">Catch::Matchers::StartsWith</a></div><div class="ttdeci">StartsWithMatcher StartsWith(std::string const &str, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8546</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1Matchers_html_af4de9d3e501b83d17a048cf2107629dc"><div class="ttname"><a href="namespaceCatch_1_1Matchers.html#af4de9d3e501b83d17a048cf2107629dc">Catch::Matchers::Matches</a></div><div class="ttdeci">RegexMatcher Matches(std::string const &regex, CaseSensitive caseSensitivity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:8550</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1TextFlow_html_a24f631f4606e5664e764e6a6b9df5c04"><div class="ttname"><a href="namespaceCatch_1_1TextFlow.html#a24f631f4606e5664e764e6a6b9df5c04">Catch::TextFlow::Spacer</a></div><div class="ttdeci">Column Spacer(size_t spaceWidth)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7657</div></div>
|
|
<div class="ttc" id="anamespaceCatch_1_1literals_html"><div class="ttname"><a href="namespaceCatch_1_1literals.html">Catch::literals</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:611</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html"><div class="ttname"><a href="namespaceCatch.html">Catch</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:43</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0179d453617ba2296f2baa99a49e7264"><div class="ttname"><a href="namespaceCatch.html#a0179d453617ba2296f2baa99a49e7264">Catch::cout</a></div><div class="ttdeci">std::ostream & cout()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6445</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0760dbe87d090a55a35414db57d272c4"><div class="ttname"><a href="namespaceCatch.html#a0760dbe87d090a55a35414db57d272c4">Catch::toLowerInPlace</a></div><div class="ttdeci">void toLowerInPlace(std::string &s)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6476</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a084108b47f37d8bfd5db51c50c7451b3"><div class="ttname"><a href="namespaceCatch.html#a084108b47f37d8bfd5db51c50c7451b3">Catch::trim</a></div><div class="ttdeci">std::string trim(std::string const &str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6490</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0e8d3a1107ecbaa1943e0a462db99a3d"><div class="ttname"><a href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3d">Catch::GenerateFrom</a></div><div class="ttdeci">GenerateFrom</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3645</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0e8d3a1107ecbaa1943e0a462db99a3da7a1920d61156abc05a60135aefe8bc67"><div class="ttname"><a href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da7a1920d61156abc05a60135aefe8bc67">Catch::GenerateFrom::Default</a></div><div class="ttdeci">@ Default</div><div class="ttdoc">Currently equivalent to RandomDevice, but can change at any point.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3649</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0e8d3a1107ecbaa1943e0a462db99a3da96799ffde92d497a6509cb4e124eb66a"><div class="ttname"><a href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3da96799ffde92d497a6509cb4e124eb66a">Catch::GenerateFrom::RandomDevice</a></div><div class="ttdeci">@ RandomDevice</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3647</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0e8d3a1107ecbaa1943e0a462db99a3daa76d4ef5f3f6a672bbfab2865563e530"><div class="ttname"><a href="namespaceCatch.html#a0e8d3a1107ecbaa1943e0a462db99a3daa76d4ef5f3f6a672bbfab2865563e530">Catch::GenerateFrom::Time</a></div><div class="ttdeci">@ Time</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3646</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a0f78e9afdebc6d4512d18e76fbf54b8c"><div class="ttname"><a href="namespaceCatch.html#a0f78e9afdebc6d4512d18e76fbf54b8c">Catch::cleanUp</a></div><div class="ttdeci">void cleanUp()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1151</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a11c40de0d3593160a350d9e4323311b2"><div class="ttname"><a href="namespaceCatch.html#a11c40de0d3593160a350d9e4323311b2">Catch::list</a></div><div class="ttdeci">bool list(IEventListener &reporter, Config const &config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4740</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a12f76a88f2882e9d1d221979dec0324d"><div class="ttname"><a href="namespaceCatch.html#a12f76a88f2882e9d1d221979dec0324d">Catch::isThrowSafe</a></div><div class="ttdeci">bool isThrowSafe(TestCaseHandle const &testCase, IConfig const &config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6788</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a161400810eb0995394d6d8d3cae821ad"><div class="ttname"><a href="namespaceCatch.html#a161400810eb0995394d6d8d3cae821ad">Catch::seedRng</a></div><div class="ttdeci">void seedRng(IConfig const &config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6296</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a170bbe5db76570c4820b5e2eb260f82b"><div class="ttname"><a href="namespaceCatch.html#a170bbe5db76570c4820b5e2eb260f82b">Catch::generateRandomSeed</a></div><div class="ttdeci">std::uint32_t generateRandomSeed(GenerateFrom from)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5290</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a1b2213f54e4d31a659db49827e81856b"><div class="ttname"><a href="namespaceCatch.html#a1b2213f54e4d31a659db49827e81856b">Catch::clog</a></div><div class="ttdeci">std::ostream & clog()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6447</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a1c519834d917d9c6d2df64f26abcf059"><div class="ttname"><a href="namespaceCatch.html#a1c519834d917d9c6d2df64f26abcf059">Catch::operator+=</a></div><div class="ttdeci">auto operator+=(std::string &lhs, StringRef rhs) -> std::string &</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6613</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a2236988eae84fb6bcc456bbf8ddfd2bf"><div class="ttname"><a href="namespaceCatch.html#a2236988eae84fb6bcc456bbf8ddfd2bf">Catch::throw_test_failure_exception</a></div><div class="ttdeci">void throw_test_failure_exception()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7071</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a26cdeefafe46a4d606b51248eb7bbe7e"><div class="ttname"><a href="namespaceCatch.html#a26cdeefafe46a4d606b51248eb7bbe7e">Catch::handleExceptionMatchExpr</a></div><div class="ttdeci">void handleExceptionMatchExpr(AssertionHandler &handler, std::string const &str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2589</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a277e030bde8011793e9903108bb07a18"><div class="ttname"><a href="namespaceCatch.html#a277e030bde8011793e9903108bb07a18">Catch::makeTestInvokerFixture</a></div><div class="ttdeci">Detail::unique_ptr< ITestInvoker > makeTestInvokerFixture(void(C::*testAsMethod)() const)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6048</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a2842e594466b16b9ca13e09077b44406"><div class="ttname"><a href="namespaceCatch.html#a2842e594466b16b9ca13e09077b44406">Catch::operator==</a></div><div class="ttdeci">bool operator==(ProcessedReporterSpec const &lhs, ProcessedReporterSpec const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:793</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a29d53521f0da176f732c3a022dbb04df"><div class="ttname"><a href="namespaceCatch.html#a29d53521f0da176f732c3a022dbb04df">Catch::defaultListTags</a></div><div class="ttdeci">void defaultListTags(std::ostream &out, std::vector< TagInfo > const &tags, bool isFiltered)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9911</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a35e54475ed669ef7f7ac00b858e91b2a"><div class="ttname"><a href="namespaceCatch.html#a35e54475ed669ef7f7ac00b858e91b2a">Catch::libraryVersion</a></div><div class="ttdeci">Version const & libraryVersion()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2285</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a369d3d53347e3c8da1d23ef64fa39daf"><div class="ttname"><a href="namespaceCatch.html#a369d3d53347e3c8da1d23ef64fa39daf">Catch::parseUInt</a></div><div class="ttdeci">Optional< unsigned int > parseUInt(std::string const &input, int base)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5147</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a375b927ff7cc5356ff4a71626d54c83f"><div class="ttname"><a href="namespaceCatch.html#a375b927ff7cc5356ff4a71626d54c83f">Catch::makeStream</a></div><div class="ttdeci">auto makeStream(std::string const &filename) -> Detail::unique_ptr< IStream ></div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4445</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a38257f15bf2974c19a11341fe50eedc1"><div class="ttname"><a href="namespaceCatch.html#a38257f15bf2974c19a11341fe50eedc1">Catch::FunctionReturnType</a></div><div class="ttdeci">std::remove_reference_t< std::remove_cv_t< std::result_of_t< Func(U...)> > > FunctionReturnType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1524</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a3cbceeab9252d1b752f66a2826e92548"><div class="ttname"><a href="namespaceCatch.html#a3cbceeab9252d1b752f66a2826e92548">Catch::throw_exception</a></div><div class="ttdeci">void throw_exception(std::exception const &e)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3844</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a4036958fd61b3ba0b3d2467e7f4f6fd7"><div class="ttname"><a href="namespaceCatch.html#a4036958fd61b3ba0b3d2467e7f4f6fd7">Catch::makeTestInvoker</a></div><div class="ttdeci">Detail::unique_ptr< ITestInvoker > makeTestInvoker(void(*testAsFunction)())</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7141</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a48d2c35022dd9d56a1b7ee78ad581eea"><div class="ttname"><a href="namespaceCatch.html#a48d2c35022dd9d56a1b7ee78ad581eea">Catch::throw_runtime_error</a></div><div class="ttdeci">void throw_runtime_error(std::string const &msg)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3862</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a4b5a2b34a00e65b753185bbc6a4962be"><div class="ttname"><a href="namespaceCatch.html#a4b5a2b34a00e65b753185bbc6a4962be">Catch::uncaught_exceptions</a></div><div class="ttdeci">bool uncaught_exceptions()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7771</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a4f62175677952a64dfbc90887726180d"><div class="ttname"><a href="namespaceCatch.html#a4f62175677952a64dfbc90887726180d">Catch::isOk</a></div><div class="ttdeci">constexpr bool isOk(ResultWas::OfType resultType)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:842</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a520110c31f26cf9892595772ab814fc0"><div class="ttname"><a href="namespaceCatch.html#a520110c31f26cf9892595772ab814fc0">Catch::formatReconstructedExpression</a></div><div class="ttdeci">void formatReconstructedExpression(std::ostream &os, std::string const &lhs, StringRef op, std::string const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3826</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a54c1ce08041448d684ae8edc14162cd2"><div class="ttname"><a href="namespaceCatch.html#a54c1ce08041448d684ae8edc14162cd2">Catch::cerr</a></div><div class="ttdeci">std::ostream & cerr()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6446</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a585459763f2c7610e57de2dd22dd1ad8"><div class="ttname"><a href="namespaceCatch.html#a585459763f2c7610e57de2dd22dd1ad8">Catch::getMutableRegistryHub</a></div><div class="ttdeci">IMutableRegistryHub & getMutableRegistryHub()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1148</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a5d328566cb8da87b48f1fac3f319ac7a"><div class="ttname"><a href="namespaceCatch.html#a5d328566cb8da87b48f1fac3f319ac7a">Catch::getRegistryHub</a></div><div class="ttdeci">IRegistryHub const & getRegistryHub()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1145</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a63cf8932647769fc52be1175210ed89f"><div class="ttname"><a href="namespaceCatch.html#a63cf8932647769fc52be1175210ed89f">Catch::shouldSuppressFailure</a></div><div class="ttdeci">constexpr bool shouldSuppressFailure(int flags)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:866</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a669c2650aec6ea2e3e0710b7fc552e68"><div class="ttname"><a href="namespaceCatch.html#a669c2650aec6ea2e3e0710b7fc552e68">Catch::operator|</a></div><div class="ttdeci">constexpr ResultDisposition::Flags operator|(ResultDisposition::Flags lhs, ResultDisposition::Flags rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:857</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a66d288723373b192f025a2f4ed2f3f11"><div class="ttname"><a href="namespaceCatch.html#a66d288723373b192f025a2f4ed2f3f11">Catch::makeColourImpl</a></div><div class="ttdeci">Detail::unique_ptr< ColourImpl > makeColourImpl(ColourMode colourSelection, IStream *stream)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3591</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a678e3c779388970bb3ec5802245f93d7"><div class="ttname"><a href="namespaceCatch.html#a678e3c779388970bb3ec5802245f93d7">Catch::splitStringRef</a></div><div class="ttdeci">std::vector< StringRef > splitStringRef(StringRef str, char delimiter)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6536</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a695f62327be0676e046291eeaae15110"><div class="ttname"><a href="namespaceCatch.html#a695f62327be0676e046291eeaae15110">Catch::startsWith</a></div><div class="ttdeci">bool startsWith(std::string const &s, std::string const &prefix)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6461</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a6976174b3c594c40f8ed2019360b6581"><div class="ttname"><a href="namespaceCatch.html#a6976174b3c594c40f8ed2019360b6581">Catch::isFalseTest</a></div><div class="ttdeci">constexpr bool isFalseTest(int flags)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:863</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a6dce9f6d9a416fe7a06e6394d557606a"><div class="ttname"><a href="namespaceCatch.html#a6dce9f6d9a416fe7a06e6394d557606a">Catch::defaultListTests</a></div><div class="ttdeci">void defaultListTests(std::ostream &out, ColourImpl *streamColour, std::vector< TestCaseHandle > const &tests, bool isFiltered, Verbosity verbosity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9933</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a707884e681203fef6bf7dbf752532fa5"><div class="ttname"><a href="namespaceCatch.html#a707884e681203fef6bf7dbf752532fa5">Catch::throw_logic_error</a></div><div class="ttdeci">void throw_logic_error(std::string const &msg)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3852</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a73b1b55bbb03be501419181d88db9c6f"><div class="ttname"><a href="namespaceCatch.html#a73b1b55bbb03be501419181d88db9c6f">Catch::isRedirectAvailable</a></div><div class="ttdeci">bool isRedirectAvailable(OutputRedirect::Kind kind)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5047</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a76a7aa70b229be45ef1eec1d5ca8d87c"><div class="ttname"><a href="namespaceCatch.html#a76a7aa70b229be45ef1eec1d5ca8d87c">Catch::isColourImplAvailable</a></div><div class="ttdeci">bool isColourImplAvailable(ColourMode colourSelection)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3620</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a788ebefcd83342b7c479222a1eeffaee"><div class="ttname"><a href="namespaceCatch.html#a788ebefcd83342b7c479222a1eeffaee">Catch::addSingleton</a></div><div class="ttdeci">void addSingleton(ISingleton *singleton)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6374</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a7b0c740ea1bcc8618dc95cd8d36f9fd3"><div class="ttname"><a href="namespaceCatch.html#a7b0c740ea1bcc8618dc95cd8d36f9fd3">Catch::IReporterFactoryPtr</a></div><div class="ttdeci">Detail::unique_ptr< IReporterFactory > IReporterFactoryPtr</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1258</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a7c6db2bf035e2e570d0b6703f6f5a3d8"><div class="ttname"><a href="namespaceCatch.html#a7c6db2bf035e2e570d0b6703f6f5a3d8">Catch::throw_test_skip_exception</a></div><div class="ttdeci">void throw_test_skip_exception()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7079</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a7f2ab9adc3729f9c197f43e5cfcd4b40"><div class="ttname"><a href="namespaceCatch.html#a7f2ab9adc3729f9c197f43e5cfcd4b40">Catch::exceptionTranslateFunction</a></div><div class="ttdeci">std::string(*)() exceptionTranslateFunction</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7217</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a7fc9276bf852d1625d986c0cbc3eabce"><div class="ttname"><a href="namespaceCatch.html#a7fc9276bf852d1625d986c0cbc3eabce">Catch::defaultListReporters</a></div><div class="ttdeci">void defaultListReporters(std::ostream &out, std::vector< ReporterDescription > const &descriptions, Verbosity verbosity)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9846</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a8b23533de8c7d123687ac2c8d36b653a"><div class="ttname"><a href="namespaceCatch.html#a8b23533de8c7d123687ac2c8d36b653a">Catch::getCurrentContext</a></div><div class="ttdeci">Context const & getCurrentContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:587</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a8bdb92cb53a4e016bc0dee66efd99118"><div class="ttname"><a href="namespaceCatch.html#a8bdb92cb53a4e016bc0dee66efd99118">Catch::cleanupSingletons</a></div><div class="ttdeci">void cleanupSingletons()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6377</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a906d1c90c5a8118e737bd14bef2885ea"><div class="ttname"><a href="namespaceCatch.html#a906d1c90c5a8118e737bd14bef2885ea">Catch::defaultListListeners</a></div><div class="ttdeci">void defaultListListeners(std::ostream &out, std::vector< ListenerDescription > const &descriptions)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9879</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a91308e87521e370e591065a22b010025"><div class="ttname"><a href="namespaceCatch.html#a91308e87521e370e591065a22b010025">Catch::ColourMode</a></div><div class="ttdeci">ColourMode</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1177</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754"><div class="ttname"><a href="namespaceCatch.html#a91308e87521e370e591065a22b010025a6adf97f83acf6453d4a6a4b1070f3754">Catch::ColourMode::None</a></div><div class="ttdeci">@ None</div><div class="ttdoc">Don't use any colour.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1185</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a91308e87521e370e591065a22b010025a896ac0b4a6597d34fee67269b1d50a7f"><div class="ttname"><a href="namespaceCatch.html#a91308e87521e370e591065a22b010025a896ac0b4a6597d34fee67269b1d50a7f">Catch::ColourMode::PlatformDefault</a></div><div class="ttdeci">@ PlatformDefault</div><div class="ttdoc">Let Catch2 pick implementation based on platform detection.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1179</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a91308e87521e370e591065a22b010025aa99913111481b4f0bcb70e08e3e99405"><div class="ttname"><a href="namespaceCatch.html#a91308e87521e370e591065a22b010025aa99913111481b4f0bcb70e08e3e99405">Catch::ColourMode::Win32</a></div><div class="ttdeci">@ Win32</div><div class="ttdoc">Use Win32 console colour API.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1183</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a91308e87521e370e591065a22b010025ad403321c965e6b83c88e6d3b1eca5270"><div class="ttname"><a href="namespaceCatch.html#a91308e87521e370e591065a22b010025ad403321c965e6b83c88e6d3b1eca5270">Catch::ColourMode::ANSI</a></div><div class="ttdeci">@ ANSI</div><div class="ttdoc">Use ANSI colour code escapes.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1181</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_a95e86995bfdce76fca887634094ef2e9"><div class="ttname"><a href="namespaceCatch.html#a95e86995bfdce76fca887634094ef2e9">Catch::sharedRng</a></div><div class="ttdeci">SimplePcg32 & sharedRng()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3662</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa52974b0e426e7e2fbd725a900e9c36e"><div class="ttname"><a href="namespaceCatch.html#aa52974b0e426e7e2fbd725a900e9c36e">Catch::contains</a></div><div class="ttdeci">bool contains(std::string const &s, std::string const &infix)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6473</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa5dcf4750ce9a854f4b74d3c952d13cc"><div class="ttname"><a href="namespaceCatch.html#aa5dcf4750ce9a854f4b74d3c952d13cc">Catch::writeToDebugConsole</a></div><div class="ttdeci">void writeToDebugConsole(std::string const &text)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3695</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02">Catch::TestCaseProperties</a></div><div class="ttdeci">TestCaseProperties</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7108</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02a6adf97f83acf6453d4a6a4b1070f3754"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a6adf97f83acf6453d4a6a4b1070f3754">Catch::TestCaseProperties::None</a></div><div class="ttdeci">@ None</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7109</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02a704ebd98fadbe40eab37deab32907fc8"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a704ebd98fadbe40eab37deab32907fc8">Catch::TestCaseProperties::IsHidden</a></div><div class="ttdeci">@ IsHidden</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7110</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a74575b23d5305310e904f87eb02ff980">Catch::TestCaseProperties::Benchmark</a></div><div class="ttdeci">@ Benchmark</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7115</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02a83a5849d32875836435ece98f910621a"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a83a5849d32875836435ece98f910621a">Catch::TestCaseProperties::Throws</a></div><div class="ttdeci">@ Throws</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7113</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02a882461edf145e1dd43623ee081cebd92"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02a882461edf145e1dd43623ee081cebd92">Catch::TestCaseProperties::ShouldFail</a></div><div class="ttdeci">@ ShouldFail</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7111</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02ad26cb48423c81ccc797b8d10f8525fe5"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ad26cb48423c81ccc797b8d10f8525fe5">Catch::TestCaseProperties::NonPortable</a></div><div class="ttdeci">@ NonPortable</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7114</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa77a3ca6aee3863fd2dc3796f129ef02ae32b66ce1369c92a2d351ae9636e6bd2"><div class="ttname"><a href="namespaceCatch.html#aa77a3ca6aee3863fd2dc3796f129ef02ae32b66ce1369c92a2d351ae9636e6bd2">Catch::TestCaseProperties::MayFail</a></div><div class="ttdeci">@ MayFail</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7112</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa820408cff40873fdf5c6662b6327100"><div class="ttname"><a href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100">Catch::TestRunOrder</a></div><div class="ttdeci">TestRunOrder</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1172</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa820408cff40873fdf5c6662b6327100a8fe1ef91d6420c0e64838512106ec229"><div class="ttname"><a href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a8fe1ef91d6420c0e64838512106ec229">Catch::TestRunOrder::Declared</a></div><div class="ttdeci">@ Declared</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1173</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa820408cff40873fdf5c6662b6327100a925be02b7396cbc3eb07c0de96126a74"><div class="ttname"><a href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100a925be02b7396cbc3eb07c0de96126a74">Catch::TestRunOrder::LexicographicallySorted</a></div><div class="ttdeci">@ LexicographicallySorted</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1174</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aa820408cff40873fdf5c6662b6327100ad0bcdd909ab6eff96996ccd91f90d2bb"><div class="ttname"><a href="namespaceCatch.html#aa820408cff40873fdf5c6662b6327100ad0bcdd909ab6eff96996ccd91f90d2bb">Catch::TestRunOrder::Randomized</a></div><div class="ttdeci">@ Randomized</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1175</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aae7d61b3abc9c8d3c82407b380e6a414"><div class="ttname"><a href="namespaceCatch.html#aae7d61b3abc9c8d3c82407b380e6a414">Catch::getAllTestCasesSorted</a></div><div class="ttdeci">std::vector< TestCaseHandle > const & getAllTestCasesSorted(IConfig const &config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6803</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ab079497368fb1df25af39ad494d2a241"><div class="ttname"><a href="namespaceCatch.html#ab079497368fb1df25af39ad494d2a241">Catch::isDebuggerActive</a></div><div class="ttdeci">bool isDebuggerActive()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3810</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ab5a7a360e947e33298ee18f652749230"><div class="ttname"><a href="namespaceCatch.html#ab5a7a360e947e33298ee18f652749230">Catch::operator!=</a></div><div class="ttdeci">bool operator!=(SimplePcg32 const &lhs, SimplePcg32 const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5276</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aba921d5844aa120874480fe71d1c1ae3"><div class="ttname"><a href="namespaceCatch.html#aba921d5844aa120874480fe71d1c1ae3">Catch::getSeed</a></div><div class="ttdeci">std::uint32_t getSeed()</div><div class="ttdoc">Returns Catch2's current RNG seed.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:962</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ac036a17412d318598ffda8e1fe7a1177"><div class="ttname"><a href="namespaceCatch.html#ac036a17412d318598ffda8e1fe7a1177">Catch::toLower</a></div><div class="ttdeci">std::string toLower(std::string const &s)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6481</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ac881e5ba54c09673c50349dbea7fff36"><div class="ttname"><a href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36">Catch::CaseSensitive</a></div><div class="ttdeci">CaseSensitive</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3371</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ac881e5ba54c09673c50349dbea7fff36a93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36a93cba07454f06a4a960172bbd6e2a435">Catch::CaseSensitive::Yes</a></div><div class="ttdeci">@ Yes</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3371</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ac881e5ba54c09673c50349dbea7fff36abafd7322c6e97d25b6299b5d6fe8920b"><div class="ttname"><a href="namespaceCatch.html#ac881e5ba54c09673c50349dbea7fff36abafd7322c6e97d25b6299b5d6fe8920b">Catch::CaseSensitive::No</a></div><div class="ttdeci">@ No</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3371</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_acee06b896ed308ae49ab9d8c7769f5ee"><div class="ttname"><a href="namespaceCatch.html#acee06b896ed308ae49ab9d8c7769f5ee">Catch::ExceptionTranslators</a></div><div class="ttdeci">std::vector< Detail::unique_ptr< IExceptionTranslator const > > ExceptionTranslators</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7220</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_acf5ea05e942d2d7fe79111e12754ed76"><div class="ttname"><a href="namespaceCatch.html#acf5ea05e942d2d7fe79111e12754ed76">Catch::rngSeed</a></div><div class="ttdeci">unsigned int rngSeed()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6300</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ad4f2869d96986c4956f5cb9649d0119d"><div class="ttname"><a href="namespaceCatch.html#ad4f2869d96986c4956f5cb9649d0119d">Catch::isJustInfo</a></div><div class="ttdeci">constexpr bool isJustInfo(int flags)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:845</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ad9dc14789e42b18c6dc26590a49a6eaa"><div class="ttname"><a href="namespaceCatch.html#ad9dc14789e42b18c6dc26590a49a6eaa">Catch::sortTests</a></div><div class="ttdeci">std::vector< TestCaseHandle > sortTests(IConfig const &config, std::vector< TestCaseHandle > const &unsortedTestCases)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6737</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ada025504f627feaf9ac68ca391515dff"><div class="ttname"><a href="namespaceCatch.html#ada025504f627feaf9ac68ca391515dff">Catch::endsWith</a></div><div class="ttdeci">bool endsWith(std::string const &s, std::string const &suffix)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6467</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_adafff91485eeeeb9e9333f317cc0e3b1"><div class="ttname"><a href="namespaceCatch.html#adafff91485eeeeb9e9333f317cc0e3b1">Catch::translateActiveException</a></div><div class="ttdeci">std::string translateActiveException()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1155</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae053e7e198e60bf45f2b8bc51050f5f4"><div class="ttname"><a href="namespaceCatch.html#ae053e7e198e60bf45f2b8bc51050f5f4">Catch::operator+</a></div><div class="ttdeci">std::string operator+(StringRef lhs, StringRef rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6605</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae50508f10ffc4ed873a31a4db4caea16"><div class="ttname"><a href="namespaceCatch.html#ae50508f10ffc4ed873a31a4db4caea16">Catch::cleanUpContext</a></div><div class="ttdeci">void cleanUpContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3648</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae5e405537e8a55293a1b6cad32e2cdb5"><div class="ttname"><a href="namespaceCatch.html#ae5e405537e8a55293a1b6cad32e2cdb5">Catch::serializeFilters</a></div><div class="ttdeci">std::string serializeFilters(std::vector< std::string > const &filters)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9816</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae65d074e6c60320640a500d302b83bb2"><div class="ttname"><a href="namespaceCatch.html#ae65d074e6c60320640a500d302b83bb2">Catch::nextafter</a></div><div class="ttdeci">float nextafter(float x, float y)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5211</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae67297c3e265b0fcd55de371bf408e4e"><div class="ttname"><a href="namespaceCatch.html#ae67297c3e265b0fcd55de371bf408e4e">Catch::throw_domain_error</a></div><div class="ttdeci">void throw_domain_error(std::string const &msg)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3857</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_ae9831933e640b35f907975c129f4763f"><div class="ttname"><a href="namespaceCatch.html#ae9831933e640b35f907975c129f4763f">Catch::makeOutputRedirect</a></div><div class="ttdeci">Detail::unique_ptr< OutputRedirect > makeOutputRedirect(bool actual)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5062</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aeb5fab7ca94d3e959fd7db6167caf5ee"><div class="ttname"><a href="namespaceCatch.html#aeb5fab7ca94d3e959fd7db6167caf5ee">Catch::getCurrentMutableContext</a></div><div class="ttdeci">Context & getCurrentMutableContext()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3656</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aecf85e8927841af21b8fcd3bab31df2b"><div class="ttname"><a href="namespaceCatch.html#aecf85e8927841af21b8fcd3bab31df2b">Catch::printTestRunTotals</a></div><div class="ttdeci">void printTestRunTotals(std::ostream &stream, ColourImpl &streamColour, Totals const &totals)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:10033</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af125966eee74f0256b8bfddec3840497"><div class="ttname"><a href="namespaceCatch.html#af125966eee74f0256b8bfddec3840497">Catch::shouldShowDuration</a></div><div class="ttdeci">bool shouldShowDuration(IConfig const &config, double duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9805</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af13494e925a793e3e7143c6ce6f442c2"><div class="ttname"><a href="namespaceCatch.html#af13494e925a793e3e7143c6ce6f442c2">Catch::rangeToString</a></div><div class="ttdeci">std::string rangeToString(Range const &range)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2936</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af1944a358b260e03c6695aa7ae259c9a"><div class="ttname"><a href="namespaceCatch.html#af1944a358b260e03c6695aa7ae259c9a">Catch::filterTests</a></div><div class="ttdeci">std::vector< TestCaseHandle > filterTests(std::vector< TestCaseHandle > const &testCases, TestSpec const &testSpec, IConfig const &config)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6792</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af65507889895c5c4b04fb831eeab2972"><div class="ttname"><a href="namespaceCatch.html#af65507889895c5c4b04fb831eeab2972">Catch::getFormattedDuration</a></div><div class="ttdeci">std::string getFormattedDuration(double duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:9785</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af718eeab870712f292ed8dc6ee3f6488"><div class="ttname"><a href="namespaceCatch.html#af718eeab870712f292ed8dc6ee3f6488">Catch::getResultCapture</a></div><div class="ttdeci">IResultCapture & getResultCapture()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6289</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af85c0d46dfe687d923a157362fd07737"><div class="ttname"><a href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737">Catch::Verbosity</a></div><div class="ttdeci">Verbosity</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1153</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111"><div class="ttname"><a href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a098753f8980036f4b936e3d4b6997111">Catch::Verbosity::Quiet</a></div><div class="ttdeci">@ Quiet</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1154</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35"><div class="ttname"><a href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a655d20c1ca69519ca647684edbb2db35">Catch::Verbosity::High</a></div><div class="ttdeci">@ High</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1156</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0"><div class="ttname"><a href="namespaceCatch.html#af85c0d46dfe687d923a157362fd07737a960b44c579bc2f6818d2daaf9e4c16f0">Catch::Verbosity::Normal</a></div><div class="ttdeci">@ Normal</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1155</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_afcb41c3350d3488c0efb02816a8867c8"><div class="ttname"><a href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8">Catch::ShowDurations</a></div><div class="ttdeci">ShowDurations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1167</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_afcb41c3350d3488c0efb02816a8867c8a03cdfbdf8eac6fa7716a480c492f386e"><div class="ttname"><a href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a03cdfbdf8eac6fa7716a480c492f386e">Catch::ShowDurations::DefaultForReporter</a></div><div class="ttdeci">@ DefaultForReporter</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1168</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_afcb41c3350d3488c0efb02816a8867c8a68eec46437c384d8dad18d5464ebc35c"><div class="ttname"><a href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a68eec46437c384d8dad18d5464ebc35c">Catch::ShowDurations::Always</a></div><div class="ttdeci">@ Always</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1169</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_afcb41c3350d3488c0efb02816a8867c8a6e7b34fa59e1bd229b207892956dc41c"><div class="ttname"><a href="namespaceCatch.html#afcb41c3350d3488c0efb02816a8867c8a6e7b34fa59e1bd229b207892956dc41c">Catch::ShowDurations::Never</a></div><div class="ttdeci">@ Never</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1170</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_afe4e6770da547e43e9e4eeaa05f946ea"><div class="ttname"><a href="namespaceCatch.html#afe4e6770da547e43e9e4eeaa05f946ea">Catch::replaceInPlace</a></div><div class="ttdeci">bool replaceInPlace(std::string &str, std::string const &replaceThis, std::string const &withThis)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:6510</div></div>
|
|
<div class="ttc" id="anamespaceCatch_html_aff37796f0f578c2816f74267e641c5f7"><div class="ttname"><a href="namespaceCatch.html#aff37796f0f578c2816f74267e641c5f7">Catch::isnan</a></div><div class="ttdeci">bool isnan(float f)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:5191</div></div>
|
|
<div class="ttc" id="anamespacematplotlibcpp_html_a62aaaf872c41a9d1b71add44c0cc0447"><div class="ttname"><a href="namespacematplotlibcpp.html#a62aaaf872c41a9d1b71add44c0cc0447">matplotlibcpp::close</a></div><div class="ttdeci">void close()</div><div class="ttdef"><b>Definition</b> matplotlibcpp.h:2567</div></div>
|
|
<div class="ttc" id="anamespacematplotlibcpp_html_ad765633aecb8e1000c8ee64783d47dd7"><div class="ttname"><a href="namespacematplotlibcpp.html#ad765633aecb8e1000c8ee64783d47dd7">matplotlibcpp::text</a></div><div class="ttdeci">void text(Numeric x, Numeric y, const std::string &s="")</div><div class="ttdef"><b>Definition</b> matplotlibcpp.h:1834</div></div>
|
|
<div class="ttc" id="anamespacempl___html"><div class="ttname"><a href="namespacempl__.html">mpl_</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1529</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionInfo_html"><div class="ttname"><a href="structCatch_1_1AssertionInfo.html">Catch::AssertionInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3267</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionInfo_html_a17bdbb404ba12658034f833be2f4c3e7"><div class="ttname"><a href="structCatch_1_1AssertionInfo.html#a17bdbb404ba12658034f833be2f4c3e7">Catch::AssertionInfo::lineInfo</a></div><div class="ttdeci">SourceLineInfo lineInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3271</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionInfo_html_a60353b3632ab2f827162f2b2d6911073"><div class="ttname"><a href="structCatch_1_1AssertionInfo.html#a60353b3632ab2f827162f2b2d6911073">Catch::AssertionInfo::resultDisposition</a></div><div class="ttdeci">ResultDisposition::Flags resultDisposition</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3273</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionInfo_html_aaf3fbb9f1fe09c879ba3d877584e3056"><div class="ttname"><a href="structCatch_1_1AssertionInfo.html#aaf3fbb9f1fe09c879ba3d877584e3056">Catch::AssertionInfo::macroName</a></div><div class="ttdeci">StringRef macroName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3270</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionInfo_html_accd36744b4acaa3a691a72df0b42190f"><div class="ttname"><a href="structCatch_1_1AssertionInfo.html#accd36744b4acaa3a691a72df0b42190f">Catch::AssertionInfo::capturedExpression</a></div><div class="ttdeci">StringRef capturedExpression</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3272</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionReaction_html"><div class="ttname"><a href="structCatch_1_1AssertionReaction.html">Catch::AssertionReaction</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5611</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionReaction_html_a82c8d95a2c1b6a331bde66982a8e090f"><div class="ttname"><a href="structCatch_1_1AssertionReaction.html#a82c8d95a2c1b6a331bde66982a8e090f">Catch::AssertionReaction::shouldThrow</a></div><div class="ttdeci">bool shouldThrow</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5613</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionReaction_html_aad2c1008a81484ecb1619a3da29929f6"><div class="ttname"><a href="structCatch_1_1AssertionReaction.html#aad2c1008a81484ecb1619a3da29929f6">Catch::AssertionReaction::shouldSkip</a></div><div class="ttdeci">bool shouldSkip</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5614</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionReaction_html_adcf30fb90ff20d9789df78d424652497"><div class="ttname"><a href="structCatch_1_1AssertionReaction.html#adcf30fb90ff20d9789df78d424652497">Catch::AssertionReaction::shouldDebugBreak</a></div><div class="ttdeci">bool shouldDebugBreak</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5612</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html">Catch::AssertionResultData</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3325</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_a21c9d6ed92a8beaeeb229302ca8cffbb"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#a21c9d6ed92a8beaeeb229302ca8cffbb">Catch::AssertionResultData::reconstructExpression</a></div><div class="ttdeci">std::string reconstructExpression() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:634</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_a7ceab4a7ff722aec5587e3748caf66b7"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#a7ceab4a7ff722aec5587e3748caf66b7">Catch::AssertionResultData::resultType</a></div><div class="ttdeci">ResultWas::OfType resultType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3333</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_a8c0846a7e323fb7bfe292fa59a11a00e"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#a8c0846a7e323fb7bfe292fa59a11a00e">Catch::AssertionResultData::AssertionResultData</a></div><div class="ttdeci">AssertionResultData()=delete</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_a9e809d36fffbeb1c7d0cbe7382dd9595"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#a9e809d36fffbeb1c7d0cbe7382dd9595">Catch::AssertionResultData::reconstructedExpression</a></div><div class="ttdeci">std::string reconstructedExpression</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3331</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_ac34215803c4c4a88f795879f61c1f7b4"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#ac34215803c4c4a88f795879f61c1f7b4">Catch::AssertionResultData::message</a></div><div class="ttdeci">std::string message</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3330</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AssertionResultData_html_ad20fe728af4ef4aef8b9aea522ffe8b3"><div class="ttname"><a href="structCatch_1_1AssertionResultData.html#ad20fe728af4ef4aef8b9aea522ffe8b3">Catch::AssertionResultData::lazyExpression</a></div><div class="ttdeci">LazyExpression lazyExpression</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3332</div></div>
|
|
<div class="ttc" id="astructCatch_1_1AutoReg_html_a55b55f307b619aaee06f1ceb20660c08"><div class="ttname"><a href="structCatch_1_1AutoReg.html#a55b55f307b619aaee06f1ceb20660c08">Catch::AutoReg::AutoReg</a></div><div class="ttdeci">AutoReg(Detail::unique_ptr< ITestInvoker > invoker, SourceLineInfo const &lineInfo, StringRef classOrMethod, NameAndTags const &nameAndTags) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:7145</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html">Catch::BenchmarkInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1350</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_a1e5b58de921a9e88b72749cf3bd6efea"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#a1e5b58de921a9e88b72749cf3bd6efea">Catch::BenchmarkInfo::clockCost</a></div><div class="ttdeci">double clockCost</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1357</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_a37701972650bbbbfbd748dc675cf46d8"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#a37701972650bbbbfbd748dc675cf46d8">Catch::BenchmarkInfo::samples</a></div><div class="ttdeci">unsigned int samples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1354</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_a565ef1992e7b15da65d99629a7d7b362"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#a565ef1992e7b15da65d99629a7d7b362">Catch::BenchmarkInfo::resamples</a></div><div class="ttdeci">unsigned int resamples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1355</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_a8e98fbc4d1069209dd74da4fffc42439"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#a8e98fbc4d1069209dd74da4fffc42439">Catch::BenchmarkInfo::iterations</a></div><div class="ttdeci">int iterations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1353</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_ac3e87a646e9fb0771e495938ef878cd4"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#ac3e87a646e9fb0771e495938ef878cd4">Catch::BenchmarkInfo::estimatedDuration</a></div><div class="ttdeci">double estimatedDuration</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1352</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_ad5f585aedc8f5d51f36b030f7f4f8e7d"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#ad5f585aedc8f5d51f36b030f7f4f8e7d">Catch::BenchmarkInfo::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1351</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkInfo_html_afc6fa85797067ea9af01fb0e2bc0d790"><div class="ttname"><a href="structCatch_1_1BenchmarkInfo.html#afc6fa85797067ea9af01fb0e2bc0d790">Catch::BenchmarkInfo::clockResolution</a></div><div class="ttdeci">double clockResolution</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1356</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html">Catch::BenchmarkStats</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1363</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_a1287a52bd41715dde01e267fd76414b2"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#a1287a52bd41715dde01e267fd76414b2">Catch::BenchmarkStats::outliers</a></div><div class="ttdeci">Benchmark::OutlierClassification outliers</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1369</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_a205056fc86de7f3cee181886fdaa1f9b"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#a205056fc86de7f3cee181886fdaa1f9b">Catch::BenchmarkStats::standardDeviation</a></div><div class="ttdeci">Benchmark::Estimate< Benchmark::FDuration > standardDeviation</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1368</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_a9d3ea6132bd9d311497a9c59c8229f89"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#a9d3ea6132bd9d311497a9c59c8229f89">Catch::BenchmarkStats::outlierVariance</a></div><div class="ttdeci">double outlierVariance</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1370</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_abb160c094a8f9230e6cd8d34f573440a"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#abb160c094a8f9230e6cd8d34f573440a">Catch::BenchmarkStats::samples</a></div><div class="ttdeci">std::vector< Benchmark::FDuration > samples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1366</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_ad2185a91f6b121b11f67f0438f55757f"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#ad2185a91f6b121b11f67f0438f55757f">Catch::BenchmarkStats::info</a></div><div class="ttdeci">BenchmarkInfo info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1364</div></div>
|
|
<div class="ttc" id="astructCatch_1_1BenchmarkStats_html_ade33d0c1ff10028f41c222e6b17c919e"><div class="ttname"><a href="structCatch_1_1BenchmarkStats.html#ade33d0c1ff10028f41c222e6b17c919e">Catch::BenchmarkStats::mean</a></div><div class="ttdeci">Benchmark::Estimate< Benchmark::FDuration > mean</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1367</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_a01358fc2fd4c2124ca563ffe4b48575f"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#a01358fc2fd4c2124ca563ffe4b48575f">Catch::Benchmark::Benchmark::fun</a></div><div class="ttdeci">Detail::BenchmarkFunction fun</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2185</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_a8d592f11d8c9f9da369d6b53616d7414"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#a8d592f11d8c9f9da369d6b53616d7414">Catch::Benchmark::Benchmark::operator=</a></div><div class="ttdeci">Benchmark & operator=(Fun func)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2171</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_a98bb1e62d945c13bdff3a7017ca93b14"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#a98bb1e62d945c13bdff3a7017ca93b14">Catch::Benchmark::Benchmark::Benchmark</a></div><div class="ttdeci">Benchmark(std::string &&benchmarkName, FUN &&func)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2114</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_a98e92d5f04aaaea3ba6dfec880eca4e0"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#a98e92d5f04aaaea3ba6dfec880eca4e0">Catch::Benchmark::Benchmark::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2186</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_a9bdbca8411c57892f7b01d6118def51c"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#a9bdbca8411c57892f7b01d6118def51c">Catch::Benchmark::Benchmark::Benchmark</a></div><div class="ttdeci">Benchmark(std::string &&benchmarkName)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2110</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_aeff43305485b4ce29af38094437a8544"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#aeff43305485b4ce29af38094437a8544">Catch::Benchmark::Benchmark::run</a></div><div class="ttdeci">void run()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2127</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Benchmark_html_afac4a6950e035232d991d4be63a907fd"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Benchmark.html#afac4a6950e035232d991d4be63a907fd">Catch::Benchmark::Benchmark::prepare</a></div><div class="ttdeci">ExecutionPlan prepare(const IConfig &cfg, Environment env)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2118</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html">Catch::Benchmark::Chronometer</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1562</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_a0042e09974d3c4e7f445fb0c75a9a51d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#a0042e09974d3c4e7f445fb0c75a9a51d">Catch::Benchmark::Chronometer::runs</a></div><div class="ttdeci">int runs() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1567</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_a15701264575d283581bfa6ced734c2bb"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#a15701264575d283581bfa6ced734c2bb">Catch::Benchmark::Chronometer::measure</a></div><div class="ttdeci">void measure(Fun &&fun)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1565</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_a3302c48061da0cc3eeed30fe38caebc9"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#a3302c48061da0cc3eeed30fe38caebc9">Catch::Benchmark::Chronometer::Chronometer</a></div><div class="ttdeci">Chronometer(Detail::ChronometerConcept &meter, int repeats_)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1569</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_a48e7c1a08f021f9c1b94f6bf48ecab11"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#a48e7c1a08f021f9c1b94f6bf48ecab11">Catch::Benchmark::Chronometer::measure</a></div><div class="ttdeci">void measure(Fun &&fun, std::true_type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1580</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_a7f73c21b7a542209494a303328e55d42"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#a7f73c21b7a542209494a303328e55d42">Catch::Benchmark::Chronometer::impl</a></div><div class="ttdeci">Detail::ChronometerConcept * impl</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1588</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_acaba4ccfa31ae95d750a91e1d12ad551"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#acaba4ccfa31ae95d750a91e1d12ad551">Catch::Benchmark::Chronometer::repeats</a></div><div class="ttdeci">int repeats</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1589</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Chronometer_html_afbc63bf6896e0d510ed35f0d4fc8127e"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Chronometer.html#afbc63bf6896e0d510ed35f0d4fc8127e">Catch::Benchmark::Chronometer::measure</a></div><div class="ttdeci">void measure(Fun &&fun, std::false_type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1575</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable_html_a10430cd3e0c1619f739cdaf246e247b4"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a10430cd3e0c1619f739cdaf246e247b4">Catch::Benchmark::Detail::BenchmarkFunction::callable::operator=</a></div><div class="ttdeci">callable & operator=(callable &&)=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable_html_a33d160b42238bdab21b37f75c617a24a"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a33d160b42238bdab21b37f75c617a24a">Catch::Benchmark::Detail::BenchmarkFunction::callable::call</a></div><div class="ttdeci">virtual void call(Chronometer meter) const =0</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable_html_a340c5008c9f7f0c612c6f0b1e0f56cd7"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#a340c5008c9f7f0c612c6f0b1e0f56cd7">Catch::Benchmark::Detail::BenchmarkFunction::callable::~callable</a></div><div class="ttdeci">virtual ~callable()</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable_html_ad08b417b9fe9b87d38bb06da1e696963"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#ad08b417b9fe9b87d38bb06da1e696963">Catch::Benchmark::Detail::BenchmarkFunction::callable::callable</a></div><div class="ttdeci">callable(callable &&)=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable_html_aedc3b60de7889c01651a2d4a6c3fc560"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1callable.html#aedc3b60de7889c01651a2d4a6c3fc560">Catch::Benchmark::Detail::BenchmarkFunction::callable::callable</a></div><div class="ttdeci">callable()=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html">Catch::Benchmark::Detail::BenchmarkFunction::model</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1623</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_a2281599b1aa17f328db578d31f188ffd"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a2281599b1aa17f328db578d31f188ffd">Catch::Benchmark::Detail::BenchmarkFunction::model::call</a></div><div class="ttdeci">void call(Chronometer meter, std::true_type) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1630</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_a6c5805db4815767dc71f9a5b62eeb6ef"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6c5805db4815767dc71f9a5b62eeb6ef">Catch::Benchmark::Detail::BenchmarkFunction::model::call</a></div><div class="ttdeci">void call(Chronometer meter) const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1627</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_a6d91267ef60f6d7f36ff001b1a36391b"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a6d91267ef60f6d7f36ff001b1a36391b">Catch::Benchmark::Detail::BenchmarkFunction::model::model</a></div><div class="ttdeci">model(Fun &&fun_)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1624</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_a82c4fd40b00e9f24bebc46893b19071c"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#a82c4fd40b00e9f24bebc46893b19071c">Catch::Benchmark::Detail::BenchmarkFunction::model::call</a></div><div class="ttdeci">void call(Chronometer meter, std::false_type) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1633</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_ac483aef41b94e384cb36db1bb05b557f"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ac483aef41b94e384cb36db1bb05b557f">Catch::Benchmark::Detail::BenchmarkFunction::model::model</a></div><div class="ttdeci">model(Fun const &fun_)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1625</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model_html_ae2880bb16729d10107768b18de4b3e75"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_1_1model.html#ae2880bb16729d10107768b18de4b3e75">Catch::Benchmark::Detail::BenchmarkFunction::model::fun</a></div><div class="ttdeci">Fun fun</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1637</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html">Catch::Benchmark::Detail::BenchmarkFunction</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1612</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_a0f747ab53d9012d935a916e646091740"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a0f747ab53d9012d935a916e646091740">Catch::Benchmark::Detail::BenchmarkFunction::operator=</a></div><div class="ttdeci">BenchmarkFunction & operator=(BenchmarkFunction &&that) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1652</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_a2806f1bd3beabb40a0dbfacc59d92ad0"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a2806f1bd3beabb40a0dbfacc59d92ad0">Catch::Benchmark::Detail::BenchmarkFunction::BenchmarkFunction</a></div><div class="ttdeci">BenchmarkFunction()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:136</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_a3b377f8e165a715089431c2fdd8dcd57"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a3b377f8e165a715089431c2fdd8dcd57">Catch::Benchmark::Detail::BenchmarkFunction::BenchmarkFunction</a></div><div class="ttdeci">BenchmarkFunction(BenchmarkFunction &&that) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1648</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_a6d0382763e5fef9706efa32c5f0c09d7"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#a6d0382763e5fef9706efa32c5f0c09d7">Catch::Benchmark::Detail::BenchmarkFunction::BenchmarkFunction</a></div><div class="ttdeci">BenchmarkFunction(Fun &&fun)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1645</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_aacfd45912b8d4536d5a854819ecf9b06"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#aacfd45912b8d4536d5a854819ecf9b06">Catch::Benchmark::Detail::BenchmarkFunction::f</a></div><div class="ttdeci">Catch::Detail::unique_ptr< callable > f</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1660</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction_html_ab78ffb29682af780ec2a4eac521351a5"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1BenchmarkFunction.html#ab78ffb29682af780ec2a4eac521351a5">Catch::Benchmark::Detail::BenchmarkFunction::operator()</a></div><div class="ttdeci">void operator()(Chronometer meter) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1657</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html">Catch::Benchmark::Detail::ChronometerConcept</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1538</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_a066c884155da1ab1efcde265b2ea80bf"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a066c884155da1ab1efcde265b2ea80bf">Catch::Benchmark::Detail::ChronometerConcept::finish</a></div><div class="ttdeci">virtual void finish()=0</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_a3af87e71a7000662cd1448fa1c54d568"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a3af87e71a7000662cd1448fa1c54d568">Catch::Benchmark::Detail::ChronometerConcept::~ChronometerConcept</a></div><div class="ttdeci">virtual ~ChronometerConcept()</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_a93cafc1a451fd4022ee08a9cfa20bea6"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#a93cafc1a451fd4022ee08a9cfa20bea6">Catch::Benchmark::Detail::ChronometerConcept::operator=</a></div><div class="ttdeci">ChronometerConcept & operator=(ChronometerConcept const &)=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_ac4cbd1f841d745b9d638c5342e8d9c39"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ac4cbd1f841d745b9d638c5342e8d9c39">Catch::Benchmark::Detail::ChronometerConcept::ChronometerConcept</a></div><div class="ttdeci">ChronometerConcept(ChronometerConcept const &)=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_ad1935ce0e39ea8b3ee96b7056131e318"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#ad1935ce0e39ea8b3ee96b7056131e318">Catch::Benchmark::Detail::ChronometerConcept::ChronometerConcept</a></div><div class="ttdeci">ChronometerConcept()=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept_html_af3d2250976b47920b4f3f4936fdffbc7"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerConcept.html#af3d2250976b47920b4f3f4936fdffbc7">Catch::Benchmark::Detail::ChronometerConcept::start</a></div><div class="ttdeci">virtual void start()=0</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html">Catch::Benchmark::Detail::ChronometerModel</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1548</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html_a1c6d75cc74ff8663eea029d1760e0d95"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a1c6d75cc74ff8663eea029d1760e0d95">Catch::Benchmark::Detail::ChronometerModel::finish</a></div><div class="ttdeci">void finish() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1550</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html_a56f0814c0b13b21dd8a86135b66256ea"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a56f0814c0b13b21dd8a86135b66256ea">Catch::Benchmark::Detail::ChronometerModel::started</a></div><div class="ttdeci">TimePoint< Clock > started</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1557</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html_a73645cbcc831ab32de029006072b70dd"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a73645cbcc831ab32de029006072b70dd">Catch::Benchmark::Detail::ChronometerModel::start</a></div><div class="ttdeci">void start() override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1549</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html_a888ac0188449f74cb7c5ffb1a9e918c8"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#a888ac0188449f74cb7c5ffb1a9e918c8">Catch::Benchmark::Detail::ChronometerModel::elapsed</a></div><div class="ttdeci">IDuration elapsed() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1552</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel_html_ab3cfa080dee083a2ca79683eed55d732"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ChronometerModel.html#ab3cfa080dee083a2ca79683eed55d732">Catch::Benchmark::Detail::ChronometerModel::finished</a></div><div class="ttdeci">TimePoint< Clock > finished</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1558</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_3_01void_01_4_html_a89ab8831c06677e841b81bf17bc2ea90"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_3_01void_01_4.html#a89ab8831c06677e841b81bf17bc2ea90">Catch::Benchmark::Detail::CompleteInvoker< void >::invoke</a></div><div class="ttdeci">static CompleteType_t< void > invoke(Fun &&fun, Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1740</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html">Catch::Benchmark::Detail::CompleteInvoker</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1731</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker_html_adf04cae13162eb67730f224818dde58b"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteInvoker.html#adf04cae13162eb67730f224818dde58b">Catch::Benchmark::Detail::CompleteInvoker::invoke</a></div><div class="ttdeci">static Result invoke(Fun &&fun, Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1733</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteType_3_01void_01_4_1_1type_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType_3_01void_01_4_1_1type.html">Catch::Benchmark::Detail::CompleteType< void >::type</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1725</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteType_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html">Catch::Benchmark::Detail::CompleteType</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1723</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1CompleteType_html_a7322bfc02af34fdb67f9d0627a380715"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1CompleteType.html#a7322bfc02af34fdb67f9d0627a380715">Catch::Benchmark::Detail::CompleteType::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1723</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html">Catch::Benchmark::Detail::ObjectStorage</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2234</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a0aa2343f6092b5fa82d6fd827c2cc6a5"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a0aa2343f6092b5fa82d6fd827c2cc6a5">Catch::Benchmark::Detail::ObjectStorage::ObjectStorage</a></div><div class="ttdeci">ObjectStorage(const ObjectStorage &other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2237</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a3bdc976ee96d7fcb13b1574e0b3c031d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a3bdc976ee96d7fcb13b1574e0b3c031d">Catch::Benchmark::Detail::ObjectStorage::ObjectStorage</a></div><div class="ttdeci">ObjectStorage()=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a48cb51bf6c86fe1e475aead069edd6aa"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a48cb51bf6c86fe1e475aead069edd6aa">Catch::Benchmark::Detail::ObjectStorage::ObjectStorage</a></div><div class="ttdeci">ObjectStorage(ObjectStorage &&other)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2242</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a672f0bc299a46ae24acf83d946d1056c"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a672f0bc299a46ae24acf83d946d1056c">Catch::Benchmark::Detail::ObjectStorage::~ObjectStorage</a></div><div class="ttdeci">~ObjectStorage()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2247</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a70291139df4ff98e7d74b5ac9ba2ff36"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a70291139df4ff98e7d74b5ac9ba2ff36">Catch::Benchmark::Detail::ObjectStorage::stored_object</a></div><div class="ttdeci">T const & stored_object() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2275</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a81ab6a2ec1fb5f3c47f085d08bfb3f4c"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a81ab6a2ec1fb5f3c47f085d08bfb3f4c">Catch::Benchmark::Detail::ObjectStorage< T, true >::destruct_on_exit</a></div><div class="ttdeci">void destruct_on_exit(std::enable_if_t< Destruct, U > *=nullptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2264</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_a91fc237b9aeba82e176622ea42632a69"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#a91fc237b9aeba82e176622ea42632a69">Catch::Benchmark::Detail::ObjectStorage< T, true >::data</a></div><div class="ttdeci">unsigned char data[sizeof(T)]</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2282</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_aa900bef7043eb089ebdf32b2df4a492b"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aa900bef7043eb089ebdf32b2df4a492b">Catch::Benchmark::Detail::ObjectStorage::destruct</a></div><div class="ttdeci">std::enable_if_t< AllowManualDestruction > destruct()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2256</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_ad685d105bd305e905a2bd9ad4518d908"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#ad685d105bd305e905a2bd9ad4518d908">Catch::Benchmark::Detail::ObjectStorage::stored_object</a></div><div class="ttdeci">T & stored_object()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2273</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_aed0db08b2f82256bdcceb0a125a95a27"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aed0db08b2f82256bdcceb0a125a95a27">Catch::Benchmark::Detail::ObjectStorage::destruct_on_exit</a></div><div class="ttdeci">void destruct_on_exit(std::enable_if_t<!Destruct, U > *=nullptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2267</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage_html_aefe652a42f4325601e153acbd6d959fd"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1ObjectStorage.html#aefe652a42f4325601e153acbd6d959fd">Catch::Benchmark::Detail::ObjectStorage::construct</a></div><div class="ttdeci">void construct(Args &&... args)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2250</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html">Catch::Benchmark::Detail::bootstrap_analysis</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1934</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis_html_a3bc85781de3f5ffe6bff8dc40b4cc1d0"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a3bc85781de3f5ffe6bff8dc40b4cc1d0">Catch::Benchmark::Detail::bootstrap_analysis::standard_deviation</a></div><div class="ttdeci">Estimate< double > standard_deviation</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1936</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis_html_a5b362e21a4fea483371fe3d80f63676d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a5b362e21a4fea483371fe3d80f63676d">Catch::Benchmark::Detail::bootstrap_analysis::outlier_variance</a></div><div class="ttdeci">double outlier_variance</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1937</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis_html_a921aef889f940d88732dfa359ac3a44d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1bootstrap__analysis.html#a921aef889f940d88732dfa359ac3a44d">Catch::Benchmark::Detail::bootstrap_analysis::mean</a></div><div class="ttdeci">Estimate< double > mean</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1935</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1is__related_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1is__related.html">Catch::Benchmark::Detail::is_related</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1603</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1repeater_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html">Catch::Benchmark::Detail::repeater</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1680</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1repeater_html_a56d8c17bbfdb5b539d9dc64073df4145"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a56d8c17bbfdb5b539d9dc64073df4145">Catch::Benchmark::Detail::repeater::operator()</a></div><div class="ttdeci">void operator()(int k) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1681</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Detail_1_1repeater_html_a97f32a92784f901935534cee88726a46"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Detail_1_1repeater.html#a97f32a92784f901935534cee88726a46">Catch::Benchmark::Detail::repeater::fun</a></div><div class="ttdeci">Fun fun</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1686</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1EnvironmentEstimate_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html">Catch::Benchmark::EnvironmentEstimate</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1387</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1EnvironmentEstimate_html_a6cf37d807f3f3b1350adaa7cc3280ba3"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#a6cf37d807f3f3b1350adaa7cc3280ba3">Catch::Benchmark::EnvironmentEstimate::outliers</a></div><div class="ttdeci">OutlierClassification outliers</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1389</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1EnvironmentEstimate_html_ac6170403cdd6a7fc15355cb13e4fb3dd"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1EnvironmentEstimate.html#ac6170403cdd6a7fc15355cb13e4fb3dd">Catch::Benchmark::EnvironmentEstimate::mean</a></div><div class="ttdeci">FDuration mean</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1388</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Environment_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Environment.html">Catch::Benchmark::Environment</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1391</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Environment_html_adf68bbccb5c7e231324f4e244593280c"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Environment.html#adf68bbccb5c7e231324f4e244593280c">Catch::Benchmark::Environment::clock_cost</a></div><div class="ttdeci">EnvironmentEstimate clock_cost</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1393</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Environment_html_ae9a6cf5625ef688e8b2739c14e427ce8"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Environment.html#ae9a6cf5625ef688e8b2739c14e427ce8">Catch::Benchmark::Environment::clock_resolution</a></div><div class="ttdeci">EnvironmentEstimate clock_resolution</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1392</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Estimate_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Estimate.html">Catch::Benchmark::Estimate</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1308</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Estimate_html_a856766ce401640365dc70ac5c2bd9374"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Estimate.html#a856766ce401640365dc70ac5c2bd9374">Catch::Benchmark::Estimate::lower_bound</a></div><div class="ttdeci">Type lower_bound</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1310</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Estimate_html_a8aeffe971b4dfb39e7ebde31d96b755a"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Estimate.html#a8aeffe971b4dfb39e7ebde31d96b755a">Catch::Benchmark::Estimate::point</a></div><div class="ttdeci">Type point</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1309</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Estimate_html_ac7c0199cc99a53c3f81457b6fdb451a6"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Estimate.html#ac7c0199cc99a53c3f81457b6fdb451a6">Catch::Benchmark::Estimate::confidence_interval</a></div><div class="ttdeci">double confidence_interval</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1312</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Estimate_html_acb93436c334a1c0c0c59f997a9bf26f5"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Estimate.html#acb93436c334a1c0c0c59f997a9bf26f5">Catch::Benchmark::Estimate::upper_bound</a></div><div class="ttdeci">Type upper_bound</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1311</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html">Catch::Benchmark::ExecutionPlan</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1854</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_a030c66ee7ae93249110107728bac81fa"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a030c66ee7ae93249110107728bac81fa">Catch::Benchmark::ExecutionPlan::benchmark</a></div><div class="ttdeci">Detail::BenchmarkFunction benchmark</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1857</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_a2bdbd553e77ec7e9e45c20e6d19bd288"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2bdbd553e77ec7e9e45c20e6d19bd288">Catch::Benchmark::ExecutionPlan::warmup_time</a></div><div class="ttdeci">FDuration warmup_time</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1858</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_a2c55b05b91b158044a2966c071931492"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a2c55b05b91b158044a2966c071931492">Catch::Benchmark::ExecutionPlan::iterations_per_sample</a></div><div class="ttdeci">int iterations_per_sample</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1855</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_a7000428364a19de80ed79301f1d248c5"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#a7000428364a19de80ed79301f1d248c5">Catch::Benchmark::ExecutionPlan::run</a></div><div class="ttdeci">std::vector< FDuration > run(const IConfig &cfg, Environment env) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1862</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_abbb214a372cde0cd513d3b6e581fc6b4"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#abbb214a372cde0cd513d3b6e581fc6b4">Catch::Benchmark::ExecutionPlan::warmup_iterations</a></div><div class="ttdeci">int warmup_iterations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1859</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1ExecutionPlan_html_adc8d469e18d7aaad3b9414682d9ac35d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1ExecutionPlan.html#adc8d469e18d7aaad3b9414682d9ac35d">Catch::Benchmark::ExecutionPlan::estimated_duration</a></div><div class="ttdeci">FDuration estimated_duration</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1856</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html">Catch::Benchmark::OutlierClassification</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1327</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_a20c52ffef6ff024ddda03d1348bf8beb"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a20c52ffef6ff024ddda03d1348bf8beb">Catch::Benchmark::OutlierClassification::high_severe</a></div><div class="ttdeci">int high_severe</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1332</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_a4faba77474cb2b23184fd7e530723868"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a4faba77474cb2b23184fd7e530723868">Catch::Benchmark::OutlierClassification::high_mild</a></div><div class="ttdeci">int high_mild</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1331</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_a78c026709f1d2cf71fd80c26332c5528"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#a78c026709f1d2cf71fd80c26332c5528">Catch::Benchmark::OutlierClassification::total</a></div><div class="ttdeci">constexpr int total() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1334</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_ae364853059fe2dfe0f8b66c165165d24"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#ae364853059fe2dfe0f8b66c165165d24">Catch::Benchmark::OutlierClassification::low_severe</a></div><div class="ttdeci">int low_severe</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1329</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_af92ce83fae2e50b16a6e534c75ee518a"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#af92ce83fae2e50b16a6e534c75ee518a">Catch::Benchmark::OutlierClassification::low_mild</a></div><div class="ttdeci">int low_mild</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1330</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1OutlierClassification_html_afa72bf7b54b3fc26b943daa0ad99a623"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1OutlierClassification.html#afa72bf7b54b3fc26b943daa0ad99a623">Catch::Benchmark::OutlierClassification::samples_seen</a></div><div class="ttdeci">int samples_seen</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1328</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html">Catch::Benchmark::SampleAnalysis</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2076</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html_a3b6f7fac3cd345ea6276c11267562c09"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a3b6f7fac3cd345ea6276c11267562c09">Catch::Benchmark::SampleAnalysis::outlier_variance</a></div><div class="ttdeci">double outlier_variance</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2081</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html_a7956e4b789b3909d269b5d756b61c063"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7956e4b789b3909d269b5d756b61c063">Catch::Benchmark::SampleAnalysis::outliers</a></div><div class="ttdeci">OutlierClassification outliers</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2080</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html_a7ef4889f28af063958aa28ba326d8399"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#a7ef4889f28af063958aa28ba326d8399">Catch::Benchmark::SampleAnalysis::standard_deviation</a></div><div class="ttdeci">Estimate< FDuration > standard_deviation</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2079</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html_aa73a649b4eaa32fea5fefe181925b247"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#aa73a649b4eaa32fea5fefe181925b247">Catch::Benchmark::SampleAnalysis::mean</a></div><div class="ttdeci">Estimate< FDuration > mean</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2078</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1SampleAnalysis_html_ad323d63e1895f868f52c0655875ba67d"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1SampleAnalysis.html#ad323d63e1895f868f52c0655875ba67d">Catch::Benchmark::SampleAnalysis::samples</a></div><div class="ttdeci">std::vector< FDuration > samples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2077</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Timing_html"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Timing.html">Catch::Benchmark::Timing</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1775</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Timing_html_a7489a9c619f31f6bd94d88cefad9d433"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Timing.html#a7489a9c619f31f6bd94d88cefad9d433">Catch::Benchmark::Timing< Detail::CompleteType_t< FunctionReturnType< Func, Args... > > >::iterations</a></div><div class="ttdeci">int iterations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1778</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Timing_html_a74fc1d5ed3eeffa372a0fca0197e1ab8"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Timing.html#a74fc1d5ed3eeffa372a0fca0197e1ab8">Catch::Benchmark::Timing< Detail::CompleteType_t< FunctionReturnType< Func, Args... > > >::elapsed</a></div><div class="ttdeci">IDuration elapsed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1776</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Benchmark_1_1Timing_html_a905d86f2a0d04b324b9c9747013f5a12"><div class="ttname"><a href="structCatch_1_1Benchmark_1_1Timing.html#a905d86f2a0d04b324b9c9747013f5a12">Catch::Benchmark::Timing< Detail::CompleteType_t< FunctionReturnType< Func, Args... > > >::result</a></div><div class="ttdeci">Detail::CompleteType_t< FunctionReturnType< Func, Args... > > result</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1777</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda_html_a1a6ff757cca809397826b0f1d616f5b1"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a1a6ff757cca809397826b0f1d616f5b1">Catch::Clara::Detail::BoundFlagLambda::BoundFlagLambda</a></div><div class="ttdeci">BoundFlagLambda(L const &lambda)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4629</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda_html_a21acbc8d514b48c2f1fb2c9073666ae1"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a21acbc8d514b48c2f1fb2c9073666ae1">Catch::Clara::Detail::BoundFlagLambda::m_lambda</a></div><div class="ttdeci">L m_lambda</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4619</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda_html_a4953fd3abe9fe9a14d43cb0bac56dd3d"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagLambda.html#a4953fd3abe9fe9a14d43cb0bac56dd3d">Catch::Clara::Detail::BoundFlagLambda::setFlag</a></div><div class="ttdeci">auto setFlag(bool flag) -> ParserResult override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4632</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html">Catch::Clara::Detail::BoundFlagRefBase</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4526</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase_html_a7c34675b920014dda03f8025d8614365"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html#a7c34675b920014dda03f8025d8614365">Catch::Clara::Detail::BoundFlagRefBase::isFlag</a></div><div class="ttdeci">bool isFlag() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2772</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase_html_ace5c2ee089c74ecb6b2faf705c0b3c47"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRefBase.html#ace5c2ee089c74ecb6b2faf705c0b3c47">Catch::Clara::Detail::BoundFlagRefBase::setFlag</a></div><div class="ttdeci">virtual auto setFlag(bool flag) -> ParserResult=0</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagRef_html_a23864ade2db416da0124b79fd6d56202"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a23864ade2db416da0124b79fd6d56202">Catch::Clara::Detail::BoundFlagRef::m_ref</a></div><div class="ttdeci">bool & m_ref</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4560</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundFlagRef_html_a9b422f2e11188095e3e9c9217dcf44b6"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundFlagRef.html#a9b422f2e11188095e3e9c9217dcf44b6">Catch::Clara::Detail::BoundFlagRef::BoundFlagRef</a></div><div class="ttdeci">BoundFlagRef(bool &ref)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4562</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundLambda_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html">Catch::Clara::Detail::BoundLambda</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4598</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundLambda_html_a0cc12fa32f99f63eb246953d4e532792"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a0cc12fa32f99f63eb246953d4e532792">Catch::Clara::Detail::BoundLambda::BoundLambda</a></div><div class="ttdeci">BoundLambda(L const &lambda)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4604</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundLambda_html_a7176971a3f0f3914882a72da653a44dc"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a7176971a3f0f3914882a72da653a44dc">Catch::Clara::Detail::BoundLambda::setValue</a></div><div class="ttdeci">auto setValue(std::string const &arg) -> ParserResult override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4606</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundLambda_html_a854649dcc9dde71a0d6dca03f00686d5"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundLambda.html#a854649dcc9dde71a0d6dca03f00686d5">Catch::Clara::Detail::BoundLambda::m_lambda</a></div><div class="ttdeci">L m_lambda</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4599</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundManyLambda_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html">Catch::Clara::Detail::BoundManyLambda</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4613</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundManyLambda_html_a088d0c0d444a1001a239ff60afc9595c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a088d0c0d444a1001a239ff60afc9595c">Catch::Clara::Detail::BoundManyLambda::BoundManyLambda</a></div><div class="ttdeci">BoundManyLambda(L const &lambda)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4614</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundManyLambda_html_a287998ae9a7bee65598feaf62647a4d8"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundManyLambda.html#a287998ae9a7bee65598feaf62647a4d8">Catch::Clara::Detail::BoundManyLambda::isContainer</a></div><div class="ttdeci">bool isContainer() const override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4615</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundRef_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html">Catch::Clara::Detail::BoundRef</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4517</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundRef_html_a4d240d57ca2a9e028410da61ec8c8986"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#a4d240d57ca2a9e028410da61ec8c8986">Catch::Clara::Detail::BoundRef::isContainer</a></div><div class="ttdeci">virtual bool isContainer() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2768</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundRef_html_a67026ffa73a70686b56cd4a81b5f3b2c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#a67026ffa73a70686b56cd4a81b5f3b2c">Catch::Clara::Detail::BoundRef::~BoundRef</a></div><div class="ttdeci">virtual ~BoundRef()=default</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundRef_html_aef6d0a21a22418b8580f60bbdd83f420"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundRef.html#aef6d0a21a22418b8580f60bbdd83f420">Catch::Clara::Detail::BoundRef::isFlag</a></div><div class="ttdeci">virtual bool isFlag() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2770</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html">Catch::Clara::Detail::BoundValueRefBase</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4522</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase_html_aa0567715426053267207c58342ed3fc8"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRefBase.html#aa0567715426053267207c58342ed3fc8">Catch::Clara::Detail::BoundValueRefBase::setValue</a></div><div class="ttdeci">virtual auto setValue(std::string const &arg) -> ParserResult=0</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4_html_a0da2f97ae86ae3a839533f2363252b1c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a0da2f97ae86ae3a839533f2363252b1c">Catch::Clara::Detail::BoundValueRef< std::vector< T > >::BoundValueRef</a></div><div class="ttdeci">BoundValueRef(std::vector< T > &ref)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4545</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4_html_a122a3afa72dbdf202af14e93365806aa"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a122a3afa72dbdf202af14e93365806aa">Catch::Clara::Detail::BoundValueRef< std::vector< T > >::isContainer</a></div><div class="ttdeci">auto isContainer() const -> bool override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4547</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4_html_a3932641218df5ec78b4cd8748318c820"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3932641218df5ec78b4cd8748318c820">Catch::Clara::Detail::BoundValueRef< std::vector< T > >::m_ref</a></div><div class="ttdeci">std::vector< T > & m_ref</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4543</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4_html_a3f70815651b76772e3b4016e8a2a7f8c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef_3_01std_1_1vector_3_01T_01_4_01_4.html#a3f70815651b76772e3b4016e8a2a7f8c">Catch::Clara::Detail::BoundValueRef< std::vector< T > >::setValue</a></div><div class="ttdeci">auto setValue(std::string const &arg) -> ParserResult override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4549</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html">Catch::Clara::Detail::BoundValueRef</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4531</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_html_a178228658004255150c6984aefff0d03"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a178228658004255150c6984aefff0d03">Catch::Clara::Detail::BoundValueRef::setValue</a></div><div class="ttdeci">ParserResult setValue(std::string const &arg) override</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4536</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_html_a3be8fb98a0eaf9d95513d1c60a4f01cb"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3be8fb98a0eaf9d95513d1c60a4f01cb">Catch::Clara::Detail::BoundValueRef::m_ref</a></div><div class="ttdeci">T & m_ref</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4532</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1BoundValueRef_html_a3dc01495f65f13239f4a015dbb012940"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1BoundValueRef.html#a3dc01495f65f13239f4a015dbb012940">Catch::Clara::Detail::BoundValueRef::BoundValueRef</a></div><div class="ttdeci">BoundValueRef(T &ref)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4534</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1HelpColumns_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html">Catch::Clara::Detail::HelpColumns</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4483</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1HelpColumns_html_a1259be2140566b6519190c8fbeb565df"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#a1259be2140566b6519190c8fbeb565df">Catch::Clara::Detail::HelpColumns::descriptions</a></div><div class="ttdeci">StringRef descriptions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4485</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1HelpColumns_html_ae2146379a2c62a134824a1b2d8ebf63c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1HelpColumns.html#ae2146379a2c62a134824a1b2d8ebf63c">Catch::Clara::Detail::HelpColumns::left</a></div><div class="ttdeci">std::string left</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4484</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_3_01void_01_4_html_a9022e9b0cf0b907b459633c679340111"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_3_01void_01_4.html#a9022e9b0cf0b907b459633c679340111">Catch::Clara::Detail::LambdaInvoker< void >::invoke</a></div><div class="ttdeci">static auto invoke(L const &lambda, ArgType const &arg) -> ParserResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4581</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html">Catch::Clara::Detail::LambdaInvoker</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4567</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1LambdaInvoker_html_a50c5d59c9c08b0ef32be08fd4e41529e"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1LambdaInvoker.html#a50c5d59c9c08b0ef32be08fd4e41529e">Catch::Clara::Detail::LambdaInvoker::invoke</a></div><div class="ttdeci">static auto invoke(L const &lambda, ArgType const &arg) -> ParserResult</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4573</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1Token_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1Token.html">Catch::Clara::Detail::Token</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4274</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1Token_html_a17573c21c9bc04d91005a815e1a5daf7"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a17573c21c9bc04d91005a815e1a5daf7">Catch::Clara::Detail::Token::type</a></div><div class="ttdeci">TokenType type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4275</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1Token_html_a26f66e6adc150e45cf325e0163367e41"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1Token.html#a26f66e6adc150e45cf325e0163367e41">Catch::Clara::Detail::Token::token</a></div><div class="ttdeci">StringRef token</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4276</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4_html_a10cccc922bfd18cf72bf956f2013af2c"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a10cccc922bfd18cf72bf956f2013af2c">Catch::Clara::Detail::UnaryLambdaTraits< ReturnT(ClassT::*)(ArgT) const >::isValid</a></div><div class="ttdeci">static const bool isValid</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4263</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4_html_a3a3140ca54356f90ecce68ca32aedb18"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a3a3140ca54356f90ecce68ca32aedb18">Catch::Clara::Detail::UnaryLambdaTraits< ReturnT(ClassT::*)(ArgT) const >::ReturnType</a></div><div class="ttdeci">ReturnT ReturnType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4265</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4_html_a61ea3267fcf0b643d9451889c6a4e5ed"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07ArgT_08_01const_01_4.html#a61ea3267fcf0b643d9451889c6a4e5ed">Catch::Clara::Detail::UnaryLambdaTraits< ReturnT(ClassT::*)(ArgT) const >::ArgType</a></div><div class="ttdeci">std::remove_const_t< std::remove_reference_t< ArgT > > ArgType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4264</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07Args_8_8_8_08_01const_01_4_html_a03300d673156c5ef9b417da012aaa4ac"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_3_01ReturnT_07ClassT_1_1_5_08_07Args_8_8_8_08_01const_01_4.html#a03300d673156c5ef9b417da012aaa4ac">Catch::Clara::Detail::UnaryLambdaTraits< ReturnT(ClassT::*)(Args...) const >::isValid</a></div><div class="ttdeci">static const bool isValid</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4258</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1UnaryLambdaTraits.html">Catch::Clara::Detail::UnaryLambdaTraits</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4254</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1fake__arg_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1fake__arg.html">Catch::Clara::Detail::fake_arg</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4234</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Detail_1_1is__unary__function_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1Detail_1_1is__unary__function.html">Catch::Clara::Detail::is_unary_function</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4240</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1Help_html_a3dac87afaa552a09ce07e81e46283dbe"><div class="ttname"><a href="structCatch_1_1Clara_1_1Help.html#a3dac87afaa552a09ce07e81e46283dbe">Catch::Clara::Help::Help</a></div><div class="ttdeci">Help(bool &showHelpFlag)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3063</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Clara_1_1accept__many__t_html"><div class="ttname"><a href="structCatch_1_1Clara_1_1accept__many__t.html">Catch::Clara::accept_many_t</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4230</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html"><div class="ttname"><a href="structCatch_1_1ConfigData.html">Catch::ConfigData</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3762</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a0da0f6d493ef8f799273b4358d420a3a"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a0da0f6d493ef8f799273b4358d420a3a">Catch::ConfigData::listTests</a></div><div class="ttdeci">bool listTests</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3764</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a10bfee8e127e5babfa4817553cf3ea69"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a10bfee8e127e5babfa4817553cf3ea69">Catch::ConfigData::benchmarkNoAnalysis</a></div><div class="ttdeci">bool benchmarkNoAnalysis</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3785</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a12535241547dfc57e6864c4fc2cd4dd9"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a12535241547dfc57e6864c4fc2cd4dd9">Catch::ConfigData::showHelp</a></div><div class="ttdeci">bool showHelp</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3772</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a145e2b7f25cb59b3ef793720328aaaee"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a145e2b7f25cb59b3ef793720328aaaee">Catch::ConfigData::benchmarkWarmupTime</a></div><div class="ttdeci">std::chrono::milliseconds::rep benchmarkWarmupTime</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3789</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a1890c64c96561c11fc90b46012c7eec6"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a1890c64c96561c11fc90b46012c7eec6">Catch::ConfigData::allowZeroTests</a></div><div class="ttdeci">bool allowZeroTests</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3776</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a1ae8b33c7837061097b209051c287099"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a1ae8b33c7837061097b209051c287099">Catch::ConfigData::reporterSpecifications</a></div><div class="ttdeci">std::vector< ReporterSpec > reporterSpecifications</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3802</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a2cda9be1ee8b85e51c2e242330c99949"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a2cda9be1ee8b85e51c2e242330c99949">Catch::ConfigData::libIdentify</a></div><div class="ttdeci">bool libIdentify</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3775</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a2d5505751aab745d5ae5e4ffe5c92c35"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a2d5505751aab745d5ae5e4ffe5c92c35">Catch::ConfigData::abortAfter</a></div><div class="ttdeci">int abortAfter</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3778</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a3c243de7a5957fa5311167039064379c"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a3c243de7a5957fa5311167039064379c">Catch::ConfigData::showInvisibles</a></div><div class="ttdeci">bool showInvisibles</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3773</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a45fdef92940dd2c210f80557a836f5fb"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a45fdef92940dd2c210f80557a836f5fb">Catch::ConfigData::benchmarkResamples</a></div><div class="ttdeci">unsigned int benchmarkResamples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3788</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a4ba3618cae31b43237724f55359bfe95"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a4ba3618cae31b43237724f55359bfe95">Catch::ConfigData::listReporters</a></div><div class="ttdeci">bool listReporters</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3766</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a4c28063ebb7747e0d1292d88c6c815c5"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a4c28063ebb7747e0d1292d88c6c815c5">Catch::ConfigData::listListeners</a></div><div class="ttdeci">bool listListeners</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3767</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a4c582987ddd060919a6fd203661f9210"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a4c582987ddd060919a6fd203661f9210">Catch::ConfigData::filenamesAsTags</a></div><div class="ttdeci">bool filenamesAsTags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3774</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a52508e710c553a3ce0531b4a59c2f25c"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a52508e710c553a3ce0531b4a59c2f25c">Catch::ConfigData::runOrder</a></div><div class="ttdeci">TestRunOrder runOrder</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3795</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a68cdb72e8eec907097c158e85b0047f1"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a68cdb72e8eec907097c158e85b0047f1">Catch::ConfigData::skipBenchmarks</a></div><div class="ttdeci">bool skipBenchmarks</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3784</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a6c62e90478bc2911d032ec54c2e9d8df"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a6c62e90478bc2911d032ec54c2e9d8df">Catch::ConfigData::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3800</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a6dd23f8c9d9337f46187e7dbb6a8328e"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a6dd23f8c9d9337f46187e7dbb6a8328e">Catch::ConfigData::noThrow</a></div><div class="ttdeci">bool noThrow</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3771</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a76026ccfbefe117a33dde6540161b113"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a76026ccfbefe117a33dde6540161b113">Catch::ConfigData::sectionsToRun</a></div><div class="ttdeci">std::vector< std::string > sectionsToRun</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3805</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a7cdef18ba0c8a052b80ac9d80949efbc"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a7cdef18ba0c8a052b80ac9d80949efbc">Catch::ConfigData::showDurations</a></div><div class="ttdeci">ShowDurations showDurations</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3793</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a8264452e6ba331c13c445bcf47604e11"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a8264452e6ba331c13c445bcf47604e11">Catch::ConfigData::shardCount</a></div><div class="ttdeci">unsigned int shardCount</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3781</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a8a617d7428797065c73b7d6585a81f77"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a8a617d7428797065c73b7d6585a81f77">Catch::ConfigData::defaultColourMode</a></div><div class="ttdeci">ColourMode defaultColourMode</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3796</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_a923861968eaad4d3c2ac82e514c7cc81"><div class="ttname"><a href="structCatch_1_1ConfigData.html#a923861968eaad4d3c2ac82e514c7cc81">Catch::ConfigData::waitForKeypress</a></div><div class="ttdeci">WaitForKeypress::When waitForKeypress</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3797</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_aa40b0e5d2f78a7addbd5c8d16a111840"><div class="ttname"><a href="structCatch_1_1ConfigData.html#aa40b0e5d2f78a7addbd5c8d16a111840">Catch::ConfigData::testsOrTags</a></div><div class="ttdeci">std::vector< std::string > testsOrTags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3804</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ab0e6ea949455438bfdc22ed25bab12f8"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ab0e6ea949455438bfdc22ed25bab12f8">Catch::ConfigData::verbosity</a></div><div class="ttdeci">Verbosity verbosity</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3791</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ab449e3c748282e6d6ccec1220a269e98"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ab449e3c748282e6d6ccec1220a269e98">Catch::ConfigData::rngSeed</a></div><div class="ttdeci">uint32_t rngSeed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3779</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ab93042534875065e313fc9c6d07555e6"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ab93042534875065e313fc9c6d07555e6">Catch::ConfigData::benchmarkConfidenceInterval</a></div><div class="ttdeci">double benchmarkConfidenceInterval</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3787</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ac181ec69c5b6c925ac9bea9eaf7039c3"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ac181ec69c5b6c925ac9bea9eaf7039c3">Catch::ConfigData::processName</a></div><div class="ttdeci">std::string processName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3801</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ac75e1404fab69dfd7105f688179b3c46"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ac75e1404fab69dfd7105f688179b3c46">Catch::ConfigData::defaultOutputFilename</a></div><div class="ttdeci">std::string defaultOutputFilename</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3799</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_acfa3ccaefe9052d32b33e224b1d45d6f"><div class="ttname"><a href="structCatch_1_1ConfigData.html#acfa3ccaefe9052d32b33e224b1d45d6f">Catch::ConfigData::minDuration</a></div><div class="ttdeci">double minDuration</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3794</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_ae76a7f7c5e9889f95c23f7a555000871"><div class="ttname"><a href="structCatch_1_1ConfigData.html#ae76a7f7c5e9889f95c23f7a555000871">Catch::ConfigData::benchmarkSamples</a></div><div class="ttdeci">unsigned int benchmarkSamples</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3786</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_aeb091ca2df2c654caaa2ad29c14578e5"><div class="ttname"><a href="structCatch_1_1ConfigData.html#aeb091ca2df2c654caaa2ad29c14578e5">Catch::ConfigData::showSuccessfulTests</a></div><div class="ttdeci">bool showSuccessfulTests</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3769</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_af3a1c0b4a748b24799941b59bcd9c138"><div class="ttname"><a href="structCatch_1_1ConfigData.html#af3a1c0b4a748b24799941b59bcd9c138">Catch::ConfigData::warnings</a></div><div class="ttdeci">WarnAbout::What warnings</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3792</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_af5907f3dac725fc180493b08b0b86e9c"><div class="ttname"><a href="structCatch_1_1ConfigData.html#af5907f3dac725fc180493b08b0b86e9c">Catch::ConfigData::shardIndex</a></div><div class="ttdeci">unsigned int shardIndex</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3782</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_af780422bdef8d8b905204542855cf6b3"><div class="ttname"><a href="structCatch_1_1ConfigData.html#af780422bdef8d8b905204542855cf6b3">Catch::ConfigData::listTags</a></div><div class="ttdeci">bool listTags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3765</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ConfigData_html_afec8310b1904784edb292e143a602fba"><div class="ttname"><a href="structCatch_1_1ConfigData.html#afec8310b1904784edb292e143a602fba">Catch::ConfigData::shouldDebugBreak</a></div><div class="ttdeci">bool shouldDebugBreak</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3770</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html"><div class="ttname"><a href="structCatch_1_1Counts.html">Catch::Counts</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4116</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_a33bd996e016030155b99fe1c51c08991"><div class="ttname"><a href="structCatch_1_1Counts.html#a33bd996e016030155b99fe1c51c08991">Catch::Counts::allOk</a></div><div class="ttdeci">bool allOk() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2210</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_a4bc5425fed9628cb30e9c4702ee75ea5"><div class="ttname"><a href="structCatch_1_1Counts.html#a4bc5425fed9628cb30e9c4702ee75ea5">Catch::Counts::skipped</a></div><div class="ttdeci">std::uint64_t skipped</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4127</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_a71bb4c4ac8e1dcb06951848f587bf591"><div class="ttname"><a href="structCatch_1_1Counts.html#a71bb4c4ac8e1dcb06951848f587bf591">Catch::Counts::total</a></div><div class="ttdeci">std::uint64_t total() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2204</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_a84999490e0ecaa3de5e121bf48eda1b3"><div class="ttname"><a href="structCatch_1_1Counts.html#a84999490e0ecaa3de5e121bf48eda1b3">Catch::Counts::allPassed</a></div><div class="ttdeci">bool allPassed() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2207</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_ab0bda88e125a1ba60b47c262fc2c529c"><div class="ttname"><a href="structCatch_1_1Counts.html#ab0bda88e125a1ba60b47c262fc2c529c">Catch::Counts::failed</a></div><div class="ttdeci">std::uint64_t failed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4125</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_ad12eff20b90d230188b2b41a7c4562a1"><div class="ttname"><a href="structCatch_1_1Counts.html#ad12eff20b90d230188b2b41a7c4562a1">Catch::Counts::passed</a></div><div class="ttdeci">std::uint64_t passed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4124</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Counts_html_ad42a25fd6c31ca6c6320f4cf5e857028"><div class="ttname"><a href="structCatch_1_1Counts.html#ad42a25fd6c31ca6c6320f4cf5e857028">Catch::Counts::failedButOk</a></div><div class="ttdeci">std::uint64_t failedButOk</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4126</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Decomposer_html"><div class="ttname"><a href="structCatch_1_1Decomposer.html">Catch::Decomposer</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5579</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1EnumInfo_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1EnumInfo.html">Catch::Detail::EnumInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2424</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1EnumInfo_html_a16ecfd3a7e11439433aabbdf6ecb676c"><div class="ttname"><a href="structCatch_1_1Detail_1_1EnumInfo.html#a16ecfd3a7e11439433aabbdf6ecb676c">Catch::Detail::EnumInfo::m_name</a></div><div class="ttdeci">StringRef m_name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2425</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1EnumInfo_html_a2fdfacc411d7afb1cb690366e5e49cb3"><div class="ttname"><a href="structCatch_1_1Detail_1_1EnumInfo.html#a2fdfacc411d7afb1cb690366e5e49cb3">Catch::Detail::EnumInfo::lookup</a></div><div class="ttdeci">StringRef lookup(int value) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:3905</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1EnumInfo_html_ab6608593c00614a688045fe8d911258d"><div class="ttname"><a href="structCatch_1_1Detail_1_1EnumInfo.html#ab6608593c00614a688045fe8d911258d">Catch::Detail::EnumInfo::~EnumInfo</a></div><div class="ttdeci">~EnumInfo()</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1EnumInfo_html_ad65c0537a50d375859295a2c18ade489"><div class="ttname"><a href="structCatch_1_1Detail_1_1EnumInfo.html#ad65c0537a50d375859295a2c18ade489">Catch::Detail::EnumInfo::m_values</a></div><div class="ttdeci">std::vector< std::pair< int, StringRef > > m_values</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2426</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1conjunction_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1conjunction.html">Catch::Detail::conjunction</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5144</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1disjunction_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1disjunction.html">Catch::Detail::disjunction</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5150</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1is__range__impl_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1is__range__impl.html">Catch::Detail::is_range_impl</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2919</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1make__void_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1make__void.html">Catch::Detail::make_void</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2403</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1make__void_html_ad530663092bffe57ae58f3a6c0285b68"><div class="ttname"><a href="structCatch_1_1Detail_1_1make__void.html#ad530663092bffe57ae58f3a6c0285b68">Catch::Detail::make_void::type</a></div><div class="ttdeci">void type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2403</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Detail_1_1negation_html"><div class="ttname"><a href="structCatch_1_1Detail_1_1negation.html">Catch::Detail::negation</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5157</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Generators_1_1as_html"><div class="ttname"><a href="structCatch_1_1Generators_1_1as.html">Catch::Generators::as</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7652</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageBuilder_html"><div class="ttname"><a href="structCatch_1_1MessageBuilder.html">Catch::MessageBuilder</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3989</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageBuilder_html_a0e1926da9e1a40cd4036d6d0587f88c3"><div class="ttname"><a href="structCatch_1_1MessageBuilder.html#a0e1926da9e1a40cd4036d6d0587f88c3">Catch::MessageBuilder::MessageBuilder</a></div><div class="ttdeci">MessageBuilder(StringRef macroName, SourceLineInfo const &lineInfo, ResultWas::OfType type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3990</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageBuilder_html_a979f1c2b36d78f80ee275bfa5ba0209f"><div class="ttname"><a href="structCatch_1_1MessageBuilder.html#a979f1c2b36d78f80ee275bfa5ba0209f">Catch::MessageBuilder::m_info</a></div><div class="ttdeci">MessageInfo m_info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4001</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html"><div class="ttname"><a href="structCatch_1_1MessageInfo.html">Catch::MessageInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3945</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_a250459555d236f9510a5afd78a6c1979"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#a250459555d236f9510a5afd78a6c1979">Catch::MessageInfo::globalCount</a></div><div class="ttdeci">static unsigned int globalCount</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3963</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_a3ee7cd41def0989d2193bad7101436a0"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#a3ee7cd41def0989d2193bad7101436a0">Catch::MessageInfo::macroName</a></div><div class="ttdeci">StringRef macroName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3950</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_a7f4f57ea21e50160adefce7b68a781d6"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#a7f4f57ea21e50160adefce7b68a781d6">Catch::MessageInfo::sequence</a></div><div class="ttdeci">unsigned int sequence</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3954</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_a985165328723e599696ebd8e43195cc5"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#a985165328723e599696ebd8e43195cc5">Catch::MessageInfo::lineInfo</a></div><div class="ttdeci">SourceLineInfo lineInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3952</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_ab6cd06e050bf426c6577502a5c50e256"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#ab6cd06e050bf426c6577502a5c50e256">Catch::MessageInfo::message</a></div><div class="ttdeci">std::string message</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3951</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_ae928b9117465c696e45951d9d0284e78"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#ae928b9117465c696e45951d9d0284e78">Catch::MessageInfo::type</a></div><div class="ttdeci">ResultWas::OfType type</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3953</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageInfo_html_aee8f50d1ae912f75246a0ddf65f90926"><div class="ttname"><a href="structCatch_1_1MessageInfo.html#aee8f50d1ae912f75246a0ddf65f90926">Catch::MessageInfo::MessageInfo</a></div><div class="ttdeci">MessageInfo(StringRef _macroName, SourceLineInfo const &_lineInfo, ResultWas::OfType _type)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:4797</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageStream_html"><div class="ttname"><a href="structCatch_1_1MessageStream.html">Catch::MessageStream</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3978</div></div>
|
|
<div class="ttc" id="astructCatch_1_1MessageStream_html_a9202520faed8882ef469db9f353ec578"><div class="ttname"><a href="structCatch_1_1MessageStream.html#a9202520faed8882ef469db9f353ec578">Catch::MessageStream::m_stream</a></div><div class="ttdeci">ReusableStringStream m_stream</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3986</div></div>
|
|
<div class="ttc" id="astructCatch_1_1NameAndTags_html"><div class="ttname"><a href="structCatch_1_1NameAndTags.html">Catch::NameAndTags</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6052</div></div>
|
|
<div class="ttc" id="astructCatch_1_1NameAndTags_html_a74062ed1138834a348424eb7ed900c57"><div class="ttname"><a href="structCatch_1_1NameAndTags.html#a74062ed1138834a348424eb7ed900c57">Catch::NameAndTags::tags</a></div><div class="ttdeci">StringRef tags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6057</div></div>
|
|
<div class="ttc" id="astructCatch_1_1NameAndTags_html_a7cbea60e0cebfa622c667008eb011420"><div class="ttname"><a href="structCatch_1_1NameAndTags.html#a7cbea60e0cebfa622c667008eb011420">Catch::NameAndTags::name</a></div><div class="ttdeci">StringRef name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6056</div></div>
|
|
<div class="ttc" id="astructCatch_1_1NameAndTags_html_abc438faf25ef961bc9bd2e5e3d348ef1"><div class="ttname"><a href="structCatch_1_1NameAndTags.html#abc438faf25ef961bc9bd2e5e3d348ef1">Catch::NameAndTags::NameAndTags</a></div><div class="ttdeci">constexpr NameAndTags(StringRef name_=StringRef(), StringRef tags_=StringRef()) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:6053</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html">Catch::ProcessedReporterSpec</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3749</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_a50eea1b716979aedede2073523573cc2"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#a50eea1b716979aedede2073523573cc2">Catch::ProcessedReporterSpec::outputFilename</a></div><div class="ttdeci">std::string outputFilename</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3751</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_a73a55f2b78f865d8445c897acf1595e9"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#a73a55f2b78f865d8445c897acf1595e9">Catch::ProcessedReporterSpec::operator!=</a></div><div class="ttdeci">friend bool operator!=(ProcessedReporterSpec const &lhs, ProcessedReporterSpec const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3756</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_aa783d13dc949a4f97a9949fe6986765f"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#aa783d13dc949a4f97a9949fe6986765f">Catch::ProcessedReporterSpec::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3750</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_aaaeead5abd0ff72b8a1837b23243336a"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#aaaeead5abd0ff72b8a1837b23243336a">Catch::ProcessedReporterSpec::customOptions</a></div><div class="ttdeci">std::map< std::string, std::string > customOptions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3753</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_ad17b305aa863b41fadf2dc45f45a1952"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#ad17b305aa863b41fadf2dc45f45a1952">Catch::ProcessedReporterSpec::colourMode</a></div><div class="ttdeci">ColourMode colourMode</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3752</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ProcessedReporterSpec_html_ada33772e67fb6f1d76e6b3895e5451cb"><div class="ttname"><a href="structCatch_1_1ProcessedReporterSpec.html#ada33772e67fb6f1d76e6b3895e5451cb">Catch::ProcessedReporterSpec::operator==</a></div><div class="ttdeci">friend bool operator==(ProcessedReporterSpec const &lhs, ProcessedReporterSpec const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:793</div></div>
|
|
<div class="ttc" id="astructCatch_1_1RegistrarForTagAliases_html_ae4e45830e4763bcd65d55d8db9167b69"><div class="ttname"><a href="structCatch_1_1RegistrarForTagAliases.html#ae4e45830e4763bcd65d55d8db9167b69">Catch::RegistrarForTagAliases::RegistrarForTagAliases</a></div><div class="ttdeci">RegistrarForTagAliases(char const *alias, char const *tag, SourceLineInfo const &lineInfo)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1511</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html">Catch::ResultDisposition</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:849</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html_a3396cad6e2259af326b3aae93e23e9d8"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8">Catch::ResultDisposition::Flags</a></div><div class="ttdeci">Flags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:849</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html_a3396cad6e2259af326b3aae93e23e9d8a1a88eb6004bddee4ccae4b421991bf54"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a1a88eb6004bddee4ccae4b421991bf54">Catch::ResultDisposition::SuppressFail</a></div><div class="ttdeci">@ SuppressFail</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:854</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html_a3396cad6e2259af326b3aae93e23e9d8a9980604245f19884691f941dec03eeb8"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8a9980604245f19884691f941dec03eeb8">Catch::ResultDisposition::FalseTest</a></div><div class="ttdeci">@ FalseTest</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:853</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html_a3396cad6e2259af326b3aae93e23e9d8aa18c94bd60c5614e17a84c2ced3bbfd5"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8aa18c94bd60c5614e17a84c2ced3bbfd5">Catch::ResultDisposition::ContinueOnFailure</a></div><div class="ttdeci">@ ContinueOnFailure</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:852</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultDisposition_html_a3396cad6e2259af326b3aae93e23e9d8af3bd52347ed6f8796e8ce2f77bb39ea5"><div class="ttname"><a href="structCatch_1_1ResultDisposition.html#a3396cad6e2259af326b3aae93e23e9d8af3bd52347ed6f8796e8ce2f77bb39ea5">Catch::ResultDisposition::Normal</a></div><div class="ttdeci">@ Normal</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:850</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html"><div class="ttname"><a href="structCatch_1_1ResultWas.html">Catch::ResultWas</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:820</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601ef"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601ef">Catch::ResultWas::OfType</a></div><div class="ttdeci">OfType</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:820</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa1818f1b198f10b5734c405142b22025c">Catch::ResultWas::FailureBit</a></div><div class="ttdeci">@ FailureBit</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:828</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa30222063929ca1b6318faa78e8242f1c"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa30222063929ca1b6318faa78e8242f1c">Catch::ResultWas::Info</a></div><div class="ttdeci">@ Info</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:823</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa3bb56296483947280cf7fa1ad074ab45"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa3bb56296483947280cf7fa1ad074ab45">Catch::ResultWas::ThrewException</a></div><div class="ttdeci">@ ThrewException</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:835</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa5e7126b8458dc1376ac870a719f7873f"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa5e7126b8458dc1376ac870a719f7873f">Catch::ResultWas::ExpressionFailed</a></div><div class="ttdeci">@ ExpressionFailed</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:830</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa65721dda02fe5efb522e7449e496608a"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa65721dda02fe5efb522e7449e496608a">Catch::ResultWas::Unknown</a></div><div class="ttdeci">@ Unknown</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:821</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa67e9d36ba0f04a60a19896834d840c21"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa67e9d36ba0f04a60a19896834d840c21">Catch::ResultWas::Warning</a></div><div class="ttdeci">@ Warning</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:824</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa87fa1f2a2a63290b61948002e2935377"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa87fa1f2a2a63290b61948002e2935377">Catch::ResultWas::FatalErrorCondition</a></div><div class="ttdeci">@ FatalErrorCondition</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:838</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa8b6d3d5bc78d4e7a95543b6ecfbdb57d"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa8b6d3d5bc78d4e7a95543b6ecfbdb57d">Catch::ResultWas::DidntThrowException</a></div><div class="ttdeci">@ DidntThrowException</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:836</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efa99a9169d030778cf863b92ef02a4de2c"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efa99a9169d030778cf863b92ef02a4de2c">Catch::ResultWas::ExplicitSkip</a></div><div class="ttdeci">@ ExplicitSkip</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:826</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efaa9107b7836cc7590ca668002f76d27c7">Catch::ResultWas::Exception</a></div><div class="ttdeci">@ Exception</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:833</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efacecfc052e2499499b13304249303cc36"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efacecfc052e2499499b13304249303cc36">Catch::ResultWas::ExplicitFailure</a></div><div class="ttdeci">@ ExplicitFailure</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:831</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ResultWas_html_a624e1ee3661fcf6094ceef1f654601efae7cbe89bb9ec7ece9b44d48b63d01b63"><div class="ttname"><a href="structCatch_1_1ResultWas.html#a624e1ee3661fcf6094ceef1f654601efae7cbe89bb9ec7ece9b44d48b63d01b63">Catch::ResultWas::Ok</a></div><div class="ttdeci">@ Ok</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:822</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionEndInfo_html"><div class="ttname"><a href="structCatch_1_1SectionEndInfo.html">Catch::SectionEndInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4162</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionEndInfo_html_a2d44793392cb83735d086d726822abe9"><div class="ttname"><a href="structCatch_1_1SectionEndInfo.html#a2d44793392cb83735d086d726822abe9">Catch::SectionEndInfo::sectionInfo</a></div><div class="ttdeci">SectionInfo sectionInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4163</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionEndInfo_html_a7c262f2dab9cff166b8eca620c47eea5"><div class="ttname"><a href="structCatch_1_1SectionEndInfo.html#a7c262f2dab9cff166b8eca620c47eea5">Catch::SectionEndInfo::durationInSeconds</a></div><div class="ttdeci">double durationInSeconds</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4165</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionEndInfo_html_ae70b154cbc05b5dd2901d97f89303d8c"><div class="ttname"><a href="structCatch_1_1SectionEndInfo.html#ae70b154cbc05b5dd2901d97f89303d8c">Catch::SectionEndInfo::prevAssertions</a></div><div class="ttdeci">Counts prevAssertions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4164</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionInfo_html"><div class="ttname"><a href="structCatch_1_1SectionInfo.html">Catch::SectionInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4148</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionInfo_html_a31cbd6895a18c6c80b5c8ed1fd366ac0"><div class="ttname"><a href="structCatch_1_1SectionInfo.html#a31cbd6895a18c6c80b5c8ed1fd366ac0">Catch::SectionInfo::SectionInfo</a></div><div class="ttdeci">SectionInfo(SourceLineInfo const &_lineInfo, std::string _name, const char *const =nullptr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4152</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionInfo_html_a704c8fc662d309137e0d4f199cb7df58"><div class="ttname"><a href="structCatch_1_1SectionInfo.html#a704c8fc662d309137e0d4f199cb7df58">Catch::SectionInfo::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4158</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SectionInfo_html_adbc83b8a3507c4acc8ee249e93465711"><div class="ttname"><a href="structCatch_1_1SectionInfo.html#adbc83b8a3507c4acc8ee249e93465711">Catch::SectionInfo::lineInfo</a></div><div class="ttdeci">SourceLineInfo lineInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4159</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SourceLineInfo_html"><div class="ttname"><a href="structCatch_1_1SourceLineInfo.html">Catch::SourceLineInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3242</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SourceLineInfo_html_a264a34b14ba8d2bbf1889426494f0e45"><div class="ttname"><a href="structCatch_1_1SourceLineInfo.html#a264a34b14ba8d2bbf1889426494f0e45">Catch::SourceLineInfo::SourceLineInfo</a></div><div class="ttdeci">constexpr SourceLineInfo(char const *_file, std::size_t _line) noexcept</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3245</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SourceLineInfo_html_a2d80932bb4129b1606d1924a5c44be2f"><div class="ttname"><a href="structCatch_1_1SourceLineInfo.html#a2d80932bb4129b1606d1924a5c44be2f">Catch::SourceLineInfo::SourceLineInfo</a></div><div class="ttdeci">SourceLineInfo()=delete</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SourceLineInfo_html_a841e5d696c7b9cde24e45e61dd979c77"><div class="ttname"><a href="structCatch_1_1SourceLineInfo.html#a841e5d696c7b9cde24e45e61dd979c77">Catch::SourceLineInfo::line</a></div><div class="ttdeci">std::size_t line</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3254</div></div>
|
|
<div class="ttc" id="astructCatch_1_1SourceLineInfo_html_ad65537703e9f08c1fa7777fbc3f0c617"><div class="ttname"><a href="structCatch_1_1SourceLineInfo.html#ad65537703e9f08c1fa7777fbc3f0c617">Catch::SourceLineInfo::file</a></div><div class="ttdeci">char const * file</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3253</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StreamEndStop_html"><div class="ttname"><a href="structCatch_1_1StreamEndStop.html">Catch::StreamEndStop</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3923</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StreamEndStop_html_a7eb91ead1033a6208004282a8dc38842"><div class="ttname"><a href="structCatch_1_1StreamEndStop.html#a7eb91ead1033a6208004282a8dc38842">Catch::StreamEndStop::operator+</a></div><div class="ttdeci">constexpr friend T const & operator+(T const &value, StreamEndStop)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3927</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StreamEndStop_html_af6025eaf439fee9fcb40fcd22084c582"><div class="ttname"><a href="structCatch_1_1StreamEndStop.html#af6025eaf439fee9fcb40fcd22084c582">Catch::StreamEndStop::operator+</a></div><div class="ttdeci">constexpr StringRef operator+() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3924</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01Catch_1_1Approx_01_4_html_ab30071d428fcd4b1aea833191f88fbaf"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01Catch_1_1Approx_01_4.html#ab30071d428fcd4b1aea833191f88fbaf">Catch::StringMaker< Catch::Approx >::convert</a></div><div class="ttdeci">static std::string convert(Catch::Approx const &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:620</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01R_00_01std_1_1enable__if__t_3_01is__range_3_01R_01_4_1_1value_01_13b8d115cf150e9309780e90914c18dd_html_a095eb21ca290da6f2a6ff1abe28cfc71"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01R_00_01std_1_1enable__if__t_3_01is__range_3_01R_01_4_1_1value_01_13b8d115cf150e9309780e90914c18dd.html#a095eb21ca290da6f2a6ff1abe28cfc71">Catch::StringMaker< R, std::enable_if_t< is_range< R >::value &&!::Catch::Detail::IsStreamInsertable< R >::value > >::convert</a></div><div class="ttdeci">static std::string convert(R const &range)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2959</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01R_01C_1_1_5_01_4_html_af69c15e0b406e945777137fe4a333731"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01R_01C_1_1_5_01_4.html#af69c15e0b406e945777137fe4a333731">Catch::StringMaker< R C::* >::convert</a></div><div class="ttdeci">static std::string convert(R C::*p)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2755</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01T_01_5_01_4_html_a2adbc75c99d71b8323f4052bcb0815c9"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01T_01_5_01_4.html#a2adbc75c99d71b8323f4052bcb0815c9">Catch::StringMaker< T * >::convert</a></div><div class="ttdeci">static std::string convert(U *p)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2744</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01T_0fSZ_0e_4_html_a3698cea2c24d8649ec9ecb5fa679eeb7"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01T_0fSZ_0e_4.html#a3698cea2c24d8649ec9ecb5fa679eeb7">Catch::StringMaker< T[SZ]>::convert</a></div><div class="ttdeci">static std::string convert(T const(&arr)[SZ])</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2966</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01bool_01_4_html_a37e9899c82c4b4515f876f16f8957a77"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01bool_01_4.html#a37e9899c82c4b4515f876f16f8957a77">Catch::StringMaker< bool >::convert</a></div><div class="ttdeci">static std::string convert(bool b)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2702</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01char_01_4_html_abe708b15d367fcc1788a38ebf9889e39"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01char_01_4.html#abe708b15d367fcc1788a38ebf9889e39">Catch::StringMaker< char >::convert</a></div><div class="ttdeci">static std::string convert(char c)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2162</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01char_01_5_01_4_html_a6f0642657bcd943dadfb3be075095e26"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01char_01_5_01_4.html#a6f0642657bcd943dadfb3be075095e26">Catch::StringMaker< char * >::convert</a></div><div class="ttdeci">static std::string convert(char *str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2068</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01char_01const_01_5_01_4_html_a20813965ad59cdf6d1f874f47158432d"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01char_01const_01_5_01_4.html#a20813965ad59cdf6d1f874f47158432d">Catch::StringMaker< char const * >::convert</a></div><div class="ttdeci">static std::string convert(char const *str)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01char_0fSZ_0e_4_html_a095e415534f9145300271befe9853357"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01char_0fSZ_0e_4.html#a095e415534f9145300271befe9853357">Catch::StringMaker< char[SZ]>::convert</a></div><div class="ttdeci">static std::string convert(char const *str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2647</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01double_01_4_html_a432c08cda58fed297a2324c8dd1f3301"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01double_01_4.html#a432c08cda58fed297a2324c8dd1f3301">Catch::StringMaker< double >::convert</a></div><div class="ttdeci">static std::string convert(double value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2177</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01double_01_4_html_a5d6c541226aaeb33f9ec1088388476c3"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01double_01_4.html#a5d6c541226aaeb33f9ec1088388476c3">Catch::StringMaker< double >::precision</a></div><div class="ttdeci">static CATCH_EXPORT int precision</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2738</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01float_01_4_html_a66facca36c17466a954f12c93e9481a7"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01float_01_4.html#a66facca36c17466a954f12c93e9481a7">Catch::StringMaker< float >::convert</a></div><div class="ttdeci">static std::string convert(float value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2171</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01float_01_4_html_abf98e4f3388c13f4348ea9f1e598bdd5"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01float_01_4.html#abf98e4f3388c13f4348ea9f1e598bdd5">Catch::StringMaker< float >::precision</a></div><div class="ttdeci">static CATCH_EXPORT int precision</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2732</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01int_01_4_html_a7c8dcbc9707d05e142e238fa63f47e6c"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01int_01_4.html#a7c8dcbc9707d05e142e238fa63f47e6c">Catch::StringMaker< int >::convert</a></div><div class="ttdeci">static std::string convert(int value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2115</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01long_01_4_html_afb6df3c162b80d773664ca72b8d0fdd5"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01long_01_4.html#afb6df3c162b80d773664ca72b8d0fdd5">Catch::StringMaker< long >::convert</a></div><div class="ttdeci">static std::string convert(long value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2118</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01long_01long_01_4_html_a7a58929dca2a14c576d7d6d08bc615d2"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01long_01long_01_4.html#a7a58929dca2a14c576d7d6d08bc615d2">Catch::StringMaker< long long >::convert</a></div><div class="ttdeci">static std::string convert(long long value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01signed_01char_01_4_html_a72fb37c7ccce3e85d7f6804b5d710697"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01signed_01char_01_4.html#a72fb37c7ccce3e85d7f6804b5d710697">Catch::StringMaker< signed char >::convert</a></div><div class="ttdeci">static std::string convert(signed char value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01signed_01char_0fSZ_0e_4_html_a23ac689cc79dbcfe9b1765fe9e25690e"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01signed_01char_0fSZ_0e_4.html#a23ac689cc79dbcfe9b1765fe9e25690e">Catch::StringMaker< signed char[SZ]>::convert</a></div><div class="ttdeci">static std::string convert(signed char const *str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2654</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01Ratio_01_4_01_4_html_a91856c33f84557c38fd141261238a33b"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01Ratio_01_4_01_4.html#a91856c33f84557c38fd141261238a33b">Catch::StringMaker< std::chrono::duration< Value, Ratio > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::duration< Value, Ratio > const &duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3021</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_011_01_4_01_4_01_4_html_a8585633f2628998498d63b25a41f7a9f"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_011_01_4_01_4_01_4.html#a8585633f2628998498d63b25a41f7a9f">Catch::StringMaker< std::chrono::duration< Value, std::ratio< 1 > > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::duration< Value, std::ratio< 1 > > const &duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3029</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_013600_01_4_01_4_01_4_html_ae32bf481db57bffbb74e23b90db96706"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_013600_01_4_01_4_01_4.html#ae32bf481db57bffbb74e23b90db96706">Catch::StringMaker< std::chrono::duration< Value, std::ratio< 3600 > > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::duration< Value, std::ratio< 3600 > > const &duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3045</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_0160_01_4_01_4_01_4_html_aaed02304bfb04edad0f8ebb9bbda5f02"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1duration_3_01Value_00_01std_1_1ratio_3_0160_01_4_01_4_01_4.html#aaed02304bfb04edad0f8ebb9bbda5f02">Catch::StringMaker< std::chrono::duration< Value, std::ratio< 60 > > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::duration< Value, std::ratio< 60 > > const &duration)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3037</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01Clock_00_01Duration_01_4_01_4_html_aab2a3dfce9b759543d4557fd2bb1d450"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01Clock_00_01Duration_01_4_01_4.html#aab2a3dfce9b759543d4557fd2bb1d450">Catch::StringMaker< std::chrono::time_point< Clock, Duration > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::time_point< Clock, Duration > const &time_point)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3057</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01std_1_1chrono_1_1system__clock_00_01Duration_01_4_01_4_html_a49f4a57720320dcc4a2f5027d81c4388"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1chrono_1_1time__point_3_01std_1_1chrono_1_1system__clock_00_01Duration_01_4_01_4.html#a49f4a57720320dcc4a2f5027d81c4388">Catch::StringMaker< std::chrono::time_point< std::chrono::system_clock, Duration > >::convert</a></div><div class="ttdeci">static std::string convert(std::chrono::time_point< std::chrono::system_clock, Duration > const &time_point)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3064</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1nullptr__t_01_4_html_a131fbb1f5cd68c93aaf30d34e3519e9c"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1nullptr__t_01_4.html#a131fbb1f5cd68c93aaf30d34e3519e9c">Catch::StringMaker< std::nullptr_t >::convert</a></div><div class="ttdeci">static std::string convert(std::nullptr_t)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2723</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1string_01_4_html_aeb3af973a07047e84544d4c6ab81ce8d"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1string_01_4.html#aeb3af973a07047e84544d4c6ab81ce8d">Catch::StringMaker< std::string >::convert</a></div><div class="ttdeci">static std::string convert(const std::string &str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2051</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01std_1_1wstring_01_4_html_a55f3d9d74f1d4f330fd94b7f04c7d03f"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01std_1_1wstring_01_4.html#a55f3d9d74f1d4f330fd94b7f04c7d03f">Catch::StringMaker< std::wstring >::convert</a></div><div class="ttdeci">static std::string convert(const std::wstring &wstr)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2077</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01unsigned_01char_01_4_html_ad71daf5cd172df8d8c4b684d45fd73aa"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01unsigned_01char_01_4.html#ad71daf5cd172df8d8c4b684d45fd73aa">Catch::StringMaker< unsigned char >::convert</a></div><div class="ttdeci">static std::string convert(unsigned char value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01unsigned_01char_0fSZ_0e_4_html_a590d64c72b0cc75c113f1eea95d52b66"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01unsigned_01char_0fSZ_0e_4.html#a590d64c72b0cc75c113f1eea95d52b66">Catch::StringMaker< unsigned char[SZ]>::convert</a></div><div class="ttdeci">static std::string convert(unsigned char const *str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2662</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01unsigned_01int_01_4_html_aa0ec816ef8a65664b0524d55d08e2fd9"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01unsigned_01int_01_4.html#aa0ec816ef8a65664b0524d55d08e2fd9">Catch::StringMaker< unsigned int >::convert</a></div><div class="ttdeci">static std::string convert(unsigned int value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01unsigned_01long_01_4_html_ae105dc97e4462a86a61b59667f8423c9"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01unsigned_01long_01_4.html#ae105dc97e4462a86a61b59667f8423c9">Catch::StringMaker< unsigned long >::convert</a></div><div class="ttdeci">static std::string convert(unsigned long value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01unsigned_01long_01long_01_4_html_a6a8708af4fc8df3f52d7eab779b6bc6f"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01unsigned_01long_01long_01_4.html#a6a8708af4fc8df3f52d7eab779b6bc6f">Catch::StringMaker< unsigned long long >::convert</a></div><div class="ttdeci">static std::string convert(unsigned long long value)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01wchar__t_01_5_01_4_html_a115c02e329e190323caf6a4060fc40dd"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01wchar__t_01_5_01_4.html#a115c02e329e190323caf6a4060fc40dd">Catch::StringMaker< wchar_t * >::convert</a></div><div class="ttdeci">static std::string convert(wchar_t *str)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2099</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_3_01wchar__t_01const_01_5_01_4_html_ae7535a1f417ace45ca05e4389334ffeb"><div class="ttname"><a href="structCatch_1_1StringMaker_3_01wchar__t_01const_01_5_01_4.html#ae7535a1f417ace45ca05e4389334ffeb">Catch::StringMaker< wchar_t const * >::convert</a></div><div class="ttdeci">static std::string convert(wchar_t const *str)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_html"><div class="ttname"><a href="structCatch_1_1StringMaker.html">Catch::StringMaker</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2552</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_html_aaca2f9ad5f92868f44c38a6d29d946e8"><div class="ttname"><a href="structCatch_1_1StringMaker.html#aaca2f9ad5f92868f44c38a6d29d946e8">Catch::StringMaker::convert</a></div><div class="ttdeci">static std::enable_if_t<!::Catch::Detail::IsStreamInsertable< Fake >::value, std::string > convert(const Fake &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2567</div></div>
|
|
<div class="ttc" id="astructCatch_1_1StringMaker_html_afd8b3e04b8dc6647b682568980631e9b"><div class="ttname"><a href="structCatch_1_1StringMaker.html#afd8b3e04b8dc6647b682568980631e9b">Catch::StringMaker::convert</a></div><div class="ttdeci">static std::enable_if_t<::Catch::Detail::IsStreamInsertable< Fake >::value, std::string > convert(const Fake &value)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2556</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TagAlias_html_a2f51fe0b3c052561275d26b6eb88f702"><div class="ttname"><a href="structCatch_1_1TagAlias.html#a2f51fe0b3c052561275d26b6eb88f702">Catch::TagAlias::lineInfo</a></div><div class="ttdeci">SourceLineInfo lineInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4996</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TagAlias_html_a950183883ab17c90d0fab16b966b6e2d"><div class="ttname"><a href="structCatch_1_1TagAlias.html#a950183883ab17c90d0fab16b966b6e2d">Catch::TagAlias::tag</a></div><div class="ttdeci">std::string tag</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4995</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TagAlias_html_ae5a030edfbc8e37f28310d4ca599396c"><div class="ttname"><a href="structCatch_1_1TagAlias.html#ae5a030edfbc8e37f28310d4ca599396c">Catch::TagAlias::TagAlias</a></div><div class="ttdeci">TagAlias(std::string const &_tag, SourceLineInfo _lineInfo)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4990</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Tag_html_a48483975e19a945721ee675f5f452283"><div class="ttname"><a href="structCatch_1_1Tag.html#a48483975e19a945721ee675f5f452283">Catch::Tag::Tag</a></div><div class="ttdeci">constexpr Tag(StringRef original_)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7096</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Tag_html_a9c1ed766a16aeca33c8215bfebba0a7f"><div class="ttname"><a href="structCatch_1_1Tag.html#a9c1ed766a16aeca33c8215bfebba0a7f">Catch::Tag::operator==</a></div><div class="ttdeci">friend bool operator==(Tag const &lhs, Tag const &rhs)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1622</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Tag_html_af589567e86a42fac84b69f4371b67dea"><div class="ttname"><a href="structCatch_1_1Tag.html#af589567e86a42fac84b69f4371b67dea">Catch::Tag::original</a></div><div class="ttdeci">StringRef original</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7099</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html">Catch::TestCaseInfo</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7127</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a16f6e78e73631fe7dd4630e45ffe31b1"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a16f6e78e73631fe7dd4630e45ffe31b1">Catch::TestCaseInfo::TestCaseInfo</a></div><div class="ttdeci">TestCaseInfo(StringRef _className, NameAndTags const &_nameAndTags, SourceLineInfo const &_lineInfo)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1634</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a17506de67fb18e27511c17f8a81119d8"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a17506de67fb18e27511c17f8a81119d8">Catch::TestCaseInfo::tagsAsString</a></div><div class="ttdeci">std::string tagsAsString() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1731</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a193ce3dadc4fcd55effb3dce9c93358f"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a193ce3dadc4fcd55effb3dce9c93358f">Catch::TestCaseInfo::tags</a></div><div class="ttdeci">std::vector< Tag > tags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7156</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a1daaddce433ef171e34bec5a4719e772"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a1daaddce433ef171e34bec5a4719e772">Catch::TestCaseInfo::className</a></div><div class="ttdeci">StringRef className</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7149</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a463794e2f5cfead307c93efd134ade36"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a463794e2f5cfead307c93efd134ade36">Catch::TestCaseInfo::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7148</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a5f37291295e3a6de2dd85324c941edaf"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a5f37291295e3a6de2dd85324c941edaf">Catch::TestCaseInfo::okToFail</a></div><div class="ttdeci">bool okToFail() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1718</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a87c884e688d020b9939dc7ff5324c8b5"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a87c884e688d020b9939dc7ff5324c8b5">Catch::TestCaseInfo::properties</a></div><div class="ttdeci">TestCaseProperties properties</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7158</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a934b1a0952700743e99d62ec1731a2e2"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a934b1a0952700743e99d62ec1731a2e2">Catch::TestCaseInfo::isHidden</a></div><div class="ttdeci">bool isHidden() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1712</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a943c73b4831f37b43ae87d3ebe5c793e"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a943c73b4831f37b43ae87d3ebe5c793e">Catch::TestCaseInfo::operator<</a></div><div class="ttdeci">friend bool operator<(TestCaseInfo const &lhs, TestCaseInfo const &rhs)</div><div class="ttdoc">Orders by name, classname and tags.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1757</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_a9ca3a9c365aae1198f3ce17c0e87ed0f"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#a9ca3a9c365aae1198f3ce17c0e87ed0f">Catch::TestCaseInfo::backingTags</a></div><div class="ttdeci">std::string backingTags</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7151</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_aa9407b7f442655b51a2aad24b3fa2fd3"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#aa9407b7f442655b51a2aad24b3fa2fd3">Catch::TestCaseInfo::lineInfo</a></div><div class="ttdeci">SourceLineInfo lineInfo</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7157</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_abe33d81233230cdae8afa714688e905b"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#abe33d81233230cdae8afa714688e905b">Catch::TestCaseInfo::expectedToFail</a></div><div class="ttdeci">bool expectedToFail() const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1721</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_ac1fba1f96191b764fe164a5602d9e9ab"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#ac1fba1f96191b764fe164a5602d9e9ab">Catch::TestCaseInfo::addFilenameTag</a></div><div class="ttdeci">void addFilenameTag()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1725</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestCaseInfo_html_ad01d1bb038f0607da69dfdbdf478a88c"><div class="ttname"><a href="structCatch_1_1TestCaseInfo.html#ad01d1bb038f0607da69dfdbdf478a88c">Catch::TestCaseInfo::internalAppendTag</a></div><div class="ttdeci">void internalAppendTag(StringRef tagString)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1748</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestFailureException_html"><div class="ttname"><a href="structCatch_1_1TestFailureException.html">Catch::TestFailureException</a></div><div class="ttdoc">Used to signal that an assertion macro failed.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:624</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSkipException_html"><div class="ttname"><a href="structCatch_1_1TestSkipException.html">Catch::TestSkipException</a></div><div class="ttdoc">Used to signal that the remainder of a test should be skipped.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:626</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1FilterMatch_html"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1FilterMatch.html">Catch::TestSpec::FilterMatch</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3492</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1FilterMatch_html_a507d5b197875537d48f900909c617965"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1FilterMatch.html#a507d5b197875537d48f900909c617965">Catch::TestSpec::FilterMatch::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3493</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1FilterMatch_html_a56135fb7398272959d59817e0f8c2197"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1FilterMatch.html#a56135fb7398272959d59817e0f8c2197">Catch::TestSpec::FilterMatch::tests</a></div><div class="ttdeci">std::vector< TestCaseHandle const * > tests</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3494</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1Filter_html"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1Filter.html">Catch::TestSpec::Filter</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3474</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1Filter_html_a46f2340492e8cea756b3cd6175cb3cf3"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1Filter.html#a46f2340492e8cea756b3cd6175cb3cf3">Catch::TestSpec::Filter::m_required</a></div><div class="ttdeci">std::vector< Detail::unique_ptr< Pattern > > m_required</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3475</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1Filter_html_a8b8557a6511bcdc4272df2f938b83939"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1Filter.html#a8b8557a6511bcdc4272df2f938b83939">Catch::TestSpec::Filter::m_forbidden</a></div><div class="ttdeci">std::vector< Detail::unique_ptr< Pattern > > m_forbidden</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3476</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1Filter_html_a9ee701c1a51a7621410ce68aaeaed7a4"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1Filter.html#a9ee701c1a51a7621410ce68aaeaed7a4">Catch::TestSpec::Filter::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &out, Filter const &f)</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3481</div></div>
|
|
<div class="ttc" id="astructCatch_1_1TestSpec_1_1Filter_html_aa6f50a5d8e92feba7cf52c43a720c2f8"><div class="ttname"><a href="structCatch_1_1TestSpec_1_1Filter.html#aa6f50a5d8e92feba7cf52c43a720c2f8">Catch::TestSpec::Filter::serializeTo</a></div><div class="ttdeci">void serializeTo(std::ostream &out) const</div><div class="ttdoc">Serializes this filter into a string that would be parsed into an equivalent filter.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:1839</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Totals_html"><div class="ttname"><a href="structCatch_1_1Totals.html">Catch::Totals</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4130</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Totals_html_a1a94a654f5f3786b75695e081fc9bca2"><div class="ttname"><a href="structCatch_1_1Totals.html#a1a94a654f5f3786b75695e081fc9bca2">Catch::Totals::delta</a></div><div class="ttdeci">Totals delta(Totals const &prevTotals) const</div><div class="ttdef"><b>Definition</b> catch_amalgamated.cpp:2227</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Totals_html_a885ded66df752147b30c3d45aa602ec9"><div class="ttname"><a href="structCatch_1_1Totals.html#a885ded66df752147b30c3d45aa602ec9">Catch::Totals::assertions</a></div><div class="ttdeci">Counts assertions</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4137</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Totals_html_adb195fe477aedee2ecea88c888f16506"><div class="ttname"><a href="structCatch_1_1Totals.html#adb195fe477aedee2ecea88c888f16506">Catch::Totals::testCases</a></div><div class="ttdeci">Counts testCases</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:4138</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html"><div class="ttname"><a href="structCatch_1_1Version.html">Catch::Version</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7322</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a15facd4f9ac18f5ff2540bc798885c39"><div class="ttname"><a href="structCatch_1_1Version.html#a15facd4f9ac18f5ff2540bc798885c39">Catch::Version::buildNumber</a></div><div class="ttdeci">unsigned int const buildNumber</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7337</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a27f53638ae6af8cd9b5aba3cc2dca11f"><div class="ttname"><a href="structCatch_1_1Version.html#a27f53638ae6af8cd9b5aba3cc2dca11f">Catch::Version::branchName</a></div><div class="ttdeci">char const *const branchName</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7336</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a4379119bb74879da3b92c71d980c6c87"><div class="ttname"><a href="structCatch_1_1Version.html#a4379119bb74879da3b92c71d980c6c87">Catch::Version::operator=</a></div><div class="ttdeci">Version & operator=(Version const &)=delete</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a4993a9a98abd56991b9dad629b6783f1"><div class="ttname"><a href="structCatch_1_1Version.html#a4993a9a98abd56991b9dad629b6783f1">Catch::Version::minorVersion</a></div><div class="ttdeci">unsigned int const minorVersion</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7332</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a67d30e6cb9fdde34a3fc235043cd9c63"><div class="ttname"><a href="structCatch_1_1Version.html#a67d30e6cb9fdde34a3fc235043cd9c63">Catch::Version::majorVersion</a></div><div class="ttdeci">unsigned int const majorVersion</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7331</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_a8bf08299323524985da5c1a0722464e0"><div class="ttname"><a href="structCatch_1_1Version.html#a8bf08299323524985da5c1a0722464e0">Catch::Version::patchNumber</a></div><div class="ttdeci">unsigned int const patchNumber</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:7333</div></div>
|
|
<div class="ttc" id="astructCatch_1_1Version_html_af5b9719c18f99ed86d9250ad83673dee"><div class="ttname"><a href="structCatch_1_1Version.html#af5b9719c18f99ed86d9250ad83673dee">Catch::Version::Version</a></div><div class="ttdeci">Version(Version const &)=delete</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html">Catch::WaitForKeypress</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1187</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html_a2e8c4369d0a605d64e3e83b5af3399ba"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399ba">Catch::WaitForKeypress::When</a></div><div class="ttdeci">When</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1187</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html_a2e8c4369d0a605d64e3e83b5af3399baa3a78e4f64675e7ce54ffd29e6109f1ce"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baa3a78e4f64675e7ce54ffd29e6109f1ce">Catch::WaitForKeypress::Never</a></div><div class="ttdeci">@ Never</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1188</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html_a2e8c4369d0a605d64e3e83b5af3399baaba7f6d9b2377122a118b371ab7ae3185"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baaba7f6d9b2377122a118b371ab7ae3185">Catch::WaitForKeypress::BeforeStart</a></div><div class="ttdeci">@ BeforeStart</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1189</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html_a2e8c4369d0a605d64e3e83b5af3399baad6c3e4a5797b7ee0a812e4fc88128983"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baad6c3e4a5797b7ee0a812e4fc88128983">Catch::WaitForKeypress::BeforeExit</a></div><div class="ttdeci">@ BeforeExit</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1190</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WaitForKeypress_html_a2e8c4369d0a605d64e3e83b5af3399baae8beb496b712aef908028a7cbfdd0c46"><div class="ttname"><a href="structCatch_1_1WaitForKeypress.html#a2e8c4369d0a605d64e3e83b5af3399baae8beb496b712aef908028a7cbfdd0c46">Catch::WaitForKeypress::BeforeStartAndExit</a></div><div class="ttdeci">@ BeforeStartAndExit</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1191</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WarnAbout_html"><div class="ttname"><a href="structCatch_1_1WarnAbout.html">Catch::WarnAbout</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1159</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WarnAbout_html_ae3dde70ef78d700ea896eb29314e0fa3"><div class="ttname"><a href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3">Catch::WarnAbout::What</a></div><div class="ttdeci">What</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1159</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WarnAbout_html_ae3dde70ef78d700ea896eb29314e0fa3a406f24c13feb68f70034c29ee64508c4"><div class="ttname"><a href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a406f24c13feb68f70034c29ee64508c4">Catch::WarnAbout::UnmatchedTestSpec</a></div><div class="ttdeci">@ UnmatchedTestSpec</div><div class="ttdoc">A command line test spec matched no test cases.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1164</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WarnAbout_html_ae3dde70ef78d700ea896eb29314e0fa3a516a40a437d6ff29898e2fa93bca8f82"><div class="ttname"><a href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a516a40a437d6ff29898e2fa93bca8f82">Catch::WarnAbout::NoAssertions</a></div><div class="ttdeci">@ NoAssertions</div><div class="ttdoc">A test case or leaf section did not run any assertions.</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1162</div></div>
|
|
<div class="ttc" id="astructCatch_1_1WarnAbout_html_ae3dde70ef78d700ea896eb29314e0fa3a9ac33f9211280cca9082557329706d27"><div class="ttname"><a href="structCatch_1_1WarnAbout.html#ae3dde70ef78d700ea896eb29314e0fa3a9ac33f9211280cca9082557329706d27">Catch::WarnAbout::Nothing</a></div><div class="ttdeci">@ Nothing</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1160</div></div>
|
|
<div class="ttc" id="astructCatch_1_1always__false_html"><div class="ttname"><a href="structCatch_1_1always__false.html">Catch::always_false</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5302</div></div>
|
|
<div class="ttc" id="astructCatch_1_1capture__by__value_html"><div class="ttname"><a href="structCatch_1_1capture__by__value.html">Catch::capture_by_value</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:5290</div></div>
|
|
<div class="ttc" id="astructCatch_1_1is__callable__tester_html"><div class="ttname"><a href="structCatch_1_1is__callable__tester.html">Catch::is_callable_tester</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1503</div></div>
|
|
<div class="ttc" id="astructCatch_1_1is__callable__tester_html_a9f770cae4c16dfa96d4c0299a6b4f980"><div class="ttname"><a href="structCatch_1_1is__callable__tester.html#a9f770cae4c16dfa96d4c0299a6b4f980">Catch::is_callable_tester::test</a></div><div class="ttdeci">static true_given< decltype(std::declval< Fun >()(std::declval< Args >()...))> test(int)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1is__callable__tester_html_adce16c4accb860bf46f6491dd70cfd63"><div class="ttname"><a href="structCatch_1_1is__callable__tester.html#adce16c4accb860bf46f6491dd70cfd63">Catch::is_callable_tester::test</a></div><div class="ttdeci">static std::false_type test(...)</div></div>
|
|
<div class="ttc" id="astructCatch_1_1is__callable_html"><div class="ttname"><a href="structCatch_1_1is__callable.html">Catch::is_callable</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1511</div></div>
|
|
<div class="ttc" id="astructCatch_1_1is__range_html"><div class="ttname"><a href="structCatch_1_1is__range.html">Catch::is_range</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2926</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1atto_01_4_html_a9e37c4c4a8f7accd6284f1a1fb76f816"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1atto_01_4.html#a9e37c4c4a8f7accd6284f1a1fb76f816">Catch::ratio_string< std::atto >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2994</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1femto_01_4_html_ab6b7430e839e13787e2f5ce922d893f8"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1femto_01_4.html#ab6b7430e839e13787e2f5ce922d893f8">Catch::ratio_string< std::femto >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2998</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1micro_01_4_html_a0741d94586155d83489e1c16fa858303"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1micro_01_4.html#a0741d94586155d83489e1c16fa858303">Catch::ratio_string< std::micro >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3010</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1milli_01_4_html_a25dccbe9967930629b149871e57f11f8"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1milli_01_4.html#a25dccbe9967930629b149871e57f11f8">Catch::ratio_string< std::milli >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3014</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1nano_01_4_html_a974451da0a573ac795978c821b46743b"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1nano_01_4.html#a974451da0a573ac795978c821b46743b">Catch::ratio_string< std::nano >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3006</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_3_01std_1_1pico_01_4_html_a8e109ba72e855ab8ec1245cef00bda6a"><div class="ttname"><a href="structCatch_1_1ratio__string_3_01std_1_1pico_01_4.html#a8e109ba72e855ab8ec1245cef00bda6a">Catch::ratio_string< std::pico >::symbol</a></div><div class="ttdeci">static char symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:3002</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_html"><div class="ttname"><a href="structCatch_1_1ratio__string.html">Catch::ratio_string</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2983</div></div>
|
|
<div class="ttc" id="astructCatch_1_1ratio__string_html_a6e63eb4acf4125c608ad8e11168d2e4f"><div class="ttname"><a href="structCatch_1_1ratio__string.html#a6e63eb4acf4125c608ad8e11168d2e4f">Catch::ratio_string::symbol</a></div><div class="ttdeci">static std::string symbol()</div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2984</div></div>
|
|
<div class="ttc" id="astructCatch_1_1true__given_html"><div class="ttname"><a href="structCatch_1_1true__given.html">Catch::true_given</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:1501</div></div>
|
|
<div class="ttc" id="astructCatch__global__namespace__dummy_html"><div class="ttname"><a href="structCatch__global__namespace__dummy.html">Catch_global_namespace_dummy</a></div><div class="ttdef"><b>Definition</b> catch_amalgamated.hpp:2465</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.html">tests</a></li><li class="navelem"><a class="el" href="dir_00dd0a6f83df5440d0cc3c79b72ca1ad.html">vendor</a></li><li class="navelem"><a class="el" href="catch__amalgamated_8hpp.html">catch_amalgamated.hpp</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|