Files
MeanField_SERiF/docs/xml/warning_8hpp.xml

123 lines
9.8 KiB
XML
Raw Normal View History

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="warning_8hpp" kind="file" language="C++">
<compoundname>warning.hpp</compoundname>
<includes local="no">string_view</includes>
<includes local="no">format</includes>
<includes local="no">print</includes>
<includes local="no">cstdio</includes>
<includes refid="colors_8hpp" local="yes">serif/utils/misc/terminal/colors.hpp</includes>
<includedby refid="policy_8cpp" local="yes">src/lib/serif/discretization/quadrature/policy.cpp</includedby>
<incdepgraph>
<node id="6">
<label>serif/utils/misc/terminal/colors.hpp</label>
<link refid="colors_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/utils/warnings/warning.hpp</label>
<link refid="warning_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="5">
<label>cstdio</label>
</node>
<node id="7">
<label>cstdlib</label>
</node>
<node id="3">
<label>format</label>
</node>
<node id="4">
<label>print</label>
</node>
<node id="2">
<label>string_view</label>
</node>
<node id="9">
<label>unistd.h</label>
</node>
<node id="8">
<label>utility</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="1">
<label>src/include/serif/utils/warnings/warning.hpp</label>
<link refid="warning_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="2">
<label>src/lib/serif/discretization/quadrature/policy.cpp</label>
<link refid="policy_8cpp"/>
</node>
</invincdepgraph>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
<innernamespace refid="namespaceserif_1_1utils_1_1warnings">serif::utils::warnings</innernamespace>
<sectiondef kind="define">
<memberdef kind="define" id="warning_8hpp_1a807b889b00653a54f0ed6fd492fd021b" prot="public" static="no">
<name>DISABLE_WARNING</name>
<initializer>0</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/utils/warnings/warning.hpp" line="4" column="9" bodyfile="src/include/serif/utils/warnings/warning.hpp" bodystart="4" bodyend="-1"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="comment">//<sp/>TODO:<sp/>Sort<sp/>out<sp/>how<sp/>to<sp/>get<sp/>this<sp/>from<sp/>a<sp/>meson<sp/>option<sp/>and<sp/>ideally<sp/>not<sp/>use<sp/>any<sp/>macros<sp/>or<sp/>at<sp/>least<sp/>resolve<sp/>them<sp/>to<sp/>type<sp/>safe<sp/>compile<sp/>time<sp/>values</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DISABLE_WARNING<sp/>0</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string_view&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;format&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;print&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cstdio&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="colors_8hpp" kindref="compound">serif/utils/misc/terminal/colors.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="comment">//<sp/>We<sp/>may<sp/>want<sp/>to<sp/>do<sp/>a<sp/>similar<sp/>thing<sp/>to<sp/>what<sp/>we<sp/>did<sp/>with<sp/>errors<sp/>and<sp/>introduce<sp/>a<sp/>SERiFWarningCode<sp/>enum<sp/>and<sp/>a<sp/>serif_warning<sp/>function<sp/>that<sp/>takes<sp/>a<sp/>warning<sp/>code<sp/>and<sp/>a<sp/>message.<sp/>This<sp/>would<sp/>allow<sp/>us<sp/>to<sp/>have<sp/>more<sp/>structured<sp/>warnings<sp/>and<sp/>potentially<sp/>allow<sp/>users<sp/>to<sp/>filter<sp/>or<sp/>handle<sp/>warnings<sp/>based<sp/>on<sp/>their<sp/>codes.<sp/>However,<sp/>for<sp/>now,<sp/>we<sp/>will<sp/>keep<sp/>it<sp/>simple<sp/>with<sp/>just<sp/>a<sp/>message.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight></codeline>
<codeline lineno="14" refid="namespaceserif_1_1utils_1_1warnings" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1warnings" kindref="compound">serif::utils::warnings</ref><sp/>{</highlight></codeline>
<codeline lineno="15"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1warnings_1a3b2e9ed1cc2f2099882c8488b0309def" kindref="member">serif_warning</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string_view<sp/>message,<sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="16"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(<ref refid="warning_8hpp_1a807b889b00653a54f0ed6fd492fd021b" kindref="member">DISABLE_WARNING</ref><sp/>==<sp/>0)<sp/>{<sp/></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>a<sp/>constexpr<sp/>so<sp/>that<sp/>the<sp/>compiler<sp/>can<sp/>optimize<sp/>out<sp/>the<sp/>warnings<sp/>to<sp/>a<sp/>no-op</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="namespaceserif_1_1utils_1_1misc_1_1terminal_1ad5428c24ef31aae1a0e6ec5eaba709d2" kindref="member">misc::terminal::supports_ansi</ref>(stderr))<sp/>{</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::println(stderr,<sp/></highlight><highlight class="stringliteral">&quot;{}{}{}:<sp/>{}&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1misc_1_1terminal_1a4da78bc6a845e48ecf9f9f729a8c2c0d" kindref="member">misc::terminal::a_yellow</ref>,<sp/></highlight><highlight class="stringliteral">&quot;Warning&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1misc_1_1terminal_1a625ca7dc65f37b1135e41a9d5a625f87" kindref="member">misc::terminal::a_reset</ref>,<sp/>std::vformat(message,<sp/>std::make_format_args(args...)));</highlight></codeline>
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::println(stderr,<sp/></highlight><highlight class="stringliteral">&quot;Warning:<sp/>{}&quot;</highlight><highlight class="normal">,<sp/>std::vformat(message,<sp/>std::make_format_args(args...)));</highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="23"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="24"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/utils/warnings/warning.hpp"/>
</compounddef>
</doxygen>