clutchlog/docs/clutchlog_8h_source.html
2023-01-31 00:09:18 +01:00

1567 lines
346 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>clutchlog: clutchlog.h 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>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-style.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 style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="clutchlog_logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">clutchlog
&#160;<span id="projectnumber">0.16</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('clutchlog_8h_source.html',''); initResizable(); });
/* @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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">clutchlog.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="clutchlog_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifndef CLUTCHLOG_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#define CLUTCHLOG_H</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;ciso646&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"> #ifdef FSEXPERIMENTAL</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"> #include &lt;experimental/filesystem&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">namespace </span>fs = std::experimental::filesystem;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"> #include &lt;filesystem&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">namespace </span>fs = std::filesystem;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;regex&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if __has_include(&lt;execinfo.h&gt;) &amp;&amp; __has_include(&lt;stdlib.h&gt;) &amp;&amp; __has_include(&lt;libgen.h&gt;)</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"> #include &lt;execinfo.h&gt;</span> <span class="comment">// execinfo</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"> #include &lt;stdlib.h&gt;</span> <span class="comment">// getenv</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"> #include &lt;libgen.h&gt;</span> <span class="comment">// basename</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_HAVE_UNIX_SYSINFO 1</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb"> 33</a></span>&#160;<span class="preprocessor"> #define CLUTCHLOG_HAVE_UNIX_SYSINFO 0</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#if __has_include(&lt;sys/ioctl.h&gt;) &amp;&amp; __has_include(&lt;stdio.h&gt;) &amp;&amp; __has_include(&lt;unistd.h&gt;)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> #include &lt;sys/ioctl.h&gt;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> #include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> #include &lt;unistd.h&gt;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_HAVE_UNIX_SYSIOCTL 1</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="clutchlog_8h.html#a6bddd1e1be320823da0d6b1d5cef7817"> 43</a></span>&#160;<span class="preprocessor"> #define CLUTCHLOG_HAVE_UNIX_SYSIOCTL 0</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">/**********************************************************************</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * Enable by default in Debug builds.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> **********************************************************************/</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#ifndef WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> #ifndef NDEBUG</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> #define WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">/**********************************************************************</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> * Macros definitions</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> **********************************************************************/</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#ifndef CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG clutchlog::level::progress</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif // CLUTCHLOG_DEFAULT_DEPTH_BUILT</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define CLUTCHLOC __FILE__, __FUNCTION__, __LINE__</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group___use_macros.html#ga369d365b7c25ec270596c3ca6839cf2c"> 81</a></span>&#160;<span class="preprocessor"> #define CLUTCHLOGD( LEVEL, WHAT, DEPTH_DELTA ) do { \</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> std::ostringstream clutchlog__msg ; clutchlog__msg &lt;&lt; WHAT; \</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), CLUTCHLOC, DEPTH_DELTA); \</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#else // not Debug build.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #define CLUTCHLOGD( LEVEL, WHAT, DEPTH_DELTA ) do { \</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> if(clutchlog::level::LEVEL &lt;= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> std::ostringstream clutchlog__msg ; clutchlog__msg &lt;&lt; WHAT; \</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), CLUTCHLOC, DEPTH_DELTA); \</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif // NDEBUG</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="group___use_macros.html#ga6f86187e2b35e7e1907d688f504a197d"> 98</a></span>&#160;<span class="preprocessor"> #define CLUTCHLOG( LEVEL, WHAT ) \</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> CLUTCHLOGD(LEVEL, WHAT, 0)</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#else // not Debug build.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> #define CLUTCHLOG( LEVEL, WHAT ) \</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> CLUTCHLOGD(LEVEL, WHAT, 0)</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#endif // NDEBUG</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="group___use_macros.html#ga572e3aa19d8b39e3ed0b9e91961104c2"> 107</a></span>&#160;<span class="preprocessor"> #define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do { \</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#else // not Debug build.</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do { \</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> if(clutchlog::level::LEVEL &lt;= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#endif // NDEBUG</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="group___use_macros.html#ga9f77cee4f853e582262930c9c17f90ae"> 124</a></span>&#160;<span class="preprocessor"> #define CLUTCHFUNC( LEVEL, FUNC, ... ) do { \</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> if(clutchlog__scope.matches) { \</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"> FUNC(__VA_ARGS__); \</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#else // not Debug build.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"> #define CLUTCHFUNC( LEVEL, FUNC, ... ) do { \</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> if(clutchlog::level::LEVEL &lt;= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> if(clutchlog__scope.matches) { \</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> FUNC(__VA_ARGS__); \</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif // NDEBUG</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="group___use_macros.html#gaaf2e85e1153e6c88b458dd49e3c37c73"> 145</a></span>&#160;<span class="preprocessor"> #define CLUTCHCODE( LEVEL, ... ) do { \</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"> if(clutchlog__scope.matches) { \</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> __VA_ARGS__ \</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#else // not Debug build.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"> #define CLUTCHCODE( LEVEL, CODE ) do { \</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"> if(clutchlog::level::LEVEL &lt;= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"> auto&amp; clutchlog__logger = clutchlog::logger(); \</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> if(clutchlog__scope.matches) { \</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> CODE \</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"> } while(0)</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // NDEBUG</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#else // not WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// Disabled macros can still be called in Release builds.</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> #define CLUTCHLOG( LEVEL, WHAT ) do {</span><span class="comment">/*nothing*/</span><span class="preprocessor">} while(0)</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"> #define CLUTCHLOGD( LEVEL, WHAT, DEPTH_DELTA ) do {</span><span class="comment">/*nothing*/</span><span class="preprocessor">} while(0)</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do {</span><span class="comment">/*nothing*/</span><span class="preprocessor">} while(0)</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> #define CLUTCHFUNC( LEVEL, FUNC, ... ) do {</span><span class="comment">/*nothing*/</span><span class="preprocessor">} while(0)</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> #define CLUTCHCODE( LEVEL, CODE ) do {</span><span class="comment">/*nothing*/</span><span class="preprocessor">} while(0)</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif // WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">/**********************************************************************</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> * Implementation</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> **********************************************************************/</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#ifdef WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classclutchlog.html"> 187</a></span>&#160;<span class="keyword">class </span><a class="code" href="classclutchlog.html">clutchlog</a></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> #ifndef NDEBUG</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1 // Enables: name, depth and depth_marks</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSIOCTL == 1 // Enables: hfill</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;[{name}] {level_letter}:{depth_marks} {msg} {hfill} {func} @ {file}:{line}\n&quot;</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;[{name}] {level_letter}:{depth_marks} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSIOCTL == 1</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;{level_letter} {msg} {hfill} {func} @ {file}:{line}\n&quot;</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="group___default_config.html#ga524c16f280d92ee8ab683162c9ce01fa"> 208</a></span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;[{name}] {level_letter}:{depth_marks} {msg} {hfill} {func}\n&quot;</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_FORMAT &quot;{level_letter} {msg}\t\t\t\t\t{func}\n&quot;</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> std::string <a class="code" href="classclutchlog.html#a0c4ac57601e6f8d146fd5cc060968ecc">default_format</a> = <a class="code" href="group___default_config.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a>;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> #ifndef NDEBUG</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> #ifndef CLUTCHDUMP_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP_DEFAULT_FORMAT &quot;# [{name}] {level} in {func} (at depth {depth}) @ {file}:{line}&quot;</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="group___default_config.html#ga27b613c6727857a7cbcd0165d862034e"> 231</a></span>&#160;<span class="preprocessor"> #define CLUTCHDUMP_DEFAULT_FORMAT &quot;# {level} in {func} @ {file}:{line}&quot;</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> #endif // CLUTCHDUMP_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> #ifndef CLUTCHDUMP_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP_DEFAULT_FORMAT &quot;# [{name}] {level} in {func} (at depth {depth})&quot;</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP_DEFAULT_FORMAT &quot;# {level} in {func}&quot;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> #endif // CLUTCHDUMP_DEFAULT_FORMAT</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> std::string <a class="code" href="classclutchlog.html#ace879554298e6e6e36dafef330c27be8">dump_default_format</a> = <a class="code" href="group___default_config.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a>;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> #ifndef CLUTCHDUMP_DEFAULT_SEP</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> #define CLUTCHDUMP_DEFAULT_SEP &quot;\n&quot;</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> #endif // CLUTCHDUMP_DEFAULT_SEP</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> std::string <a class="code" href="classclutchlog.html#af898bffe23b125245e338d7495c76d45">dump_default_sep</a> = <a class="code" href="group___default_config.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_DEPTH_MARK</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_DEPTH_MARK &quot;&gt;&quot;</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> #endif // CLUTCHLOG_DEFAULT_DEPTH_MARK</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> std::string <a class="code" href="classclutchlog.html#a229fd61519f1245282440120f2d45fb5">default_depth_mark</a> = <a class="code" href="group___default_config.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a>;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_STRIP_CALLS</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_STRIP_CALLS 5</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> #endif // CLUTCHLOG_STRIP_CALLS</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classclutchlog.html#a1a8cb6411726133208f5a2f2cb42d468">default_strip_calls</a> = <a class="code" href="group___default_config.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a>;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_HFILL_MARK</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_HFILL_MARK &#39;.&#39;</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> #endif // CLUTCHLOG_DEFAULT_HFILL_MARK</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="classclutchlog.html#a76eb34537b634aadb75e255f7887eeb6">default_hfill_char</a> = <a class="code" href="group___default_config.html#ga4eda0c1bfded5df89351b8ce8b9c2805">CLUTCHLOG_DEFAULT_HFILL_MARK</a>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSIOCTL == 1</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_HFILL_MAX</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_HFILL_MAX 300</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> #ifndef CLUTCHLOG_DEFAULT_HFILL_MIN</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> #define CLUTCHLOG_DEFAULT_HFILL_MIN 150</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#ac95630bfe9cf547d2b7c4b3430eaedc1">default_hfill_max</a> = CLUTCHLOG_DEFAULT_HFILL_MAX;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classclutchlog.html#a5a9a98c3528117223ceff22bc6bee5f7"> 287</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#a5a9a98c3528117223ceff22bc6bee5f7">default_hfill_min</a> = CLUTCHLOG_DEFAULT_HFILL_MIN;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// NOTE: there is no CLUTCHLOG_HFILL_STYLE for defaulting,</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// but you can still set `hfill_style(...)` on the logger singleton.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">/* @} DefaultConfig */</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">/* @} */</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa"> 306</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classclutchlog.html">clutchlog</a>&amp; <a class="code" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">logger</a>()</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">static</span> <a class="code" href="classclutchlog.html">clutchlog</a> instance;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> instance;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928"> 313</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> {critical=0, error=1, warning=2, progress=3, note=4, info=5, debug=6, xdebug=7};</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e"> 316</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> {path, base, dir, dirbase, stem, dirstem};</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html"> 379</a></span>&#160; <span class="keyword">class </span><a class="code" href="classclutchlog_1_1fmt.html">fmt</a> {</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502"> 382</a></span>&#160; <span class="keyword">enum class</span> <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> {</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1e7cced329549fc4c2393381f068062e">colors_16</a> = -1, <span class="comment">// Not supposed to be casted.</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment"></span> <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a7a3c32a8827eb17435511b4c7a429749">colors_256</a> = 5, <span class="comment">// Casted as short in color::operator&lt;&lt;.</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment"></span> <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1844e5aae3a3eefc500c545e3c35bcfa">colors_16M</a> = 2 <span class="comment">// Casted as short in color::operator&lt;&lt;</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; } <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89"> 392</a></span>&#160; <span class="keyword">enum class</span> <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; reset = 0,</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; bold = 1,</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; underline = 4,</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; inverse = 7,</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; none = -1</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; } <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">enum class</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> {</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; black = 30,</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; red = 31,</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; green = 32,</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; yellow = 33,</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; blue = 34,</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; magenta = 35,</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; cyan = 36,</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; white = 37,</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; bright_black = 90,</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; bright_red = 91,</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; bright_green = 92,</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; bright_yellow = 93,</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; bright_blue = 94,</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; bright_magenta = 95,</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; bright_cyan = 96,</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bright_white = 97,</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; none = -1</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; } <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e"> 424</a></span>&#160; <span class="keyword">enum class</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> {</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; black = 40,</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; red = 41,</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; green = 42,</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; yellow = 43,</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; blue = 44,</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; magenta = 45,</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; cyan = 46,</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; white = 47,</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bright_black = 100,</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; bright_red = 101,</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; bright_green = 102,</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bright_yellow = 103,</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; bright_blue = 104,</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; bright_magenta = 105,</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; bright_cyan = 106,</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; bright_white = 107,</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; none = -1</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; } <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7"> 446</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> std::tuple&lt;fg,bg,typo&gt;&amp; fbs)</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">auto</span> [f,b,s] = fbs;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; std::vector&lt;short&gt; codes; codes.reserve(3);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>(f != fg::none) { codes.push_back(<span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(f));}</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>(b != bg::none) { codes.push_back(<span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(b));}</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(s != typo::none) { codes.push_back(<span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(s));}</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span>(codes.size() == 0) {</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; </div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;\033[&quot;</span>;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; os &lt;&lt; codes[0];</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i=1; i &lt; codes.size(); ++i) {</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;;&quot;</span> &lt;&lt; codes[i];</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;m&quot;</span>;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="group__colors16.html#ga379b0af834c7c561edc5c1e3a3427a33"> 468</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="group__colors16.html#ga379b0af834c7c561edc5c1e3a3427a33">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a>&amp; s)</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(s != typo::none) {</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;\033[&quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(s) &lt;&lt; <span class="stringliteral">&quot;m&quot;</span>;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color.html"> 483</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a> {</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> mode; <span class="comment">// Not const to allow for the implicit copy assignemnt operator.</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; </div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0"> 487</a></span>&#160; <span class="keyword">enum class</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> { <span class="comment">// idem.</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; fore = 38,</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; back = 48</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; } <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">type</a>;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; </div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac"> 497</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> a, <a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> g) : mode(a), <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">type</a>(g) {}</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a96d7161ef1e7cc631ae670cd3f364603">is_set</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">virtual</span> std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#aa75e958436afe333924b6db3e5f0821f">print_on</a>( std::ostream&amp; os) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color.html#a826e3d3eba925608442439d6bc3a95a6"> 506</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a826e3d3eba925608442439d6bc3a95a6">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>&amp; c)</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; {</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span>(c.<a class="code" href="structclutchlog_1_1fmt_1_1color.html#a96d7161ef1e7cc631ae670cd3f364603">is_set</a>()) {</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;\033[&quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(c.<a class="code" href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">type</a>) &lt;&lt; <span class="stringliteral">&quot;;&quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(c.mode) &lt;&lt; <span class="stringliteral">&quot;;&quot;</span>;</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; c.<a class="code" href="structclutchlog_1_1fmt_1_1color.html#aa75e958436afe333924b6db3e5f0821f">print_on</a>(os);</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;m&quot;</span>;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; };</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; </div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// There is no color_16 because it would be the same as color_256, only with different indices,</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// hence making it more complicated for the user to select the right constructor.</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// Here, we just use enum for 16 colors, and indices for 256 colors.</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html"> 522</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a> {</div>
<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988"> 526</a></span>&#160; <span class="keywordtype">short</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; </div>
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c"> 531</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>(-1) {}</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html#a1b68065b35141c018b33c3f2c45f5726"> 538</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a1b68065b35141c018b33c3f2c45f5726">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keyword">const</span> <span class="keywordtype">short</span> i) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>(i) {assert(-1 &lt;= i and i &lt;= 255);}</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; </div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html#ad79557682cec1c053dda258581972111"> 541</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#ad79557682cec1c053dda258581972111">is_set</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a> &gt; -1;}</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__256.html#aaae6106a11eddade981172324a43df68"> 544</a></span>&#160; std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#aaae6106a11eddade981172324a43df68">print_on</a>( std::ostream&amp; os)<span class="keyword"> const</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; os &lt;&lt; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; };</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__256.html"> 552</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html">fg_256</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a> {</div>
<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a"> 554</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a">fg_256</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore) {}</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; </div>
<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__256.html#a6df3d848db0e55c79709fb4565cbfd59"> 559</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a6df3d848db0e55c79709fb4565cbfd59">fg_256</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> f) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, f) {}</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__256.html#a501fff36520f20ba4973ba3848fb9c23"> 564</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a501fff36520f20ba4973ba3848fb9c23">fg_256</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, -1) {}</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; </div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; } <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; </div>
<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__256.html"> 569</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html">bg_256</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a> {</div>
<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90"> 571</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90">bg_256</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back) {}</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; </div>
<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__256.html#a83c663b1a9f00ba7ba7649c9c5605fad"> 576</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a83c663b1a9f00ba7ba7649c9c5605fad">bg_256</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, b) {}</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; </div>
<div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__256.html#a096d302be7373acaaf225644683408bd"> 581</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a096d302be7373acaaf225644683408bd">bg_256</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, -1) {}</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; } <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html"> 586</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a> {</div>
<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61"> 590</a></span>&#160; <span class="keywordtype">short</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>, green, blue;</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; </div>
<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282"> 595</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>(-1), green(-1), blue(-1) {}</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; </div>
<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#a36d9cf42044fec34b7858142d86137d3"> 604</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a36d9cf42044fec34b7858142d86137d3">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b)</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; : <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>(r), green(g), blue(b) {}</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; </div>
<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#a55e39e7eb3ced3095c00914eff52470c"> 614</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a55e39e7eb3ced3095c00914eff52470c">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keyword">const</span> std::string&amp; srgb) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t)</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; assert(srgb.size() == 7);</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">if</span>(srgb.size() != 7) {</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> = -1;</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; green = -1;</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; blue = -1;</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordtype">char</span> i = 0;</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">if</span>(srgb.at(0) == <span class="charliteral">&#39;#&#39;</span>) {</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; i = 1;</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; std::istringstream(srgb.substr(0+i,2)) &gt;&gt; std::hex &gt;&gt; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>;</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; std::istringstream(srgb.substr(2+i,2)) &gt;&gt; std::hex &gt;&gt; green;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; std::istringstream(srgb.substr(4+i,2)) &gt;&gt; std::hex &gt;&gt; blue;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; assert(-1 &lt;= <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> and <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> &lt;= 255);</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; assert(-1 &lt;= green and green &lt;= 255);</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; assert(-1 &lt;= blue and blue &lt;= 255);</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; </div>
<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#a780c11e42bb140732ffd37cf4eef9e1d"> 636</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a780c11e42bb140732ffd37cf4eef9e1d">is_set</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> &gt; -1 and green &gt; -1 and blue &gt; -1;}</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; </div>
<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1color__16_m.html#a674910195e7bb14d78f0cf56c308a47e"> 639</a></span>&#160; std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a674910195e7bb14d78f0cf56c308a47e">print_on</a>( std::ostream&amp; os)<span class="keyword"> const</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; os &lt;&lt; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> &lt;&lt; <span class="stringliteral">&quot;;&quot;</span> &lt;&lt; green &lt;&lt; <span class="stringliteral">&quot;;&quot;</span> &lt;&lt; blue;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; };</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; </div>
<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__16_m.html"> 647</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html">fg_16M</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a> {</div>
<div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194"> 649</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">fg_16M</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore) {}</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; </div>
<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a531b717b8d78a0a5929fa90d0a01d7e5"> 659</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a531b717b8d78a0a5929fa90d0a01d7e5">fg_16M</a>(<span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, r,g,b) {}</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; </div>
<div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__16_m.html#abc768d6b7c2139c14f210755108006d3"> 667</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#abc768d6b7c2139c14f210755108006d3">fg_16M</a>(<span class="keyword">const</span> std::string&amp; srgb) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, srgb) {}</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; </div>
<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a9da40a4a7ff3b80f028f26322f59eba8"> 672</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a9da40a4a7ff3b80f028f26322f59eba8">fg_16M</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, -1,-1,-1) {}</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; </div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; } <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>;</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; </div>
<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__16_m.html"> 677</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html">bg_16M</a> : <span class="keyword">public</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a> {</div>
<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0"> 679</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">bg_16M</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back) {}</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; </div>
<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__16_m.html#ace018922ae99f32b48bf5cacaec91501"> 689</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#ace018922ae99f32b48bf5cacaec91501">bg_16M</a>(<span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, r,g,b) {}</div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; </div>
<div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__16_m.html#adcd5bd1e69e76e3b36015cf687693c97"> 697</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#adcd5bd1e69e76e3b36015cf687693c97">bg_16M</a>(<span class="keyword">const</span> std::string&amp; srgb) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, srgb) {}</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; </div>
<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a68f8cb4ab78a1cfb3b7b8e1e95bee11d"> 702</a></span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a68f8cb4ab78a1cfb3b7b8e1e95bee11d">bg_16M</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, -1,-1,-1) {}</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; </div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; } <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>;</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; </div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959"> 710</a></span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>() : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a>::none), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; </div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s , <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s , <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b , <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(fg_256 f, bg_256 b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(f), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(b) {}</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(fg_256 f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(f), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, bg_256 b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(b) {}</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keyword">const</span> <span class="keywordtype">short</span> gr, <span class="keyword">const</span> <span class="keywordtype">short</span> gg, <span class="keyword">const</span> <span class="keywordtype">short</span> gb,</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(gr,gg,gb) {}</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keyword">const</span> <span class="keywordtype">short</span> gr, <span class="keyword">const</span> <span class="keywordtype">short</span> gg, <span class="keyword">const</span> <span class="keywordtype">short</span> gb,</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(gr,gg,gb) {}</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; </div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <span class="keyword">const</span> std::string&amp; b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(b) {}</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> std::string&amp; b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(b) {}</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; </div>
<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0"> 759</a></span>&#160; std::ostream&amp; <a class="code" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>( std::ostream&amp; os)<span class="keyword"> const</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a> == <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1e7cced329549fc4c2393381f068062e">ansi::colors_16</a>) {</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// Print all in a single escape.</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; os &lt;&lt; std::make_tuple(<a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>,<a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>,<a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>);</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; </div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">// 256 or 16M: always print separated escapes for foreground/background.</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a> == <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a7a3c32a8827eb17435511b4c7a429749">ansi::colors_256</a>) {</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; os &lt;&lt; <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>;</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; os &lt;&lt; <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>;</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; </div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a> == <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1844e5aae3a3eefc500c545e3c35bcfa">ansi::colors_16M</a>) {</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; os &lt;&lt; <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>;</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; os &lt;&lt; <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>;</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="comment">// In any case, print the style separately.</span></div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; os &lt;&lt; <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>;</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> os;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da"> 793</a></span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="classclutchlog_1_1fmt.html">fmt</a>&amp; <a class="code" href="classclutchlog_1_1fmt.html">fmt</a>)</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classclutchlog_1_1fmt.html">fmt</a>.<a class="code" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>(os);</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; </div>
<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c"> 808</a></span>&#160; std::string <a class="code" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">operator()</a>( <span class="keyword">const</span> std::string&amp; msg )<span class="keyword"> const</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; std::ostringstream os;</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; this-&gt;<a class="code" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>(os);</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html">fmt</a> reset(fmt::typo::reset);</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; os &lt;&lt; msg;</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; reset.print_on(os);</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> os.str();</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; </div>
<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b"> 820</a></span>&#160; std::string <a class="code" href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b">str</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; std::ostringstream os;</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; this-&gt;<a class="code" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>(os);</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">return</span> os.str();</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; </div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">static</span> <a class="code" href="classclutchlog_1_1fmt.html">fmt</a> hash( <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b">str</a>, <span class="keyword">const</span> std::vector&lt;fmt&gt; domain = {})</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; {</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordtype">size_t</span> h = std::hash&lt;std::string&gt;{}(<a class="code" href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b">str</a>);</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span>(domain.size() == 0) {</div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(h % 256));</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(domain[h % domain.size()]);</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }; <span class="comment">// fmt class</span></div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; </div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <a class="code" href="classclutchlog.html">clutchlog</a>(<a class="code" href="classclutchlog.html">clutchlog</a> <span class="keyword">const</span>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordtype">void</span> operator=(<a class="code" href="classclutchlog.html">clutchlog</a> <span class="keyword">const</span>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; </div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <a class="code" href="classclutchlog.html">clutchlog</a>() :</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="comment">// system, main, log</span></div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>(<a class="code" href="classclutchlog.html">clutchlog</a>::<a class="code" href="classclutchlog.html#a1a8cb6411726133208f5a2f2cb42d468">default_strip_calls</a>),</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">_level_word</a>({</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; {level::critical,<span class="stringliteral">&quot;Critical&quot;</span>},</div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; {level::error ,<span class="stringliteral">&quot;Error&quot;</span>},</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; {level::warning ,<span class="stringliteral">&quot;Warning&quot;</span>},</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; {level::progress,<span class="stringliteral">&quot;Progress&quot;</span>},</div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; {level::note ,<span class="stringliteral">&quot;Note&quot;</span>},</div>
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; {level::info ,<span class="stringliteral">&quot;Info&quot;</span>},</div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; {level::debug ,<span class="stringliteral">&quot;Debug&quot;</span>},</div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {level::xdebug ,<span class="stringliteral">&quot;XDebug&quot;</span>}</div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }),</div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <a class="code" href="classclutchlog.html#a08e8a817a75a4e9f0159231c941e0dae">_level_short</a>({</div>
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; {level::critical, <span class="stringliteral">&quot;Crit&quot;</span>},</div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; {level::error , <span class="stringliteral">&quot;Erro&quot;</span>},</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; {level::warning , <span class="stringliteral">&quot;Warn&quot;</span>},</div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; {level::progress, <span class="stringliteral">&quot;Prog&quot;</span>},</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {level::note , <span class="stringliteral">&quot;Note&quot;</span>},</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; {level::info , <span class="stringliteral">&quot;Info&quot;</span>},</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; {level::debug , <span class="stringliteral">&quot;Dbug&quot;</span>},</div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; {level::xdebug , <span class="stringliteral">&quot;XDbg&quot;</span>}</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }),</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>({</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; {level::critical,fmt(fmt::fg::red, fmt::typo::underline)},</div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {level::error ,fmt(fmt::fg::red, fmt::typo::bold)},</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {level::warning ,fmt(fmt::fg::magenta, fmt::typo::bold)},</div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {level::progress,fmt()},</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; {level::note ,fmt()},</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; {level::info ,fmt()},</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {level::debug ,fmt()},</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; {level::xdebug ,fmt()}</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }),</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a>(<a class="code" href="classclutchlog.html#a0c4ac57601e6f8d146fd5cc060968ecc">clutchlog::default_format</a>),</div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>(<a class="code" href="classclutchlog.html#ace879554298e6e6e36dafef330c27be8">clutchlog::dump_default_format</a>),</div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSIOCTL</span></div>
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; _hfill_char(<a class="code" href="classclutchlog.html#a76eb34537b634aadb75e255f7887eeb6">clutchlog::default_hfill_char</a>),</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; _hfill_fmt(fmt::fg::none),</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; _hfill_max(<a class="code" href="classclutchlog.html#ac95630bfe9cf547d2b7c4b3430eaedc1">clutchlog::default_hfill_max</a>),</div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; _hfill_min(<a class="code" href="classclutchlog.html#a5a9a98c3528117223ceff22bc6bee5f7">clutchlog::default_hfill_min</a>),</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a>(&amp;std::clog),</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; _depth(std::numeric_limits&lt;size_t&gt;::max() - <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>),</div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; _depth_mark(<a class="code" href="classclutchlog.html#a229fd61519f1245282440120f2d45fb5">clutchlog::default_depth_mark</a>),</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a>(level::error),</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <a class="code" href="classclutchlog.html#aded03528f34d9000f618419c482c5042">_in_file</a>(<span class="stringliteral">&quot;.*&quot;</span>),</div>
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e">_in_func</a>(<span class="stringliteral">&quot;.*&quot;</span>),</div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <a class="code" href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6">_in_line</a>(<span class="stringliteral">&quot;.*&quot;</span>),</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="comment">// Empty vectors by default:</span></div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="comment">// _filehash_fmts</span></div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="comment">// _funchash_fmts</span></div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="comment">// _depth_fmts</span></div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada">_filename</a>(filename::path)</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="comment">// Reverse the level-&gt;word map into a word-&gt;level map.</span></div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; lw : <a class="code" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">_level_word</a>) {</div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <a class="code" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">_word_level</a>[lw.second] = lw.first;</div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; }</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSIOCTL</span></div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keyword">struct </span>winsize w;</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; ioctl(STDERR_FILENO, TIOCGWINSZ, &amp;w);</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; _nb_columns = std::max(std::min((<span class="keywordtype">size_t</span>)w.ws_col, <a class="code" href="classclutchlog.html#ac95630bfe9cf547d2b7c4b3430eaedc1">default_hfill_max</a>), <a class="code" href="classclutchlog.html#a5a9a98c3528117223ceff22bc6bee5f7">default_hfill_min</a>);</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; </div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e"> 917</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>;</div>
<div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f"> 919</a></span>&#160; <span class="keyword">const</span> std::map&lt;level,std::string&gt; <a class="code" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">_level_word</a>;</div>
<div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888"> 921</a></span>&#160; std::map&lt;std::string,level&gt; <a class="code" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">_word_level</a>;</div>
<div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="classclutchlog.html#a08e8a817a75a4e9f0159231c941e0dae"> 923</a></span>&#160; std::map&lt;level,std::string&gt; <a class="code" href="classclutchlog.html#a08e8a817a75a4e9f0159231c941e0dae">_level_short</a>;</div>
<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735"> 925</a></span>&#160; std::map&lt;level,fmt&gt; <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>;</div>
<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e"> 927</a></span>&#160; std::string <a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a>;</div>
<div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5"> 929</a></span>&#160; std::string <a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>;</div>
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSIOCTL</span></div>
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; </div>
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordtype">char</span> _hfill_char;</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html">fmt</a> _hfill_fmt;</div>
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordtype">size_t</span> _hfill_max;</div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordtype">size_t</span> _hfill_min;</div>
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; </div>
<div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167"> 941</a></span>&#160; std::ostream* <a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a>;</div>
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;<span class="preprocessor"> #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; </div>
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordtype">size_t</span> _depth;</div>
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; std::string _depth_mark;</div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; </div>
<div class="line"><a name="l00949"></a><span class="lineno"><a class="line" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993"> 949</a></span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a>;</div>
<div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classclutchlog.html#aded03528f34d9000f618419c482c5042"> 951</a></span>&#160; std::regex <a class="code" href="classclutchlog.html#aded03528f34d9000f618419c482c5042">_in_file</a>;</div>
<div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e"> 953</a></span>&#160; std::regex <a class="code" href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e">_in_func</a>;</div>
<div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6"> 955</a></span>&#160; std::regex <a class="code" href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6">_in_line</a>;</div>
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; </div>
<div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="classclutchlog.html#a2a334e009533744b52f01ef240a59e9d"> 958</a></span>&#160; std::vector&lt;fmt&gt; <a class="code" href="classclutchlog.html#a2a334e009533744b52f01ef240a59e9d">_filehash_fmts</a>;</div>
<div class="line"><a name="l00960"></a><span class="lineno"><a class="line" href="classclutchlog.html#a095e1545a2085ac623e4af19364fea7f"> 960</a></span>&#160; std::vector&lt;fmt&gt; <a class="code" href="classclutchlog.html#a095e1545a2085ac623e4af19364fea7f">_funchash_fmts</a>;</div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; </div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; </div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> _max_buffer = 4096;</div>
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; std::vector&lt;fmt&gt; _depth_fmts;</div>
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; </div>
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSIOCTL</span></div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; </div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordtype">size_t</span> _nb_columns;</div>
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; </div>
<div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada"> 975</a></span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> <a class="code" href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada">_filename</a>;</div>
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; </div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>) {<a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a> = <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>;}</div>
<div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80"> 986</a></span>&#160; std::string <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a>;}</div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; </div>
<div class="line"><a name="l00989"></a><span class="lineno"><a class="line" href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924"> 989</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924">format_comment</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>) {<a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a> = <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>;}</div>
<div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5"> 991</a></span>&#160; std::string <a class="code" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>;}</div>
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; </div>
<div class="line"><a name="l00994"></a><span class="lineno"><a class="line" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d"> 994</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">out</a>(std::ostream&amp; <a class="code" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a>) {<a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a> = &amp;<a class="code" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">out</a>;}</div>
<div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266"> 996</a></span>&#160; std::ostream&amp; <a class="code" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a>() {<span class="keywordflow">return</span> *<a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a>;}</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; </div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordtype">void</span> depth(<span class="keywordtype">size_t</span> d) {_depth = d;}</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordtype">size_t</span> depth()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _depth;}</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keywordtype">void</span> depth_mark(<span class="keyword">const</span> std::string mark) {_depth_mark = mark;}</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; std::string depth_mark()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _depth_mark;}</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; </div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordtype">void</span> strip_calls(<span class="keyword">const</span> <span class="keywordtype">size_t</span> n) {<a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a> = n;}</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordtype">size_t</span> strip_calls()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>;}</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSIOCTL == 1</span></div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordtype">void</span> hfill_mark(<span class="keyword">const</span> <span class="keywordtype">char</span> mark) {_hfill_char = mark;}</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordtype">char</span> hfill_mark()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _hfill_char;}</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordtype">void</span> hfill_style(fmt <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>) {_hfill_fmt = <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>;}</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class </span>... FMT&gt;</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordtype">void</span> hfill_style(FMT... styles) { this-&gt;hfill_style(fmt(styles...)); }</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; fmt hfill_style()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _hfill_fmt;}</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordtype">void</span> hfill_max(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nmax) {_hfill_max = nmax;}</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keywordtype">size_t</span> hfill_max() {<span class="keywordflow">return</span> _hfill_max;}</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordtype">void</span> hfill_min(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nmin) {_hfill_min = nmin;}</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordtype">size_t</span> hfill_min() {<span class="keywordflow">return</span> _hfill_min;}</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; </div>
<div class="line"><a name="l01045"></a><span class="lineno"><a class="line" href="classclutchlog.html#ae17db5808155fbc6dc48b4727d0c3abf"> 1045</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ae17db5808155fbc6dc48b4727d0c3abf">filehash_styles</a>(std::vector&lt;fmt&gt; styles) {<a class="code" href="classclutchlog.html#a2a334e009533744b52f01ef240a59e9d">_filehash_fmts</a> = styles;}</div>
<div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="classclutchlog.html#acbb50f6306ebb3c8b0d1a52e7f327416"> 1053</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#acbb50f6306ebb3c8b0d1a52e7f327416">funchash_styles</a>(std::vector&lt;fmt&gt; styles) {<a class="code" href="classclutchlog.html#a095e1545a2085ac623e4af19364fea7f">_funchash_fmts</a> = styles;}</div>
<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="classclutchlog.html#a08310b92e86687349e70f56f9ac1d656"> 1062</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a08310b92e86687349e70f56f9ac1d656">depth_styles</a>(std::vector&lt;fmt&gt; styles) {_depth_fmts = styles;}</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; </div>
<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4"> 1065</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">threshold</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> l) {<a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a> = l;}</div>
<div class="line"><a name="l01067"></a><span class="lineno"><a class="line" href="classclutchlog.html#a7a7738eaad114bfa870121412fe23ad9"> 1067</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a7a7738eaad114bfa870121412fe23ad9">threshold</a>(<span class="keyword">const</span> std::string&amp; l) {<a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a> = this-&gt;<a class="code" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">level_of</a>(l);}</div>
<div class="line"><a name="l01069"></a><span class="lineno"><a class="line" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732"> 1069</a></span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a>;}</div>
<div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="classclutchlog.html#aff3aa09fb60f7d6dc688c028d3834d8a"> 1071</a></span>&#160; <span class="keyword">const</span> std::map&lt;std::string,level&gt;&amp; <a class="code" href="classclutchlog.html#aff3aa09fb60f7d6dc688c028d3834d8a">levels</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">_word_level</a>;}</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
<div class="line"><a name="l01077"></a><span class="lineno"><a class="line" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd"> 1077</a></span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">level_of</a>(<span class="keyword">const</span> std::string name)</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; {</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ilevel = <a class="code" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">_word_level</a>.find(name);</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span>( ilevel != std::end(<a class="code" href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">_word_level</a>)) {</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">return</span> ilevel-&gt;second;</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">throw</span> std::out_of_range(<span class="stringliteral">&quot;&#39;&quot;</span> + name + <span class="stringliteral">&quot;&#39; is not a valid log level name&quot;</span>);</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; }</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; }</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; </div>
<div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c"> 1088</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>(std::string <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>) {<a class="code" href="classclutchlog.html#aded03528f34d9000f618419c482c5042">_in_file</a> = <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>;}</div>
<div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447"> 1090</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>(std::string <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>) {<a class="code" href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e">_in_func</a> = <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>;}</div>
<div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9"> 1092</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>(std::string <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) {<a class="code" href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6">_in_line</a> = <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>;}</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; </div>
<div class="line"><a name="l01095"></a><span class="lineno"><a class="line" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3"> 1095</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">location</a>(</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keyword">const</span> std::string&amp; in_file,</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keyword">const</span> std::string&amp; in_function=<span class="stringliteral">&quot;.*&quot;</span>,</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keyword">const</span> std::string&amp; in_line=<span class="stringliteral">&quot;.*&quot;</span></div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; )</div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; {</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>(in_file);</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>(in_function);</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>(in_line);</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; }</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; </div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class </span>... FMT&gt;</div>
<div class="line"><a name="l01111"></a><span class="lineno"><a class="line" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591"> 1111</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, FMT... styles) { this-&gt;<a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(stage,<a class="code" href="classclutchlog_1_1fmt.html">fmt</a>(styles...)); }</div>
<div class="line"><a name="l01113"></a><span class="lineno"><a class="line" href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6"> 1113</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, <a class="code" href="classclutchlog_1_1fmt.html">fmt</a> <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>) { <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>.at(stage) = <a class="code" href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6">style</a>; }</div>
<div class="line"><a name="l01115"></a><span class="lineno"><a class="line" href="classclutchlog.html#a4831f44fd5ade102e57320632095934d"> 1115</a></span>&#160; <a class="code" href="classclutchlog_1_1fmt.html">fmt</a> <a class="code" href="classclutchlog.html#a4831f44fd5ade102e57320632095934d">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>.at(stage); }</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; </div>
<div class="line"><a name="l01118"></a><span class="lineno"><a class="line" href="classclutchlog.html#a82b9375728af2d962831a743d95f4ae7"> 1118</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a82b9375728af2d962831a743d95f4ae7">filename</a>(<a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> f) {<a class="code" href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada">_filename</a> = f;}</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; </div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; </div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keyword">struct </span>scope_t {</div>
<div class="line"><a name="l01130"></a><span class="lineno"><a class="line" href="structclutchlog_1_1scope__t.html#ae6c0e4ed20db797124ed1e5faa033ad9"> 1130</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1scope__t.html#ae6c0e4ed20db797124ed1e5faa033ad9">matches</a>;</div>
<div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="structclutchlog_1_1scope__t.html#adcca6846ff90d436c61861db85917744"> 1132</a></span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="structclutchlog_1_1scope__t.html#adcca6846ff90d436c61861db85917744">stage</a>;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordtype">size_t</span> depth;</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; </div>
<div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="structclutchlog_1_1scope__t.html#a7918e55cd3bac1bd30c69b8c711387ff"> 1138</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1scope__t.html#a7918e55cd3bac1bd30c69b8c711387ff">there</a>;</div>
<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="structclutchlog_1_1scope__t.html#a0f1d865ffcf17f215e5559cdd2690572"> 1140</a></span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html#a0f1d865ffcf17f215e5559cdd2690572">scope_t</a>() :</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html#ae6c0e4ed20db797124ed1e5faa033ad9">matches</a>(false),</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html#adcca6846ff90d436c61861db85917744">stage</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>::xdebug),</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;#if <a class="code" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a> == 1</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; depth(0),</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;#endif</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html#a7918e55cd3bac1bd30c69b8c711387ff">there</a>(false)</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; {}</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; }; <span class="comment">// scope_t</span></div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; </div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; </div>
<div class="line"><a name="l01152"></a><span class="lineno"><a class="line" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96"> 1152</a></span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html">scope_t</a> <a class="code" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a>(</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp; stage,</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>,</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a></div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html">scope_t</a> scope; <span class="comment">// False scope by default.</span></div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; </div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment"> /***** Log level stage *****/</span></div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="comment">// Test stage first, because it&#39;s fastest.</span></div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; scope.stage = stage;</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">if</span>(not (scope.stage &lt;= <a class="code" href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">_stage</a>)) {</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="comment">// Bypass useless computations if no match</span></div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="comment">// because of the stage.</span></div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">return</span> scope;</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; }</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment"> /***** Stack depth *****/</span></div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="comment">// Backtrace in second, quite fast.</span></div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordtype">size_t</span> stack_depth;</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordtype">void</span> *buffer[_max_buffer];</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; stack_depth = backtrace(buffer, _max_buffer);</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; scope.depth = stack_depth;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">if</span>(not (scope.depth &lt;= _depth + <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>)) {</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="comment">// Bypass if no match.</span></div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">return</span> scope;</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; }</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; </div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment"> /***** Location *****/</span></div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="comment">// Location last, slowest.</span></div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; std::ostringstream sline; sline &lt;&lt; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>;</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; scope.there =</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; std::regex_search(<a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#aded03528f34d9000f618419c482c5042">_in_file</a>)</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; and std::regex_search(<a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <a class="code" href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e">_in_func</a>)</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; and std::regex_search(sline.str(), <a class="code" href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6">_in_line</a>);</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; </div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="comment">// No need to retest stage and depth, which are true here.</span></div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; scope.matches = scope.there;</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; </div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">return</span> scope;</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; } <span class="comment">// locate</span></div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; </div>
<div class="line"><a name="l01203"></a><span class="lineno"><a class="line" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e"> 1203</a></span>&#160; std::string <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keyword">const</span> std::string&amp; form,</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keyword">const</span> std::string&amp; mark,</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keyword">const</span> std::string&amp; tag</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="comment">// Useless debug code, unless something fancy would be done with name tags.</span></div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">// std::regex re;</span></div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="comment">// try {</span></div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// re = std::regex(mark);</span></div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="comment">// } catch(const std::regex_error&amp; e) {</span></div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;ERROR with a regular expression \&quot;&quot; &lt;&lt; mark &lt;&lt; &quot;\&quot;: &quot;;</span></div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// switch(e.code()) {</span></div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="comment">// case std::regex_constants::error_collate:</span></div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid collating element name&quot;;</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="comment">// case std::regex_constants::error_ctype:</span></div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid character class name&quot;;</span></div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="comment">// case std::regex_constants::error_escape:</span></div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid escaped character or a trailing escape&quot;;</span></div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="comment">// case std::regex_constants::error_backref:</span></div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid back reference&quot;;</span></div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="comment">// case std::regex_constants::error_brack:</span></div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains mismatched square brackets (&#39;[&#39; and &#39;]&#39;)&quot;;</span></div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="comment">// case std::regex_constants::error_paren:</span></div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains mismatched parentheses (&#39;(&#39; and &#39;)&#39;)&quot;;</span></div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="comment">// case std::regex_constants::error_brace:</span></div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains mismatched curly braces (&#39;{&#39; and &#39;}&#39;)&quot;;</span></div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="comment">// case std::regex_constants::error_badbrace:</span></div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid range in a {} expression&quot;;</span></div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="comment">// case std::regex_constants::error_range:</span></div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the expression contains an invalid character range (e.g. [b-a])&quot;;</span></div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="comment">// case std::regex_constants::error_space:</span></div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;there was not enough memory to convert the expression into a finite state machine&quot;;</span></div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="comment">// case std::regex_constants::error_badrepeat:</span></div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;one of *?+{ was not preceded by a valid regular expression&quot;;</span></div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="comment">// case std::regex_constants::error_complexity:</span></div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;the complexity of an attempted match exceeded a predefined level&quot;;</span></div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="comment">// case std::regex_constants::error_stack:</span></div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;there was not enough memory to perform a match&quot;;</span></div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="comment">// break;</span></div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="comment">// default:</span></div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <span class="comment">// std::cerr &lt;&lt; &quot;unknown error&quot;;</span></div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="comment">// }</span></div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="comment">// std::cerr &lt;&lt; std::endl;</span></div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <span class="comment">// throw;</span></div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <span class="comment">// } // catch</span></div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; </div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keyword">const</span> std::regex re(mark);</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keywordflow">return</span> std::regex_replace(form, re, tag);</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; }</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; </div>
<div class="line"><a name="l01268"></a><span class="lineno"><a class="line" href="classclutchlog.html#ae90d5a1a428587ad67b38b2ea4ca9fa2"> 1268</a></span>&#160; std::string <a class="code" href="classclutchlog.html#ae90d5a1a428587ad67b38b2ea4ca9fa2">replace</a>(</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keyword">const</span> std::string&amp; form,</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keyword">const</span> std::string&amp; mark,</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> tag</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; std::ostringstream stag; stag &lt;&lt; tag;</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(form, mark, stag.str());</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; }</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; </div>
<div class="line"><a name="l01279"></a><span class="lineno"><a class="line" href="classclutchlog.html#abd692cca9a2e772e7c9d6531bb3c7761"> 1279</a></span>&#160; std::string <a class="code" href="classclutchlog.html#abd692cca9a2e772e7c9d6531bb3c7761">format</a>(</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; std::string row,</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keyword">const</span> std::string&amp; what,</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;#<span class="keywordflow">if</span> <a class="code" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a> == 1</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;#endif</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp; stage,</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>,</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a></div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;#<span class="keywordflow">if</span> <a class="code" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a> == 1</div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; ,</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> depth</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;#endif</div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{msg\\}&quot;</span>, what);</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; </div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keyword">const</span> std::filesystem::path filepath(<a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>);</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; assert(filepath.is_absolute());</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; std::string <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a>;</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; std::filesystem::path::iterator ip = filepath.end();</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; std::advance(ip, -2);</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">switch</span>(<a class="code" href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada">_filename</a>) {</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keywordflow">case</span> filename::base:</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = filepath.filename().string();</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">case</span> filename::dir:</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = ip-&gt;string();</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordflow">case</span> filename::dirbase:</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = (*ip / filepath.filename()).<span class="keywordtype">string</span>();</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keywordflow">case</span> filename::stem:</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = filepath.stem().string();</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keywordflow">case</span> filename::dirstem:</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = (*ip / filepath.stem()).<span class="keywordtype">string</span>();</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">case</span> filename::path:</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> = <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>;</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; }</div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{file\\}&quot;</span>, <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a>);</div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; </div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; </div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{func\\}&quot;</span>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>);</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{line\\}&quot;</span>, <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>);</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; </div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{level\\}&quot;</span>, <a class="code" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">_level_word</a>.at(stage));</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; std::string letter(1, <a class="code" href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">_level_word</a>.at(stage).at(0)); <span class="comment">// char -&gt; string</span></div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{level_letter\\}&quot;</span>, letter);</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{level_short\\}&quot;</span>, <a class="code" href="classclutchlog.html#a08e8a817a75a4e9f0159231c941e0dae">_level_short</a>.at(stage));</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; </div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordtype">size_t</span> actual_depth = depth - <a class="code" href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">_strip_calls</a>;</div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{name\\}&quot;</span>, name);</div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{depth\\}&quot;</span>, actual_depth);</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; </div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">if</span>(_depth_fmts.size() == 0) {</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{depth_fmt\\}&quot;</span>, <a class="code" href="classclutchlog_1_1fmt.html">fmt</a>(actual_depth % 256).str() );</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; </div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; std::ostringstream chevrons;</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; actual_depth; ++i) {</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; chevrons &lt;&lt; _depth_mark;</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; }</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{depth_marks\\}&quot;</span>, chevrons.str());</div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; </div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{depth_fmt\\}&quot;</span>,</div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; _depth_fmts[std::min(actual_depth,_depth_fmts.size()-1)].str() );</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; </div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; std::ostringstream chevrons;</div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; actual_depth; ++i) {</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; chevrons &lt;&lt; _depth_fmts[std::min(i+1,_depth_fmts.size()-1)].str()</div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; &lt;&lt; _depth_mark;</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; }</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{depth_marks\\}&quot;</span>, chevrons.str());</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; }</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{level_fmt\\}&quot;</span>, <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>.at(stage).str());</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{filehash_fmt\\}&quot;</span>, fmt::hash(<a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#a2a334e009533744b52f01ef240a59e9d">_filehash_fmts</a>).str() );</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{funchash_fmt\\}&quot;</span>, fmt::hash(<a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <a class="code" href="classclutchlog.html#a095e1545a2085ac623e4af19364fea7f">_funchash_fmts</a>).str() );</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; </div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSIOCTL</span></div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="comment">// hfill is replaced last to allow for correct line width estimation.</span></div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keyword">const</span> std::string raw_row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="keyword">const</span> std::string hfill_tag = <span class="stringliteral">&quot;{hfill}&quot;</span>;</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> hfill_pos = row.find(hfill_tag);</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> raw_hfill_pos = raw_row.find(hfill_tag);</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> nb_columns = std::max(std::min((<span class="keywordtype">size_t</span>)_nb_columns, _hfill_max), _hfill_min);</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="keywordflow">if</span>(hfill_pos != std::string::npos) {</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; assert(raw_hfill_pos != std::string::npos);</div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keywordflow">if</span>(nb_columns &gt; 0) {</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> left_len = raw_hfill_pos;</div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> right_len = raw_row.size() - raw_hfill_pos - hfill_tag.size();</div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <span class="keywordflow">if</span>(right_len+left_len &gt; nb_columns) {</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="comment">// The right part would go over the terminal width: add a new row.</span></div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">if</span>(right_len &lt; nb_columns) {</div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="comment">// There is room for the right part on a new line.</span></div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; <span class="keyword">const</span> std::string hfill(std::max((<span class="keywordtype">size_t</span>)0, nb_columns-right_len), _hfill_char);</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keyword">const</span> std::string hfill_styled = _hfill_fmt(hfill);</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{hfill\\}&quot;</span>, <span class="stringliteral">&quot;\n&quot;</span>+hfill_styled);</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="comment">// Right part still goes over columns: let it go.</span></div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keyword">const</span> std::string hfill(1, _hfill_char);</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keyword">const</span> std::string hfill_styled = _hfill_fmt(hfill);</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{hfill\\}&quot;</span>, <span class="stringliteral">&quot;\n&quot;</span>+hfill_styled);</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; }</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="comment">// There is some space in between left and right parts.</span></div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keyword">const</span> std::string hfill(std::max((<span class="keywordtype">size_t</span>)0, nb_columns - (right_len+left_len)), _hfill_char);</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keyword">const</span> std::string hfill_styled = _hfill_fmt(hfill);</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{hfill\\}&quot;</span>, hfill_styled);</div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; }</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; <span class="comment">// We don&#39;t know the terminal width.</span></div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="keyword">const</span> std::string hfill(1, _hfill_char);</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="keyword">const</span> std::string hfill_styled = _hfill_fmt(hfill);</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{hfill\\}&quot;</span>, hfill_styled);</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; }</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; }</div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="comment">// We cannot know the terminal width.</span></div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; <span class="keyword">const</span> std::string hfill(1, _hfill_char);</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keyword">const</span> std::string hfill_styled = _hfill_fmt(hfill);</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; row = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(row, <span class="stringliteral">&quot;\\{hfill\\}&quot;</span>, hfill_styled);</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">_level_fmt</a>.at(stage)(row);</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; }</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; </div>
<div class="line"><a name="l01412"></a><span class="lineno"><a class="line" href="classclutchlog.html#a14c19e17c54d6353ba34c0dc3371094a"> 1412</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a14c19e17c54d6353ba34c0dc3371094a">log</a>(</div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp; stage,</div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keyword">const</span> std::string&amp; what,</div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>,</div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> depth_delta = 0</div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html">scope_t</a> scope = <a class="code" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a>(stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>);</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; </div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordflow">if</span>(scope.matches) {</div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; *<a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a> &lt;&lt; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a>, what, basename(getenv(<span class="stringliteral">&quot;_&quot;</span>)),</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>, scope.depth + depth_delta );</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; *<a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a> &lt;&lt; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<a class="code" href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">_format_log</a>, what,</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a> );</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <a class="code" href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">_out</a>-&gt;flush();</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; } <span class="comment">// if scopes.matches</span></div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; }</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; </div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> In&gt;</div>
<div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="classclutchlog.html#ab72a0adc9ff287270afe09c9da825fdb"> 1437</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ab72a0adc9ff287270afe09c9da825fdb">dump</a>(</div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp; stage,</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keyword">const</span> In container_begin, <span class="keyword">const</span> In container_end,</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <span class="keyword">const</span> std::string&amp; <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>,</div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="keyword">const</span> std::string&amp; filename_template = <span class="stringliteral">&quot;dump_{n}.dat&quot;</span>,</div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; <span class="keyword">const</span> std::string sep = <a class="code" href="classclutchlog.html#af898bffe23b125245e338d7495c76d45">dump_default_sep</a></div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <a class="code" href="structclutchlog_1_1scope__t.html">scope_t</a> scope = <a class="code" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a>(stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>);</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; </div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="keywordflow">if</span>(scope.matches) {</div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keyword">const</span> std::string tag = <span class="stringliteral">&quot;\\{n\\}&quot;</span>;</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="keyword">const</span> std::regex re(tag);</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; std::string outfile = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; </div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="comment">// If the file name template has the {n} tag.</span></div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keywordflow">if</span>(std::regex_search(filename_template, re)) {</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; <span class="comment">// Increment n until a free one is found.</span></div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; <span class="keywordtype">size_t</span> n = 0;</div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; <span class="keywordflow">do</span> {</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; outfile = <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(filename_template, tag, n);</div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; n++;</div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; } <span class="keywordflow">while</span>( fs::exists( outfile ) );</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; </div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; <span class="comment">// Use the parameter as is.</span></div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; outfile = filename_template;</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; }</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; </div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; std::ofstream fd(outfile);</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; </div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>.size() &gt; 0) {</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; fd &lt;&lt; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>, <span class="stringliteral">&quot;&quot;</span>, basename(getenv(<span class="stringliteral">&quot;_&quot;</span>)),</div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>, scope.depth );</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; fd &lt;&lt; <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<a class="code" href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">_format_dump</a>, <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; stage, <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>,</div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a> );</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; fd &lt;&lt; sep; <span class="comment">// sep after comment line.</span></div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; }</div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; </div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; std::copy(container_begin, container_end,</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; std::ostream_iterator&lt;typename In::value_type&gt;(fd, sep.c_str()));</div>
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; </div>
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; fd.close();</div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; } <span class="comment">// if scopes.matches</span></div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; }</div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; </div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;};</div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; </div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="preprocessor">#else // not WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; </div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; </div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment">/**********************************************************************</span></div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"> * Fake implementation</span></div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"> **********************************************************************/</span></div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; </div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="comment">// Equivalent class with empty methods, will be optimized out</span></div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;<span class="comment">// while allowing to actually have calls implemented without WITH_CLUTCHLOG guards.</span></div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;<span class="preprocessor">#pragma GCC diagnostic push</span></div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;<span class="preprocessor">#pragma GCC diagnostic ignored &quot;-Wreturn-type&quot;</span></div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;<span class="keyword">class </span><a class="code" href="classclutchlog.html">clutchlog</a></div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;{</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="keyword">static</span> <a class="code" href="classclutchlog.html">clutchlog</a>&amp; <a class="code" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">logger</a>() {}</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keyword">enum</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> {critical=0, error=1, warning=2, progress=3, note=4, info=5, debug=6, xdebug=7};</div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keyword">enum</span> <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a> {path, base, dir, dirbase, stem, dirstem};</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; <span class="keyword">class </span>fmt {</div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <span class="keyword">enum class</span> <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> { <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1e7cced329549fc4c2393381f068062e">colors_16</a>, <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a7a3c32a8827eb17435511b4c7a429749">colors_256</a>, <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1844e5aae3a3eefc500c545e3c35bcfa">colors_16M</a>} <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>;</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; <span class="keyword">enum class</span> <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> { reset, bold, underline, inverse, none} <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>;</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; <span class="keyword">enum class</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> { black, red, green, yellow, blue, magenta, cyan, white, bright_black, bright_red, bright_green, bright_yellow, bright_blue, bright_magenta, bright_cyan, bright_white, none} <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>;</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keyword">enum class</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> { black, red, green, yellow, blue, magenta, cyan, white, bright_black, bright_red, bright_green, bright_yellow, bright_blue, bright_magenta, bright_cyan, bright_white, none } <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>;</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7">operator&lt;&lt;</a>(std::ostream&amp;, <span class="keyword">const</span> std::tuple&lt;fg,bg,typo&gt;&amp;) {}</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7">operator&lt;&lt;</a>(std::ostream&amp;, <span class="keyword">const</span> <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a>&amp;) {}</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="keyword">struct </span>color {</div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> mode;</div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keyword">enum class</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> { fore, back } <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">type</a>;</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a> a, <a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> g) : mode(a), <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">type</a>(g) {}</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a96d7161ef1e7cc631ae670cd3f364603">is_set</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keyword">virtual</span> std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#aa75e958436afe333924b6db3e5f0821f">print_on</a>( std::ostream&amp;) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a826e3d3eba925608442439d6bc3a95a6">operator&lt;&lt;</a>(std::ostream&amp;, <span class="keyword">const</span> <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>&amp;) {}</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; };</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keyword">struct </span>color_256 : <span class="keyword">public</span> color {</div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; <span class="keywordtype">short</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>;</div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>(-1) {}</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keyword">const</span> <span class="keywordtype">short</span> i) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">index</a>(i) {}</div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#ad79557682cec1c053dda258581972111">is_set</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#aaae6106a11eddade981172324a43df68">print_on</a>( std::ostream&amp;)<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; };</div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <span class="keyword">struct </span>fg_256 : <span class="keyword">public</span> color_256 {</div>
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a">fg_256</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore) {}</div>
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a">fg_256</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> f) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, f) {}</div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a">fg_256</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, -1) {}</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; } <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>;</div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; <span class="keyword">struct </span>bg_256 : <span class="keyword">public</span> color_256 {</div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90">bg_256</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back) {}</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90">bg_256</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, b) {}</div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90">bg_256</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">color_256</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, -1) {}</div>
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; } <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>;</div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; <span class="keyword">struct </span>color_16M : <span class="keyword">public</span> color {</div>
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keywordtype">short</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>, green, blue;</div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>(-1), green(-1), blue(-1) {}</div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t), <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a>(r), green(g), blue(b) {}</div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a> t, <span class="keyword">const</span> std::string&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">color</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M, t) {}</div>
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a780c11e42bb140732ffd37cf4eef9e1d">is_set</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">red</a> &gt; -1 and green &gt; -1 and blue &gt; -1;}</div>
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; std::ostream&amp; <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#a674910195e7bb14d78f0cf56c308a47e">print_on</a>( std::ostream&amp;)<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; };</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; <span class="keyword">struct </span>fg_16M : <span class="keyword">public</span> color_16M {</div>
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">fg_16M</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore) {}</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">fg_16M</a>(<span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, r,g,b) {}</div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">fg_16M</a>(<span class="keyword">const</span> std::string&amp; srgb) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, srgb) {}</div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">fg_16M</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::fore, -1,-1,-1) {}</div>
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; } <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>;</div>
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <span class="keyword">struct </span>bg_16M : <span class="keyword">public</span> color_16M {</div>
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">bg_16M</a>() : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back) {}</div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">bg_16M</a>(<span class="keywordtype">short</span> r, <span class="keywordtype">short</span> g, <span class="keywordtype">short</span> b) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, r,g,b) {}</div>
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">bg_16M</a>(<span class="keyword">const</span> std::string&amp; srgb) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, srgb) {}</div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; <a class="code" href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">bg_16M</a>(<span class="keyword">const</span> <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>&amp;) : <a class="code" href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">color_16M</a>(<a class="code" href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">ground</a>::back, -1,-1,-1) {}</div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; } <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>;</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>() : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a>::none), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s , <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>( <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s , <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b = bg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b , <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f = fg::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">fore</a>(f), <a class="code" href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">back</a>(b) {}</div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(fg_256 f, bg_256 b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(f), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(b) {}</div>
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(fg_256 f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(f), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, bg_256 b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none) : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_256), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">fore_256</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">back_256</a>(b) {}</div>
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; <span class="keyword">const</span> <span class="keywordtype">short</span> gr, <span class="keyword">const</span> <span class="keywordtype">short</span> gg, <span class="keyword">const</span> <span class="keywordtype">short</span> gb,</div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(gr,gg,gb) {}</div>
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,</div>
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keyword">const</span> <span class="keywordtype">short</span> gr, <span class="keyword">const</span> <span class="keywordtype">short</span> gg, <span class="keyword">const</span> <span class="keywordtype">short</span> gb,</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(gr,gg,gb) {}</div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> fr, <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> <span class="keywordtype">short</span> fb,</div>
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(fr,<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>,fb), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; </div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <span class="keyword">const</span> std::string&amp; b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(b) {}</div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>, <span class="keyword">const</span> std::string&amp; b, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(<a class="code" href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a>::none), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(b) {}</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>(<span class="keyword">const</span> std::string&amp; f, <a class="code" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s = typo::none)</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; : <a class="code" href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">mode</a>(<a class="code" href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">ansi</a>::colors_16M), <a class="code" href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">style</a>(s), <a class="code" href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">fore_16M</a>(f), <a class="code" href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">back_16M</a>(<a class="code" href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a>::none) {}</div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; std::ostream&amp; <a class="code" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>( std::ostream&amp;)<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7">operator&lt;&lt;</a>(std::ostream&amp;, <span class="keyword">const</span> <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>&amp;) {}</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; std::string <a class="code" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">operator()</a>( <span class="keyword">const</span> std::string&amp;)<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; std::string <a class="code" href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b">str</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keyword">static</span> <a class="code" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a> hash( <span class="keyword">const</span> std::string&amp;, <span class="keyword">const</span> std::vector&lt;fmt&gt;) {}</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; };</div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <a class="code" href="classclutchlog.html">clutchlog</a>(<a class="code" href="classclutchlog.html">clutchlog</a> <span class="keyword">const</span>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keywordtype">void</span> operator=(<a class="code" href="classclutchlog.html">clutchlog</a> <span class="keyword">const</span>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <a class="code" href="classclutchlog.html">clutchlog</a>() {}</div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <span class="keyword">struct </span>scope_t {};</div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; scope_t <a class="code" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a>(</div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp;,</div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(<span class="keyword">const</span> std::string&amp;) {}</div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; std::string <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; </div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a>(<span class="keyword">const</span> std::string&amp;) {}</div>
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; std::string <a class="code" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; </div>
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a>(std::ostream&amp;) {}</div>
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; std::ostream&amp; <a class="code" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a>() {}</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; </div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1</span></div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <span class="keywordtype">void</span> depth(<span class="keywordtype">size_t</span>) {}</div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keywordtype">size_t</span> depth()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; </div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; <span class="keywordtype">void</span> depth_mark(<span class="keyword">const</span> std::string) {}</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; std::string depth_mark()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; <span class="keywordtype">void</span> strip_calls(<span class="keyword">const</span> <span class="keywordtype">size_t</span>) {}</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; <span class="keywordtype">size_t</span> strip_calls()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="preprocessor">#if CLUTCHLOG_HAVE_UNIX_SYSIOCTL == 1</span></div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keywordtype">void</span> hfill_mark(<span class="keyword">const</span> <span class="keywordtype">char</span>) {}</div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keywordtype">char</span> hfill_mark()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="keywordtype">void</span> hfill_fmt(fmt) {}</div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; fmt hfill_fmt()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keywordtype">void</span> hfill_min(<span class="keyword">const</span> <span class="keywordtype">size_t</span>) {}</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="keywordtype">size_t</span> hfill_min() {}</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="keywordtype">void</span> hfill_max(<span class="keyword">const</span> <span class="keywordtype">size_t</span>) {}</div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordtype">size_t</span> hfill_max() {}</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ae17db5808155fbc6dc48b4727d0c3abf">filehash_styles</a>(std::vector&lt;fmt&gt; ) {}</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#acbb50f6306ebb3c8b0d1a52e7f327416">funchash_styles</a>(std::vector&lt;fmt&gt; ) {}</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a08310b92e86687349e70f56f9ac1d656">depth_styles</a>(std::vector&lt;fmt&gt;) {}</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; </div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>) {}</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a>(<span class="keyword">const</span> std::string&amp;) {}</div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; <span class="keyword">const</span> std::map&lt;std::string,level&gt; <a class="code" href="classclutchlog.html#aff3aa09fb60f7d6dc688c028d3834d8a">levels</a>()<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> <a class="code" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">level_of</a>(<span class="keyword">const</span> std::string) {}</div>
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; </div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>(std::string) {}</div>
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>(std::string) {}</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>(std::string) {}</div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; </div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="preprocessor">#pragma GCC diagnostic push</span></div>
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="preprocessor">#pragma GCC diagnostic ignored &quot;-Wunused-parameter&quot;</span></div>
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">location</a>(</div>
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keyword">const</span> std::string&amp; in_function=<span class="stringliteral">&quot;.*&quot;</span>,</div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="keyword">const</span> std::string&amp; in_line=<span class="stringliteral">&quot;.*&quot;</span></div>
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; )</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; {}</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="preprocessor">#pragma GCC diagnostic pop</span></div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class </span>... FMT&gt;</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, FMT...) {}</div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, fmt) {}</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; fmt <a class="code" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(<a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>)<span class="keyword"> const </span>{}</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a>(<a class="code" href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">filename</a>) {}</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; std::string <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="keyword">const</span> std::string&amp;</div>
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; </div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; std::string <a class="code" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(</div>
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; </div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; std::string <a class="code" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>(</div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; std::string,</div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;#<span class="keywordflow">if</span> <a class="code" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a> == 1</div>
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;#endif</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp;,</div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;#<span class="keywordflow">if</span> <a class="code" href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a> == 1</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; ,</div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;#endif</div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; </div>
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#a14c19e17c54d6353ba34c0dc3371094a">log</a>(</div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp;,</div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <span class="keyword">const</span> std::string&amp;, <span class="keyword">const</span> std::string&amp;, <span class="keywordtype">size_t</span></div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; </div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> In&gt;</div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classclutchlog.html#ab72a0adc9ff287270afe09c9da825fdb">dump</a>(</div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; <span class="keyword">const</span> <a class="code" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&amp;,</div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keyword">const</span> In, <span class="keyword">const</span> In,</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <span class="keyword">const</span> std::string&amp;, <span class="keyword">const</span> std::string&amp;, <span class="keywordtype">size_t</span>,</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keyword">const</span> std::string&amp;,</div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="keyword">const</span> std::string</div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; )<span class="keyword"> const</span></div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;<span class="keyword"> </span>{}</div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;};</div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;<span class="preprocessor">#pragma GCC diagnostic pop</span></div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;<span class="preprocessor">#endif // WITH_CLUTCHLOG</span></div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; </div>
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="preprocessor">#endif // CLUTCHLOG_H</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__colors16_html_ga5a697f5ad3326ea25b139e25252b4cf7"><div class="ttname"><a href="group__colors16.html#ga5a697f5ad3326ea25b139e25252b4cf7">clutchlog::fmt::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const std::tuple&lt; fg, bg, typo &gt; &amp;fbs)</div><div class="ttdoc">Output stream operator for a 3-tuple of 16-colors mode tags.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00446">clutchlog.h:446</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a229fd61519f1245282440120f2d45fb5"><div class="ttname"><a href="classclutchlog.html#a229fd61519f1245282440120f2d45fb5">clutchlog::default_depth_mark</a></div><div class="ttdeci">static std::string default_depth_mark</div><div class="ttdoc">Default mark for stack depth.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00259">clutchlog.h:259</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a7c6e3fc082bc6f55d50131ed2b32e81e"><div class="ttname"><a href="classclutchlog.html#a7c6e3fc082bc6f55d50131ed2b32e81e">clutchlog::_format_log</a></div><div class="ttdeci">std::string _format_log</div><div class="ttdoc">Current format of the standard output.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00927">clutchlog.h:927</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_a55e39e7eb3ced3095c00914eff52470c"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#a55e39e7eb3ced3095c00914eff52470c">clutchlog::fmt::color_16M::color_16M</a></div><div class="ttdeci">color_16M(ground t, const std::string &amp;srgb)</div><div class="ttdoc">Hex triplet string constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00614">clutchlog.h:614</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ab72a0adc9ff287270afe09c9da825fdb"><div class="ttname"><a href="classclutchlog.html#ab72a0adc9ff287270afe09c9da825fdb">clutchlog::dump</a></div><div class="ttdeci">void dump(const level &amp;stage, const In container_begin, const In container_end, const std::string &amp;file, const std::string &amp;func, const size_t line, const std::string &amp;filename_template=&quot;dump_{n}.dat&quot;, const std::string sep=dump_default_sep) const</div><div class="ttdoc">Dump a serializable container after a comment line with log information.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01437">clutchlog.h:1437</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a08310b92e86687349e70f56f9ac1d656"><div class="ttname"><a href="classclutchlog.html#a08310b92e86687349e70f56f9ac1d656">clutchlog::depth_styles</a></div><div class="ttdeci">void depth_styles(std::vector&lt; fmt &gt; styles)</div><div class="ttdoc">Set the styles for value-dependant depth formatting.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01062">clutchlog.h:1062</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ab805ac5c33885459f9f752518a4aa735"><div class="ttname"><a href="classclutchlog.html#ab805ac5c33885459f9f752518a4aa735">clutchlog::_level_fmt</a></div><div class="ttdeci">std::map&lt; level, fmt &gt; _level_fmt</div><div class="ttdoc">Dictionary of level identifier to their format.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00925">clutchlog.h:925</a></div></div>
<div class="ttc" id="agroup__colors16_html_ga86696b20e5b31c96ba592926efb324f3"><div class="ttname"><a href="group__colors16.html#ga86696b20e5b31c96ba592926efb324f3">clutchlog::fmt::back</a></div><div class="ttdeci">enum clutchlog::fmt::bg back</div><div class="ttdoc">Background color.</div></div>
<div class="ttc" id="aclassclutchlog_html_a095e1545a2085ac623e4af19364fea7f"><div class="ttname"><a href="classclutchlog.html#a095e1545a2085ac623e4af19364fea7f">clutchlog::_funchash_fmts</a></div><div class="ttdeci">std::vector&lt; fmt &gt; _funchash_fmts</div><div class="ttdoc">List of candidate format objects for value-dependant function name styling.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00960">clutchlog.h:960</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_ab588e04e982b0b26ec979773d51ad41b"><div class="ttname"><a href="classclutchlog_1_1fmt.html#ab588e04e982b0b26ec979773d51ad41b">clutchlog::fmt::str</a></div><div class="ttdeci">std::string str() const</div><div class="ttdoc">Return the formatting code as a string.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00820">clutchlog.h:820</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__256_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__256.html">clutchlog::fmt::fg_256</a></div><div class="ttdoc">Foreground in 256-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00552">clutchlog.h:552</a></div></div>
<div class="ttc" id="aclassclutchlog_html_aa26c6b81ebaeb9e9daa3457e3a3d17c9"><div class="ttname"><a href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog::line</a></div><div class="ttdeci">void line(std::string line)</div><div class="ttdoc">Set the regular expression filtering the line location.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01092">clutchlog.h:1092</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_a826e3d3eba925608442439d6bc3a95a6"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#a826e3d3eba925608442439d6bc3a95a6">clutchlog::fmt::color::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const color &amp;c)</div><div class="ttdoc">Print the actually encoded escaped color sequence on the given stream.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00506">clutchlog.h:506</a></div></div>
<div class="ttc" id="agroup__colors16_html_ga379b0af834c7c561edc5c1e3a3427a33"><div class="ttname"><a href="group__colors16.html#ga379b0af834c7c561edc5c1e3a3427a33">clutchlog::fmt::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const typo &amp;s)</div><div class="ttdoc">Output stream operator for a typo tag alone, in 16-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00468">clutchlog.h:468</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ace879554298e6e6e36dafef330c27be8"><div class="ttname"><a href="classclutchlog.html#ace879554298e6e6e36dafef330c27be8">clutchlog::dump_default_format</a></div><div class="ttdeci">static std::string dump_default_format</div><div class="ttdoc">Default format of the comment line in file dump.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00245">clutchlog.h:245</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a0431616914dbbecb908a794f5b46dada"><div class="ttname"><a href="classclutchlog.html#a0431616914dbbecb908a794f5b46dada">clutchlog::_filename</a></div><div class="ttdeci">filename _filename</div><div class="ttdoc">Filename rendering method.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00975">clutchlog.h:975</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a7fd7c7bd3668c537061c314a619a336d"><div class="ttname"><a href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">clutchlog::out</a></div><div class="ttdeci">void out(std::ostream &amp;out)</div><div class="ttdoc">Set the output stream on which to print.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00994">clutchlog.h:994</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_a780c11e42bb140732ffd37cf4eef9e1d"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#a780c11e42bb140732ffd37cf4eef9e1d">clutchlog::fmt::color_16M::is_set</a></div><div class="ttdeci">bool is_set() const</div><div class="ttdoc">Returns true if the underying representation encodes an existing color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00636">clutchlog.h:636</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__16_m_html_a9da40a4a7ff3b80f028f26322f59eba8"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__16_m.html#a9da40a4a7ff3b80f028f26322f59eba8">clutchlog::fmt::fg_16M::fg_16M</a></div><div class="ttdeci">fg_16M(const fg &amp;)</div><div class="ttdoc">Conversion constructor from 16-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00672">clutchlog.h:672</a></div></div>
<div class="ttc" id="aclassclutchlog_html_af898bffe23b125245e338d7495c76d45"><div class="ttname"><a href="classclutchlog.html#af898bffe23b125245e338d7495c76d45">clutchlog::dump_default_sep</a></div><div class="ttdeci">static std::string dump_default_sep</div><div class="ttdoc">Default item separator for dump.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00252">clutchlog.h:252</a></div></div>
<div class="ttc" id="aclassclutchlog_html_abd692cca9a2e772e7c9d6531bb3c7761"><div class="ttname"><a href="classclutchlog.html#abd692cca9a2e772e7c9d6531bb3c7761">clutchlog::format</a></div><div class="ttdeci">std::string format(std::string row, const std::string &amp;what, const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</div><div class="ttdoc">Substitute all tags in the format string with the corresponding information and apply the style corre...</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01279">clutchlog.h:1279</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__256_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__256.html">clutchlog::fmt::bg_256</a></div><div class="ttdoc">Background in 256-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00569">clutchlog.h:569</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga45c4c964fad4ad1641d5c9c28c4645b9"><div class="ttname"><a href="group___default_config.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a></div><div class="ttdeci">#define CLUTCHLOG_DEFAULT_DEPTH_MARK</div><div class="ttdoc">Compile-time default mark for stack depth.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00256">clutchlog.h:256</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a1a8cb6411726133208f5a2f2cb42d468"><div class="ttname"><a href="classclutchlog.html#a1a8cb6411726133208f5a2f2cb42d468">clutchlog::default_strip_calls</a></div><div class="ttdeci">static unsigned int default_strip_calls</div><div class="ttdoc">Number of call stack levels to remove from depth display by default.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00266">clutchlog.h:266</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a5a9a98c3528117223ceff22bc6bee5f7"><div class="ttname"><a href="classclutchlog.html#a5a9a98c3528117223ceff22bc6bee5f7">clutchlog::default_hfill_min</a></div><div class="ttdeci">static size_t default_hfill_min</div><div class="ttdoc">Default minimum width (number of characters) at which to fill for right-aligning the right part of me...</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00287">clutchlog.h:287</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a972f895c70edc335f3018a2c8971d59e"><div class="ttname"><a href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">clutchlog::replace</a></div><div class="ttdeci">std::string replace(const std::string &amp;form, const std::string &amp;mark, const std::string &amp;tag) const</div><div class="ttdoc">Replace mark by tag in form.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01203">clutchlog.h:1203</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html_a12fdff3c5c4edbf952aaa31519f0171c"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html#a12fdff3c5c4edbf952aaa31519f0171c">clutchlog::fmt::color_256::color_256</a></div><div class="ttdeci">color_256(ground t)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00531">clutchlog.h:531</a></div></div>
<div class="ttc" id="agroup__colors256__16_m_html_gaa2fcbb402dc2426d3720b8bc78a80ec0"><div class="ttname"><a href="group__colors256__16_m.html#gaa2fcbb402dc2426d3720b8bc78a80ec0">clutchlog::fmt::back_16M</a></div><div class="ttdeci">clutchlog::fmt::bg_16M back_16M</div><div class="ttdoc">Current background in 16M-colors mode.</div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html">clutchlog::fmt::color</a></div><div class="ttdoc">Interface class for colors representation.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00483">clutchlog.h:483</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a4d0b3c87ba935addf3581b000c0d7502a1e7cced329549fc4c2393381f068062e"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1e7cced329549fc4c2393381f068062e">clutchlog::fmt::ansi::colors_16</a></div><div class="ttdeci">@ colors_16</div><div class="ttdoc">16 colors mode.</div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__16_m_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__16_m.html">clutchlog::fmt::bg_16M</a></div><div class="ttdoc">background in 256-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00677">clutchlog.h:677</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a76eb34537b634aadb75e255f7887eeb6"><div class="ttname"><a href="classclutchlog.html#a76eb34537b634aadb75e255f7887eeb6">clutchlog::default_hfill_char</a></div><div class="ttdeci">static char default_hfill_char</div><div class="ttdoc">Default character used as a filling for right-align the right part of messages with &quot;{hfill}&quot;.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00273">clutchlog.h:273</a></div></div>
<div class="ttc" id="astructclutchlog_1_1scope__t_html_ae6c0e4ed20db797124ed1e5faa033ad9"><div class="ttname"><a href="structclutchlog_1_1scope__t.html#ae6c0e4ed20db797124ed1e5faa033ad9">clutchlog::scope_t::matches</a></div><div class="ttdeci">bool matches</div><div class="ttdoc">Everything is compatible.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01130">clutchlog.h:1130</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a2bb0fde65fcd264393e102314dd1610b"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a2bb0fde65fcd264393e102314dd1610b">clutchlog::fmt::style</a></div><div class="ttdeci">enum clutchlog::fmt::typo style</div><div class="ttdoc">Typographic style.</div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html">clutchlog::fmt::color_16M</a></div><div class="ttdoc">Abstract base class for 16M colors objects (24-bits ANSI).</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00586">clutchlog.h:586</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__256_html_a501fff36520f20ba4973ba3848fb9c23"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__256.html#a501fff36520f20ba4973ba3848fb9c23">clutchlog::fmt::fg_256::fg_256</a></div><div class="ttdeci">fg_256(const fg &amp;)</div><div class="ttdoc">Conversion constructor from 16-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00564">clutchlog.h:564</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a2144abe4ec6f630126b6490908b5f924"><div class="ttname"><a href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924">clutchlog::format_comment</a></div><div class="ttdeci">void format_comment(const std::string &amp;format)</div><div class="ttdoc">Set the template string for dumps.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00989">clutchlog.h:989</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__16_m_html_adcd5bd1e69e76e3b36015cf687693c97"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__16_m.html#adcd5bd1e69e76e3b36015cf687693c97">clutchlog::fmt::bg_16M::bg_16M</a></div><div class="ttdeci">bg_16M(const std::string &amp;srgb)</div><div class="ttdoc">Hex triplet string constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00697">clutchlog.h:697</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a10064493c22f5c03b502a42d814c5c5c"><div class="ttname"><a href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">clutchlog::file</a></div><div class="ttdeci">void file(std::string file)</div><div class="ttdoc">Set the regular expression filtering the file location.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01088">clutchlog.h:1088</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a4ebdfcded6c56262676bf6926d63fc96"><div class="ttname"><a href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">clutchlog::locate</a></div><div class="ttdeci">scope_t locate(const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</div><div class="ttdoc">Gather information on the current location of the call.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01152">clutchlog.h:1152</a></div></div>
<div class="ttc" id="agroup__colors256__16_m_html_ga626c99eb11d1718d7a2a8bb3f079e6de"><div class="ttname"><a href="group__colors256__16_m.html#ga626c99eb11d1718d7a2a8bb3f079e6de">clutchlog::fmt::fore_16M</a></div><div class="ttdeci">clutchlog::fmt::fg_16M fore_16M</div><div class="ttdoc">Current foreground in 16M-colors mode.</div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html">clutchlog::fmt::color_256</a></div><div class="ttdoc">Abstract base class for 256 colors objects (8-bits ANSI).</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00522">clutchlog.h:522</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a407506bc02ed3f91d88b3df630e54959"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">clutchlog::fmt::fmt</a></div><div class="ttdeci">fmt()</div><div class="ttdoc">Empty constructor, only useful for a no-op formatter.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00710">clutchlog.h:710</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ad1cfa9945c3f7f98fe8ce724c627d0d6"><div class="ttname"><a href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6">clutchlog::style</a></div><div class="ttdeci">void style(level stage, fmt style)</div><div class="ttdoc">Set the style (color and typo) of the given log level, passing a fmt instance.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01113">clutchlog.h:1113</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a3cb0e4f43a4cadf1966001ad7c9861f4"><div class="ttname"><a href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog::threshold</a></div><div class="ttdeci">void threshold(level l)</div><div class="ttdoc">Set the log level (below which logs are not printed) with an identifier.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01065">clutchlog.h:1065</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ab45287cc9c14217904a13aff49573732"><div class="ttname"><a href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">clutchlog::threshold</a></div><div class="ttdeci">level threshold() const</div><div class="ttdoc">Get the log level below which logs are not printed.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01069">clutchlog.h:1069</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_a96d7161ef1e7cc631ae670cd3f364603"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#a96d7161ef1e7cc631ae670cd3f364603">clutchlog::fmt::color::is_set</a></div><div class="ttdeci">virtual bool is_set() const =0</div><div class="ttdoc">Should return true if the underying representation encodes an existing color.</div></div>
<div class="ttc" id="aclassclutchlog_html_a08e8a817a75a4e9f0159231c941e0dae"><div class="ttname"><a href="classclutchlog.html#a08e8a817a75a4e9f0159231c941e0dae">clutchlog::_level_short</a></div><div class="ttdeci">std::map&lt; level, std::string &gt; _level_short</div><div class="ttdoc">dictionary of level identifier to their 4-letters representation.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00923">clutchlog.h:923</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a10fd25a1b51c8c95bd6d876ce1b4b928"><div class="ttname"><a href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">clutchlog::level</a></div><div class="ttdeci">level</div><div class="ttdoc">Available log levels.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00313">clutchlog.h:313</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html_a1b68065b35141c018b33c3f2c45f5726"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html#a1b68065b35141c018b33c3f2c45f5726">clutchlog::fmt::color_256::color_256</a></div><div class="ttdeci">color_256(ground t, const short i)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00538">clutchlog.h:538</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html_aaae6106a11eddade981172324a43df68"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html#aaae6106a11eddade981172324a43df68">clutchlog::fmt::color_256::print_on</a></div><div class="ttdeci">std::ostream &amp; print_on(std::ostream &amp;os) const</div><div class="ttdoc">Print the color index on the given stream.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00544">clutchlog.h:544</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_aea10e881fb9b570267f5751fb67c4282"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#aea10e881fb9b570267f5751fb67c4282">clutchlog::fmt::color_16M::color_16M</a></div><div class="ttdeci">color_16M(ground t)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00595">clutchlog.h:595</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ac95630bfe9cf547d2b7c4b3430eaedc1"><div class="ttname"><a href="classclutchlog.html#ac95630bfe9cf547d2b7c4b3430eaedc1">clutchlog::default_hfill_max</a></div><div class="ttdeci">static size_t default_hfill_max</div><div class="ttdoc">Default maximum width (number of characters) for which to fill for right-aligning the right part of m...</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00285">clutchlog.h:285</a></div></div>
<div class="ttc" id="aclassclutchlog_html_acbb50f6306ebb3c8b0d1a52e7f327416"><div class="ttname"><a href="classclutchlog.html#acbb50f6306ebb3c8b0d1a52e7f327416">clutchlog::funchash_styles</a></div><div class="ttdeci">void funchash_styles(std::vector&lt; fmt &gt; styles)</div><div class="ttdoc">Set the candidate styles for value-dependant function name formatting.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01053">clutchlog.h:1053</a></div></div>
<div class="ttc" id="astructclutchlog_1_1scope__t_html_a0f1d865ffcf17f215e5559cdd2690572"><div class="ttname"><a href="structclutchlog_1_1scope__t.html#a0f1d865ffcf17f215e5559cdd2690572">clutchlog::scope_t::scope_t</a></div><div class="ttdeci">scope_t()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01140">clutchlog.h:1140</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a130c4f12eacbd2028102838fe16b734e"><div class="ttname"><a href="classclutchlog.html#a130c4f12eacbd2028102838fe16b734e">clutchlog::_in_func</a></div><div class="ttdeci">std::regex _in_func</div><div class="ttdoc">Current function location filter.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00953">clutchlog.h:953</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a0c4ac57601e6f8d146fd5cc060968ecc"><div class="ttname"><a href="classclutchlog.html#a0c4ac57601e6f8d146fd5cc060968ecc">clutchlog::default_format</a></div><div class="ttdeci">static std::string default_format</div><div class="ttdoc">Default format of the messages.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00223">clutchlog.h:223</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__16_m_html_ace018922ae99f32b48bf5cacaec91501"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__16_m.html#ace018922ae99f32b48bf5cacaec91501">clutchlog::fmt::bg_16M::bg_16M</a></div><div class="ttdeci">bg_16M(short r, short g, short b)</div><div class="ttdoc">Numeric triplet constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00689">clutchlog.h:689</a></div></div>
<div class="ttc" id="aclassclutchlog_html_acfaceb77da01503b432644a3efaee4fa"><div class="ttname"><a href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a></div><div class="ttdeci">static clutchlog &amp; logger()</div><div class="ttdoc">Get the logger instance.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00306">clutchlog.h:306</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__16_m_html"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__16_m.html">clutchlog::fmt::fg_16M</a></div><div class="ttdoc">Foreground in 256-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00647">clutchlog.h:647</a></div></div>
<div class="ttc" id="agroup__colors256__16_m_html_gad98fbe84ef338ded8425d56955825a2c"><div class="ttname"><a href="group__colors256__16_m.html#gad98fbe84ef338ded8425d56955825a2c">clutchlog::fmt::fore_256</a></div><div class="ttdeci">clutchlog::fmt::fg_256 fore_256</div><div class="ttdoc">Current foreground in 256-colors mode.</div></div>
<div class="ttc" id="agroup__colors16_html_ga8307a848fcf9ed929435b3e1f2b53401"><div class="ttname"><a href="group__colors16.html#ga8307a848fcf9ed929435b3e1f2b53401">clutchlog::fmt::fore</a></div><div class="ttdeci">enum clutchlog::fmt::fg fore</div><div class="ttdoc">Foreground color.</div></div>
<div class="ttc" id="aclassclutchlog_html_ae17db5808155fbc6dc48b4727d0c3abf"><div class="ttname"><a href="classclutchlog.html#ae17db5808155fbc6dc48b4727d0c3abf">clutchlog::filehash_styles</a></div><div class="ttdeci">void filehash_styles(std::vector&lt; fmt &gt; styles)</div><div class="ttdoc">Set the candidate styles for value-dependant file name formatting.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01045">clutchlog.h:1045</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_a3fd18c290567bd5c4971663a1aed12ae"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#a3fd18c290567bd5c4971663a1aed12ae">clutchlog::fmt::color::type</a></div><div class="ttdeci">enum clutchlog::fmt::color::ground type</div><div class="ttdoc">Type of color (foreground or background).</div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html"><div class="ttname"><a href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></div><div class="ttdoc">Color and style formatter for ANSI terminal escape sequences.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00379">clutchlog.h:379</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html_a8e0b13d6bad87c83c3465524a5d33988"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html#a8e0b13d6bad87c83c3465524a5d33988">clutchlog::fmt::color_256::index</a></div><div class="ttdeci">short index</div><div class="ttdoc">The encoded color index in 4-bits ANSI.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00526">clutchlog.h:526</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__256_html_a0d244a542b6b98a373f8b1f9e92a6a90"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__256.html#a0d244a542b6b98a373f8b1f9e92a6a90">clutchlog::fmt::bg_256::bg_256</a></div><div class="ttdeci">bg_256()</div><div class="ttdoc">Empty constructor: no color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00571">clutchlog.h:571</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ad32b5a0274dc03ee0004f67ba58b2447"><div class="ttname"><a href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">clutchlog::func</a></div><div class="ttdeci">void func(std::string func)</div><div class="ttdoc">Set the regular expression filtering the function location.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01090">clutchlog.h:1090</a></div></div>
<div class="ttc" id="aclassclutchlog_html_afc53dbca51d0e2322a21899d0c571a80"><div class="ttname"><a href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">clutchlog::format</a></div><div class="ttdeci">std::string format() const</div><div class="ttdoc">Get the template string.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00986">clutchlog.h:986</a></div></div>
<div class="ttc" id="aclassclutchlog_html_aded03528f34d9000f618419c482c5042"><div class="ttname"><a href="classclutchlog.html#aded03528f34d9000f618419c482c5042">clutchlog::_in_file</a></div><div class="ttdeci">std::regex _in_file</div><div class="ttdoc">Current file location filter.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00951">clutchlog.h:951</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ac3ec55057b9c734b66f169bf43dbd591"><div class="ttname"><a href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">clutchlog::style</a></div><div class="ttdeci">void style(level stage, FMT... styles)</div><div class="ttdoc">Set the style (color and typo) of the given log level.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01111">clutchlog.h:1111</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__256_html_a096d302be7373acaaf225644683408bd"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__256.html#a096d302be7373acaaf225644683408bd">clutchlog::fmt::bg_256::bg_256</a></div><div class="ttdeci">bg_256(const bg &amp;)</div><div class="ttdoc">Conversion constructor from 16-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00581">clutchlog.h:581</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__16_m_html_a984525f33eb86b7f8b3e5d0874611194"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__16_m.html#a984525f33eb86b7f8b3e5d0874611194">clutchlog::fmt::fg_16M::fg_16M</a></div><div class="ttdeci">fg_16M()</div><div class="ttdoc">Empty constructor: no color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00649">clutchlog.h:649</a></div></div>
<div class="ttc" id="aclassclutchlog_html_acebed8c9df9204f22bf8488e62e1cedd"><div class="ttname"><a href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">clutchlog::level_of</a></div><div class="ttdeci">level level_of(const std::string name)</div><div class="ttdoc">Return the log level tag corresponding to the given pre-configured name.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01077">clutchlog.h:1077</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a82b9375728af2d962831a743d95f4ae7"><div class="ttname"><a href="classclutchlog.html#a82b9375728af2d962831a743d95f4ae7">clutchlog::filename</a></div><div class="ttdeci">void filename(filename f)</div><div class="ttdoc">Sets the file naming scheme. */.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01118">clutchlog.h:1118</a></div></div>
<div class="ttc" id="aclassclutchlog_html_ab1c377a376e6772fe1746ff7147c125f"><div class="ttname"><a href="classclutchlog.html#ab1c377a376e6772fe1746ff7147c125f">clutchlog::_level_word</a></div><div class="ttdeci">const std::map&lt; level, std::string &gt; _level_word</div><div class="ttdoc">Dictionary of level identifier to their string representation.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00919">clutchlog.h:919</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_afeaedd18298498d1dcfcc15f5f17ac3c"><div class="ttname"><a href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">clutchlog::fmt::operator()</a></div><div class="ttdeci">std::string operator()(const std::string &amp;msg) const</div><div class="ttdoc">Format the given string with the currently encoded format.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00808">clutchlog.h:808</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_a36d9cf42044fec34b7858142d86137d3"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#a36d9cf42044fec34b7858142d86137d3">clutchlog::fmt::color_16M::color_16M</a></div><div class="ttdeci">color_16M(ground t, short r, short g, short b)</div><div class="ttdoc">Numeric triplet constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00604">clutchlog.h:604</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_a674910195e7bb14d78f0cf56c308a47e"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#a674910195e7bb14d78f0cf56c308a47e">clutchlog::fmt::color_16M::print_on</a></div><div class="ttdeci">std::ostream &amp; print_on(std::ostream &amp;os) const</div><div class="ttdoc">Print the color RGB triplet on the given stream.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00639">clutchlog.h:639</a></div></div>
<div class="ttc" id="agroup__colors16_html_ga1cf3e27e4041250ffea0a6d58010da1e"><div class="ttname"><a href="group__colors16.html#ga1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt::bg</a></div><div class="ttdeci">bg</div><div class="ttdoc">Background color codes.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00424">clutchlog.h:424</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga524c16f280d92ee8ab683162c9ce01fa"><div class="ttname"><a href="group___default_config.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a></div><div class="ttdeci">#define CLUTCHLOG_DEFAULT_FORMAT</div><div class="ttdoc">Compile-time default format of the messages (debug mode: with absolute location).</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00208">clutchlog.h:208</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a41757198b29862832a14472a9e5e24c6"><div class="ttname"><a href="classclutchlog.html#a41757198b29862832a14472a9e5e24c6">clutchlog::_in_line</a></div><div class="ttdeci">std::regex _in_line</div><div class="ttdoc">Current line location filter.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00955">clutchlog.h:955</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__256_html_a6df3d848db0e55c79709fb4565cbfd59"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__256.html#a6df3d848db0e55c79709fb4565cbfd59">clutchlog::fmt::fg_256::fg_256</a></div><div class="ttdeci">fg_256(const short f)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00559">clutchlog.h:559</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a4d0b3c87ba935addf3581b000c0d7502a7a3c32a8827eb17435511b4c7a429749"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a7a3c32a8827eb17435511b4c7a429749">clutchlog::fmt::ansi::colors_256</a></div><div class="ttdeci">@ colors_256</div><div class="ttdoc">256 colors mode.</div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a0aa57cdd56ccc79c7750921ab534b205"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a0aa57cdd56ccc79c7750921ab534b205">clutchlog::fmt::mode</a></div><div class="ttdeci">enum clutchlog::fmt::ansi mode</div><div class="ttdoc">Current ANSI color mode.</div></div>
<div class="ttc" id="aclassclutchlog_html_ae90d5a1a428587ad67b38b2ea4ca9fa2"><div class="ttname"><a href="classclutchlog.html#ae90d5a1a428587ad67b38b2ea4ca9fa2">clutchlog::replace</a></div><div class="ttdeci">std::string replace(const std::string &amp;form, const std::string &amp;mark, const size_t tag) const</div><div class="ttdoc">Replace mark by tag in form, converting tag to its string representation first.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01268">clutchlog.h:1268</a></div></div>
<div class="ttc" id="aclassclutchlog_html_aa8d0a569ed3623ce36c5e567ec2d1ad5"><div class="ttname"><a href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">clutchlog::format_comment</a></div><div class="ttdeci">std::string format_comment() const</div><div class="ttdoc">Get the template string for dumps.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00991">clutchlog.h:991</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__256_html_a97c241e9f80c63d269953cc525a72c7a"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__256.html#a97c241e9f80c63d269953cc525a72c7a">clutchlog::fmt::fg_256::fg_256</a></div><div class="ttdeci">fg_256()</div><div class="ttdoc">Empty constructor: no color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00554">clutchlog.h:554</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a4d0b3c87ba935addf3581b000c0d7502a1844e5aae3a3eefc500c545e3c35bcfa"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502a1844e5aae3a3eefc500c545e3c35bcfa">clutchlog::fmt::ansi::colors_16M</a></div><div class="ttdeci">@ colors_16M</div><div class="ttdoc">16 millions (&quot;true&quot;) colors mode.</div></div>
<div class="ttc" id="aclassclutchlog_html_a5f4ddb57ce42e8be86a7c7d269f7bae5"><div class="ttname"><a href="classclutchlog.html#a5f4ddb57ce42e8be86a7c7d269f7bae5">clutchlog::_format_dump</a></div><div class="ttdeci">std::string _format_dump</div><div class="ttdoc">Current format of the file output.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00929">clutchlog.h:929</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga54d29e956575e1c731eab5406135c5df"><div class="ttname"><a href="group___default_config.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a></div><div class="ttdeci">#define CLUTCHDUMP_DEFAULT_SEP</div><div class="ttdoc">Compile-time default item separator for dump.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00249">clutchlog.h:249</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__256_html_a83c663b1a9f00ba7ba7649c9c5605fad"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__256.html#a83c663b1a9f00ba7ba7649c9c5605fad">clutchlog::fmt::bg_256::bg_256</a></div><div class="ttdeci">bg_256(const short b)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00576">clutchlog.h:576</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_ad4d10c015b3af3cc10d1cf40fe38e4f0"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#ad4d10c015b3af3cc10d1cf40fe38e4f0">clutchlog::fmt::color::ground</a></div><div class="ttdeci">ground</div><div class="ttdoc">Codes for representing foreground or background.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00487">clutchlog.h:487</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a822062ffa857bd16ff488f9c749ff20e"><div class="ttname"><a href="classclutchlog.html#a822062ffa857bd16ff488f9c749ff20e">clutchlog::filename</a></div><div class="ttdeci">filename</div><div class="ttdoc">Available filename rendering methods.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00316">clutchlog.h:316</a></div></div>
<div class="ttc" id="astructclutchlog_1_1scope__t_html"><div class="ttname"><a href="structclutchlog_1_1scope__t.html">clutchlog::scope_t</a></div><div class="ttdoc">Structure holding a location matching.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01128">clutchlog.h:1128</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga4eda0c1bfded5df89351b8ce8b9c2805"><div class="ttname"><a href="group___default_config.html#ga4eda0c1bfded5df89351b8ce8b9c2805">CLUTCHLOG_DEFAULT_HFILL_MARK</a></div><div class="ttdeci">#define CLUTCHLOG_DEFAULT_HFILL_MARK</div><div class="ttdoc">Character used as a filling for right-align the right part of messages with &quot;{hfill}&quot;.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00270">clutchlog.h:270</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a0b607e343b6813b99eafca1fdfec9cd0"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt::print_on</a></div><div class="ttdeci">std::ostream &amp; print_on(std::ostream &amp;os) const</div><div class="ttdoc">Print the currently encoded format escape code on the given output stream.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00759">clutchlog.h:759</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__256_html_ad79557682cec1c053dda258581972111"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__256.html#ad79557682cec1c053dda258581972111">clutchlog::fmt::color_256::is_set</a></div><div class="ttdeci">bool is_set() const</div><div class="ttdoc">Returns true if the underying representation encodes an existing color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00541">clutchlog.h:541</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a1896f6c4b8597e3e76ff93970bd85167"><div class="ttname"><a href="classclutchlog.html#a1896f6c4b8597e3e76ff93970bd85167">clutchlog::_out</a></div><div class="ttdeci">std::ostream * _out</div><div class="ttdoc">Standard output.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00941">clutchlog.h:941</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a6c6ab42a1df147e6c2d115bc36ec8266"><div class="ttname"><a href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">clutchlog::out</a></div><div class="ttdeci">std::ostream &amp; out()</div><div class="ttdoc">Get the output stream on which to print.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00996">clutchlog.h:996</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a7a7738eaad114bfa870121412fe23ad9"><div class="ttname"><a href="classclutchlog.html#a7a7738eaad114bfa870121412fe23ad9">clutchlog::threshold</a></div><div class="ttdeci">void threshold(const std::string &amp;l)</div><div class="ttdoc">Set the log level (below which logs are not printed) with a string.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01067">clutchlog.h:1067</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_aa75e958436afe333924b6db3e5f0821f"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#aa75e958436afe333924b6db3e5f0821f">clutchlog::fmt::color::print_on</a></div><div class="ttdeci">virtual std::ostream &amp; print_on(std::ostream &amp;os) const =0</div><div class="ttdoc">Should print the underlying representation on the given stream.</div></div>
<div class="ttc" id="aclassclutchlog_html_aff3aa09fb60f7d6dc688c028d3834d8a"><div class="ttname"><a href="classclutchlog.html#aff3aa09fb60f7d6dc688c028d3834d8a">clutchlog::levels</a></div><div class="ttdeci">const std::map&lt; std::string, level &gt; &amp; levels() const</div><div class="ttdoc">Get the map of available log levels string representations toward their identifier....</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01071">clutchlog.h:1071</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a356df86455409193792b6ed550dfd09e"><div class="ttname"><a href="classclutchlog.html#a356df86455409193792b6ed550dfd09e">clutchlog::_strip_calls</a></div><div class="ttdeci">size_t _strip_calls</div><div class="ttdoc">Current number of call stack levels to remove from depth display.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00917">clutchlog.h:917</a></div></div>
<div class="ttc" id="astructclutchlog_1_1scope__t_html_adcca6846ff90d436c61861db85917744"><div class="ttname"><a href="structclutchlog_1_1scope__t.html#adcca6846ff90d436c61861db85917744">clutchlog::scope_t::stage</a></div><div class="ttdeci">level stage</div><div class="ttdoc">Current log level.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01132">clutchlog.h:1132</a></div></div>
<div class="ttc" id="astructclutchlog_1_1scope__t_html_a7918e55cd3bac1bd30c69b8c711387ff"><div class="ttname"><a href="structclutchlog_1_1scope__t.html#a7918e55cd3bac1bd30c69b8c711387ff">clutchlog::scope_t::there</a></div><div class="ttdeci">bool there</div><div class="ttdoc">Location is compatible.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01138">clutchlog.h:1138</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__16_m_html_abc768d6b7c2139c14f210755108006d3"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__16_m.html#abc768d6b7c2139c14f210755108006d3">clutchlog::fmt::fg_16M::fg_16M</a></div><div class="ttdeci">fg_16M(const std::string &amp;srgb)</div><div class="ttdoc">Hex triplet string constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00667">clutchlog.h:667</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga98f30d814d4913a8a7c93a8793f49adf"><div class="ttname"><a href="group___default_config.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a></div><div class="ttdeci">#define CLUTCHLOG_STRIP_CALLS</div><div class="ttdoc">Compile-time number of call stack levels to remove from depth display by default.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00263">clutchlog.h:263</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a96849ba427feac3a2eeaa1165e3845da"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">clutchlog::fmt::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const fmt &amp;fmt)</div><div class="ttdoc">Output stream overload.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00793">clutchlog.h:793</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a14c19e17c54d6353ba34c0dc3371094a"><div class="ttname"><a href="classclutchlog.html#a14c19e17c54d6353ba34c0dc3371094a">clutchlog::log</a></div><div class="ttdeci">void log(const level &amp;stage, const std::string &amp;what, const std::string &amp;file, const std::string &amp;func, const size_t line, const size_t depth_delta=0) const</div><div class="ttdoc">Print a log message IF the location matches the given one.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01412">clutchlog.h:1412</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__16_m_html_a68f8cb4ab78a1cfb3b7b8e1e95bee11d"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__16_m.html#a68f8cb4ab78a1cfb3b7b8e1e95bee11d">clutchlog::fmt::bg_16M::bg_16M</a></div><div class="ttdeci">bg_16M(const bg &amp;)</div><div class="ttdoc">Conversion constructor from 16-colors mode.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00702">clutchlog.h:702</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1bg__16_m_html_a363c314ab6a8aa22951b5500d7a78ad0"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1bg__16_m.html#a363c314ab6a8aa22951b5500d7a78ad0">clutchlog::fmt::bg_16M::bg_16M</a></div><div class="ttdeci">bg_16M()</div><div class="ttdoc">Empty constructor: no color.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00679">clutchlog.h:679</a></div></div>
<div class="ttc" id="aclassclutchlog_html_abd4625bf211bfbaa30d9c126fa3d7888"><div class="ttname"><a href="classclutchlog.html#abd4625bf211bfbaa30d9c126fa3d7888">clutchlog::_word_level</a></div><div class="ttdeci">std::map&lt; std::string, level &gt; _word_level</div><div class="ttdoc">Dictionary of level string to their identifier.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00921">clutchlog.h:921</a></div></div>
<div class="ttc" id="aclassclutchlog_html_aeb60684c89bcef5aa9273075c21cc993"><div class="ttname"><a href="classclutchlog.html#aeb60684c89bcef5aa9273075c21cc993">clutchlog::_stage</a></div><div class="ttdeci">level _stage</div><div class="ttdoc">Current log level.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00949">clutchlog.h:949</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a4831f44fd5ade102e57320632095934d"><div class="ttname"><a href="classclutchlog.html#a4831f44fd5ade102e57320632095934d">clutchlog::style</a></div><div class="ttdeci">fmt style(level stage) const</div><div class="ttdoc">Get the configured fmt instance of the given log level.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01115">clutchlog.h:1115</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a932f47b78fb7b10590d5613a1c4eab89"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt::typo</a></div><div class="ttdeci">typo</div><div class="ttdoc">Typographic style codes.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00392">clutchlog.h:392</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a6666106b9e5c239b6ae5e0d1091648e3"><div class="ttname"><a href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">clutchlog::location</a></div><div class="ttdeci">void location(const std::string &amp;in_file, const std::string &amp;in_function=&quot;.*&quot;, const std::string &amp;in_line=&quot;.*&quot;)</div><div class="ttdoc">Set the regular expressions filtering the location.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l01095">clutchlog.h:1095</a></div></div>
<div class="ttc" id="aclutchlog_8h_html_a6bbcf13504687db4dbe0474931d867fb"><div class="ttname"><a href="clutchlog_8h.html#a6bbcf13504687db4dbe0474931d867fb">CLUTCHLOG_HAVE_UNIX_SYSINFO</a></div><div class="ttdeci">#define CLUTCHLOG_HAVE_UNIX_SYSINFO</div><div class="ttdoc">True if POSIX headers necessary for stack depth management are available.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00033">clutchlog.h:33</a></div></div>
<div class="ttc" id="aclassclutchlog_html_a2a334e009533744b52f01ef240a59e9d"><div class="ttname"><a href="classclutchlog.html#a2a334e009533744b52f01ef240a59e9d">clutchlog::_filehash_fmts</a></div><div class="ttdeci">std::vector&lt; fmt &gt; _filehash_fmts</div><div class="ttdoc">List of candidate format objects for value-dependant file name styling.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00958">clutchlog.h:958</a></div></div>
<div class="ttc" id="aclassclutchlog_html"><div class="ttname"><a href="classclutchlog.html">clutchlog</a></div><div class="ttdoc">The single class which holds everything.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00187">clutchlog.h:187</a></div></div>
<div class="ttc" id="aclassclutchlog_1_1fmt_html_a4d0b3c87ba935addf3581b000c0d7502"><div class="ttname"><a href="classclutchlog_1_1fmt.html#a4d0b3c87ba935addf3581b000c0d7502">clutchlog::fmt::ansi</a></div><div class="ttdeci">ansi</div><div class="ttdoc">ANSI code configuring the available number of colors.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00382">clutchlog.h:382</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1fg__16_m_html_a531b717b8d78a0a5929fa90d0a01d7e5"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1fg__16_m.html#a531b717b8d78a0a5929fa90d0a01d7e5">clutchlog::fmt::fg_16M::fg_16M</a></div><div class="ttdeci">fg_16M(short r, short g, short b)</div><div class="ttdoc">Numeric triplet constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00659">clutchlog.h:659</a></div></div>
<div class="ttc" id="agroup__colors16_html_ga4662a3ec3577c6a575a2c734636ed8a0"><div class="ttname"><a href="group__colors16.html#ga4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt::fg</a></div><div class="ttdeci">fg</div><div class="ttdoc">Foreground color codes.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00403">clutchlog.h:403</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color__16_m_html_a19e1517a9afb75a4e6224f718ed11c61"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color__16_m.html#a19e1517a9afb75a4e6224f718ed11c61">clutchlog::fmt::color_16M::red</a></div><div class="ttdeci">short red</div><div class="ttdoc">The encoded RGB indices.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00590">clutchlog.h:590</a></div></div>
<div class="ttc" id="agroup___default_config_html_ga27b613c6727857a7cbcd0165d862034e"><div class="ttname"><a href="group___default_config.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a></div><div class="ttdeci">#define CLUTCHDUMP_DEFAULT_FORMAT</div><div class="ttdoc">Compile-time default format of the comment line in file dump.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00231">clutchlog.h:231</a></div></div>
<div class="ttc" id="astructclutchlog_1_1fmt_1_1color_html_a741d0165287350d8fcacb1f472ce5dac"><div class="ttname"><a href="structclutchlog_1_1fmt_1_1color.html#a741d0165287350d8fcacb1f472ce5dac">clutchlog::fmt::color::color</a></div><div class="ttdeci">color(ansi a, ground g)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="clutchlog_8h_source.html#l00497">clutchlog.h:497</a></div></div>
<div class="ttc" id="agroup__colors256__16_m_html_ga1d687af385957846034568c3a62d4ef0"><div class="ttname"><a href="group__colors256__16_m.html#ga1d687af385957846034568c3a62d4ef0">clutchlog::fmt::back_256</a></div><div class="ttdeci">clutchlog::fmt::bg_256 back_256</div><div class="ttdoc">Current background in 256-colors mode.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_c318bd5cf14aaa5601e6029e0b5b4048.html">clutchlog</a></li><li class="navelem"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>