2021-06-08 14:02:49 +02:00
<!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 > Leonetienne/Hazelnupp: Hazelnupp/CmdArgsInterface.cpp 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 = "search/search.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "search/searchdata.js" ></ script >
< script type = "text/javascript" src = "search/search.js" ></ script >
< script type = "text/x-mathjax-config" >
MathJax . Hub . Config ({
extensions : [ "tex2jax.js" ],
jax : [ "input/TeX" , "output/HTML-CSS" ],
});
</ script >
< script type = "text/javascript" async = "async" src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" ></ script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" />
</ head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td id = "projectlogo" >< img alt = "Logo" src = "nupp_small.png" /></ td >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > Leonetienne/Hazelnupp
</ div >
< div id = "projectbrief" > Simple, easy to use, command line parameter interface</ 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&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&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 >
<!-- 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 id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" >< a class = "el" href = "dir_0202e1e26df2e040f4dc3d434eecf04c.html" > Hazelnupp</ a ></ li > </ ul >
</ div >
</ div > <!-- top -->
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > CmdArgsInterface.cpp</ div > </ div >
</ div > <!--header-->
< div class = "contents" >
< a href = "CmdArgsInterface_8cpp.html" > Go to the documentation of this file.</ a >< div class = "fragment" >< div class = "line" >< a name = "l00001" ></ a >< span class = "lineno" > 1</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "CmdArgsInterface_8h.html" > CmdArgsInterface.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00002" ></ a >< span class = "lineno" > 2</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "VoidValue_8h.html" > VoidValue.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00003" ></ a >< span class = "lineno" > 3</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "IntValue_8h.html" > IntValue.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00004" ></ a >< span class = "lineno" > 4</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "FloatValue_8h.html" > FloatValue.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00005" ></ a >< span class = "lineno" > 5</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "StringValue_8h.html" > StringValue.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00006" ></ a >< span class = "lineno" > 6</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "ListValue_8h.html" > ListValue.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00007" ></ a >< span class = "lineno" > 7</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "HazelnuppException_8h.html" > HazelnuppException.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00008" ></ a >< span class = "lineno" > 8</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "Placeholders_8h.html" > Placeholders.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00009" ></ a >< span class = "lineno" > 9</ span >   < span class = "preprocessor" > #include " < a class = "code" href = "StringTools_8h.html" > StringTools.h</ a > " </ span ></ div >
< div class = "line" >< a name = "l00010" ></ a >< span class = "lineno" > 10</ span >   < span class = "preprocessor" > #include < iostream> </ span ></ div >
< div class = "line" >< a name = "l00011" ></ a >< span class = "lineno" > 11</ span >   < span class = "preprocessor" > #include < cstdlib> </ span ></ div >
< div class = "line" >< a name = "l00012" ></ a >< span class = "lineno" > 12</ span >   </ div >
< div class = "line" >< a name = "l00013" ></ a >< span class = "lineno" > 13</ span >   < span class = "keyword" > using namespace </ span >< a class = "code" href = "namespaceHazelnp.html" > Hazelnp</ a > ;</ div >
< div class = "line" >< a name = "l00014" ></ a >< span class = "lineno" > 14</ span >   </ div >
< div class = "line" >< a name = "l00015" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212" > 15</ a ></ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212" > CmdArgsInterface::CmdArgsInterface</ a > ()</ div >
< div class = "line" >< a name = "l00016" ></ a >< span class = "lineno" > 16</ span >   {</ div >
< div class = "line" >< a name = "l00017" ></ a >< span class = "lineno" > 17</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00018" ></ a >< span class = "lineno" > 18</ span >   }</ div >
< div class = "line" >< a name = "l00019" ></ a >< span class = "lineno" > 19</ span >   </ div >
< div class = "line" >< a name = "l00020" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#ad79ff83ead06900eb7b45d6c563703d9" > 20</ a ></ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212" > CmdArgsInterface::CmdArgsInterface</ a > (< span class = "keyword" > const</ span > < span class = "keywordtype" > int</ span > argc, < span class = "keyword" > const</ span > < span class = "keywordtype" > char</ span > * < span class = "keyword" > const</ span > * argv)</ div >
< div class = "line" >< a name = "l00021" ></ a >< span class = "lineno" > 21</ span >   {</ div >
< div class = "line" >< a name = "l00022" ></ a >< span class = "lineno" > 22</ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19" > Parse</ a > (argc, argv);</ div >
< div class = "line" >< a name = "l00023" ></ a >< span class = "lineno" > 23</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00024" ></ a >< span class = "lineno" > 24</ span >   }</ div >
< div class = "line" >< a name = "l00025" ></ a >< span class = "lineno" > 25</ span >   </ div >
< div class = "line" >< a name = "l00026" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#aadc75b3b6c9662cfbd4a936468d50466" > 26</ a ></ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#aadc75b3b6c9662cfbd4a936468d50466" > CmdArgsInterface::~CmdArgsInterface</ a > ()</ div >
< div class = "line" >< a name = "l00027" ></ a >< span class = "lineno" > 27</ span >   {</ div >
< div class = "line" >< a name = "l00028" ></ a >< span class = "lineno" > 28</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > auto</ span > & it : parameters)</ div >
< div class = "line" >< a name = "l00029" ></ a >< span class = "lineno" > 29</ span >   < span class = "keyword" > delete</ span > it.second;</ div >
< div class = "line" >< a name = "l00030" ></ a >< span class = "lineno" > 30</ span >   </ div >
< div class = "line" >< a name = "l00031" ></ a >< span class = "lineno" > 31</ span >   parameters.clear();</ div >
< div class = "line" >< a name = "l00032" ></ a >< span class = "lineno" > 32</ span >   </ div >
< div class = "line" >< a name = "l00033" ></ a >< span class = "lineno" > 33</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00034" ></ a >< span class = "lineno" > 34</ span >   }</ div >
< div class = "line" >< a name = "l00035" ></ a >< span class = "lineno" > 35</ span >   </ div >
< div class = "line" >< a name = "l00036" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19" > 36</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19" > CmdArgsInterface::Parse</ a > (< span class = "keyword" > const</ span > < span class = "keywordtype" > int</ span > argc, < span class = "keyword" > const</ span > < span class = "keywordtype" > char</ span > * < span class = "keyword" > const</ span > * argv)</ div >
< div class = "line" >< a name = "l00037" ></ a >< span class = "lineno" > 37</ span >   {</ div >
< div class = "line" >< a name = "l00038" ></ a >< span class = "lineno" > 38</ span >   < span class = "keywordflow" > try</ span ></ div >
< div class = "line" >< a name = "l00039" ></ a >< span class = "lineno" > 39</ span >   {</ div >
< div class = "line" >< a name = "l00040" ></ a >< span class = "lineno" > 40</ span >   < span class = "comment" > // Populate raw arguments</ span ></ div >
< div class = "line" >< a name = "l00041" ></ a >< span class = "lineno" > 41</ span >   PopulateRawArgs(argc, argv);</ div >
< div class = "line" >< a name = "l00042" ></ a >< span class = "lineno" > 42</ span >   </ div >
< div class = "line" >< a name = "l00043" ></ a >< span class = "lineno" > 43</ span >   < span class = "comment" > // Expand abbreviations</ span ></ div >
< div class = "line" >< a name = "l00044" ></ a >< span class = "lineno" > 44</ span >   ExpandAbbreviations();</ div >
< div class = "line" >< a name = "l00045" ></ a >< span class = "lineno" > 45</ span >   </ div >
< div class = "line" >< a name = "l00046" ></ a >< span class = "lineno" > 46</ span >   executableName = std::string(rawArgs[0]);</ div >
< div class = "line" >< a name = "l00047" ></ a >< span class = "lineno" > 47</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00048" ></ a >< span class = "lineno" > 48</ span >   < span class = "comment" > // Read and parse all parameters</ span ></ div >
< div class = "line" >< a name = "l00049" ></ a >< span class = "lineno" > 49</ span >   std::size_t i = 1;</ div >
< div class = "line" >< a name = "l00050" ></ a >< span class = "lineno" > 50</ span >   < span class = "keywordflow" > while</ span > (i < rawArgs.size())</ div >
< div class = "line" >< a name = "l00051" ></ a >< span class = "lineno" > 51</ span >   {</ div >
< div class = "line" >< a name = "l00052" ></ a >< span class = "lineno" > 52</ span >   < span class = "keywordflow" > if</ span > ((rawArgs[i].length() > 2) && (rawArgs[i].substr(0, 2) == < span class = "stringliteral" > " --" </ span > ))</ div >
< div class = "line" >< a name = "l00053" ></ a >< span class = "lineno" > 53</ span >   {</ div >
< div class = "line" >< a name = "l00054" ></ a >< span class = "lineno" > 54</ span >   < a class = "code" href = "classHazelnp_1_1Parameter.html" > Parameter</ a > * param = < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00055" ></ a >< span class = "lineno" > 55</ span >   i = ParseNextParameter(i, param);</ div >
< div class = "line" >< a name = "l00056" ></ a >< span class = "lineno" > 56</ span >   </ div >
< div class = "line" >< a name = "l00057" ></ a >< span class = "lineno" > 57</ span >   parameters.insert(std::pair< std::string, Parameter*> (param-> < a class = "code" href = "classHazelnp_1_1Parameter.html#a7acd68ce06eec06ab286b1a062f9c8d6" > Key</ a > (), param));</ div >
< div class = "line" >< a name = "l00058" ></ a >< span class = "lineno" > 58</ span >   }</ div >
< div class = "line" >< a name = "l00059" ></ a >< span class = "lineno" > 59</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00060" ></ a >< span class = "lineno" > 60</ span >   i++;</ div >
< div class = "line" >< a name = "l00061" ></ a >< span class = "lineno" > 61</ span >   }</ div >
< div class = "line" >< a name = "l00062" ></ a >< span class = "lineno" > 62</ span >   </ div >
< div class = "line" >< a name = "l00063" ></ a >< span class = "lineno" > 63</ span >   < span class = "comment" > // Apply constraints such as default values, and required parameters.</ span ></ div >
< div class = "line" >< a name = "l00064" ></ a >< span class = "lineno" > 64</ span >   < span class = "comment" > // Types have already been enforced.</ span ></ div >
< div class = "line" >< a name = "l00065" ></ a >< span class = "lineno" > 65</ span >   < span class = "comment" > // Dont apply constraints when we are just printind the param docs</ span ></ div >
< div class = "line" >< a name = "l00066" ></ a >< span class = "lineno" > 66</ span >   < span class = "keywordflow" > if</ span > ((!catchHelp) || (!< a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > HasParam</ a > (< span class = "stringliteral" > " --help" </ span > )))</ div >
< div class = "line" >< a name = "l00067" ></ a >< span class = "lineno" > 67</ span >   ApplyConstraints();</ div >
< div class = "line" >< a name = "l00068" ></ a >< span class = "lineno" > 68</ span >   }</ div >
< div class = "line" >< a name = "l00069" ></ a >< span class = "lineno" > 69</ span >   < span class = "keywordflow" > catch</ span > (< span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintIncompatibleParameters.html" > HazelnuppConstraintIncompatibleParameters</ a > & exc)</ div >
< div class = "line" >< a name = "l00070" ></ a >< span class = "lineno" > 70</ span >   {</ div >
< div class = "line" >< a name = "l00071" ></ a >< span class = "lineno" > 71</ span >   < span class = "keywordflow" > if</ span > (crashOnFail)</ div >
< div class = "line" >< a name = "l00072" ></ a >< span class = "lineno" > 72</ span >   {</ div >
< div class = "line" >< a name = "l00073" ></ a >< span class = "lineno" > 73</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00074" ></ a >< span class = "lineno" > 74</ span >   std::cerr << < span class = "stringliteral" > " Parameter error: " </ span > << exc.< a class = "code" href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > What</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00075" ></ a >< span class = "lineno" > 75</ span >   quick_exit(-1000);</ div >
< div class = "line" >< a name = "l00076" ></ a >< span class = "lineno" > 76</ span >   }</ div >
< div class = "line" >< a name = "l00077" ></ a >< span class = "lineno" > 77</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00078" ></ a >< span class = "lineno" > 78</ span >   < span class = "keywordflow" > throw</ span > exc; < span class = "comment" > // yeet</ span ></ div >
< div class = "line" >< a name = "l00079" ></ a >< span class = "lineno" > 79</ span >   }</ div >
< div class = "line" >< a name = "l00080" ></ a >< span class = "lineno" > 80</ span >   < span class = "keywordflow" > catch</ span > (< span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintMissingValue.html" > HazelnuppConstraintMissingValue</ a > & exc)</ div >
< div class = "line" >< a name = "l00081" ></ a >< span class = "lineno" > 81</ span >   {</ div >
< div class = "line" >< a name = "l00082" ></ a >< span class = "lineno" > 82</ span >   < span class = "keywordflow" > if</ span > (crashOnFail)</ div >
< div class = "line" >< a name = "l00083" ></ a >< span class = "lineno" > 83</ span >   {</ div >
< div class = "line" >< a name = "l00084" ></ a >< span class = "lineno" > 84</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00085" ></ a >< span class = "lineno" > 85</ span >   std::cerr << < span class = "stringliteral" > " Parameter error: " </ span > << exc.< a class = "code" href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > What</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00086" ></ a >< span class = "lineno" > 86</ span >   quick_exit(-1001);</ div >
< div class = "line" >< a name = "l00087" ></ a >< span class = "lineno" > 87</ span >   }</ div >
< div class = "line" >< a name = "l00088" ></ a >< span class = "lineno" > 88</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00089" ></ a >< span class = "lineno" > 89</ span >   < span class = "keywordflow" > throw</ span > exc; < span class = "comment" > // yeet</ span ></ div >
< div class = "line" >< a name = "l00090" ></ a >< span class = "lineno" > 90</ span >   }</ div >
< div class = "line" >< a name = "l00091" ></ a >< span class = "lineno" > 91</ span >   < span class = "keywordflow" > catch</ span > (< span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html" > HazelnuppConstraintTypeMissmatch</ a > & exc)</ div >
< div class = "line" >< a name = "l00092" ></ a >< span class = "lineno" > 92</ span >   {</ div >
< div class = "line" >< a name = "l00093" ></ a >< span class = "lineno" > 93</ span >   < span class = "keywordflow" > if</ span > (crashOnFail)</ div >
< div class = "line" >< a name = "l00094" ></ a >< span class = "lineno" > 94</ span >   {</ div >
< div class = "line" >< a name = "l00095" ></ a >< span class = "lineno" > 95</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00096" ></ a >< span class = "lineno" > 96</ span >   std::cerr << < span class = "stringliteral" > " Parameter error: " </ span > << exc.< a class = "code" href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > What</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00097" ></ a >< span class = "lineno" > 97</ span >   quick_exit(-1002);</ div >
< div class = "line" >< a name = "l00098" ></ a >< span class = "lineno" > 98</ span >   }</ div >
< div class = "line" >< a name = "l00099" ></ a >< span class = "lineno" > 99</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00100" ></ a >< span class = "lineno" > 100</ span >   < span class = "keywordflow" > throw</ span > exc; < span class = "comment" > // yeet</ span ></ div >
< div class = "line" >< a name = "l00101" ></ a >< span class = "lineno" > 101</ span >   }</ div >
< div class = "line" >< a name = "l00102" ></ a >< span class = "lineno" > 102</ span >   < span class = "keywordflow" > catch</ span > (< span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintException.html" > HazelnuppConstraintException</ a > & exc)</ div >
< div class = "line" >< a name = "l00103" ></ a >< span class = "lineno" > 103</ span >   {</ div >
< div class = "line" >< a name = "l00104" ></ a >< span class = "lineno" > 104</ span >   < span class = "keywordflow" > if</ span > (crashOnFail)</ div >
< div class = "line" >< a name = "l00105" ></ a >< span class = "lineno" > 105</ span >   {</ div >
< div class = "line" >< a name = "l00106" ></ a >< span class = "lineno" > 106</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00107" ></ a >< span class = "lineno" > 107</ span >   std::cerr << < span class = "stringliteral" > " Parameter error: " </ span > << exc.< a class = "code" href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > What</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00108" ></ a >< span class = "lineno" > 108</ span >   quick_exit(-1003);</ div >
< div class = "line" >< a name = "l00109" ></ a >< span class = "lineno" > 109</ span >   }</ div >
< div class = "line" >< a name = "l00110" ></ a >< span class = "lineno" > 110</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00111" ></ a >< span class = "lineno" > 111</ span >   < span class = "keywordflow" > throw</ span > exc; < span class = "comment" > // yeet</ span ></ div >
< div class = "line" >< a name = "l00112" ></ a >< span class = "lineno" > 112</ span >   }</ div >
< div class = "line" >< a name = "l00113" ></ a >< span class = "lineno" > 113</ span >   < span class = "keywordflow" > catch</ span > (< span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppException.html" > HazelnuppException</ a > & exc)</ div >
< div class = "line" >< a name = "l00114" ></ a >< span class = "lineno" > 114</ span >   {</ div >
< div class = "line" >< a name = "l00115" ></ a >< span class = "lineno" > 115</ span >   < span class = "keywordflow" > if</ span > (crashOnFail)</ div >
< div class = "line" >< a name = "l00116" ></ a >< span class = "lineno" > 116</ span >   {</ div >
< div class = "line" >< a name = "l00117" ></ a >< span class = "lineno" > 117</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00118" ></ a >< span class = "lineno" > 118</ span >   std::cerr << < span class = "stringliteral" > " Parameter error: " </ span > << exc.< a class = "code" href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > What</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00119" ></ a >< span class = "lineno" > 119</ span >   quick_exit(-1004);</ div >
< div class = "line" >< a name = "l00120" ></ a >< span class = "lineno" > 120</ span >   }</ div >
< div class = "line" >< a name = "l00121" ></ a >< span class = "lineno" > 121</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00122" ></ a >< span class = "lineno" > 122</ span >   < span class = "keywordflow" > throw</ span > exc; < span class = "comment" > // yeet</ span ></ div >
< div class = "line" >< a name = "l00123" ></ a >< span class = "lineno" > 123</ span >   }</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00124" ></ a >< span class = "lineno" > 124</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00125" ></ a >< span class = "lineno" > 125</ span >   < span class = "comment" > // Catch --help parameter</ span ></ div >
< div class = "line" >< a name = "l00126" ></ a >< span class = "lineno" > 126</ span >   < span class = "keywordflow" > if</ span > ((catchHelp) && (< a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > HasParam</ a > (< span class = "stringliteral" > " --help" </ span > )))</ div >
< div class = "line" >< a name = "l00127" ></ a >< span class = "lineno" > 127</ span >   {</ div >
< div class = "line" >< a name = "l00128" ></ a >< span class = "lineno" > 128</ span >   std::cout << < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > GenerateDocumentation</ a > () << std::endl;</ div >
< div class = "line" >< a name = "l00129" ></ a >< span class = "lineno" > 129</ span >   quick_exit(0);</ div >
< div class = "line" >< a name = "l00130" ></ a >< span class = "lineno" > 130</ span >   }</ div >
< div class = "line" >< a name = "l00131" ></ a >< span class = "lineno" > 131</ span >   </ div >
< div class = "line" >< a name = "l00132" ></ a >< span class = "lineno" > 132</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00133" ></ a >< span class = "lineno" > 133</ span >   }</ div >
< div class = "line" >< a name = "l00134" ></ a >< span class = "lineno" > 134</ span >   </ div >
< div class = "line" >< a name = "l00135" ></ a >< span class = "lineno" > 135</ span >   std::size_t CmdArgsInterface::ParseNextParameter(< span class = "keyword" > const</ span > std::size_t parIndex, < a class = "code" href = "classHazelnp_1_1Parameter.html" > Parameter</ a > *& out_Par)</ div >
< div class = "line" >< a name = "l00136" ></ a >< span class = "lineno" > 136</ span >   {</ div >
< div class = "line" >< a name = "l00137" ></ a >< span class = "lineno" > 137</ span >   std::size_t i = parIndex;</ div >
< div class = "line" >< a name = "l00138" ></ a >< span class = "lineno" > 138</ span >   < span class = "keyword" > const</ span > std::string key = rawArgs[parIndex];</ div >
< div class = "line" >< a name = "l00139" ></ a >< span class = "lineno" > 139</ span >   std::vector< std::string> values;</ div >
< div class = "line" >< a name = "l00140" ></ a >< span class = "lineno" > 140</ span >   </ div >
< div class = "line" >< a name = "l00141" ></ a >< span class = "lineno" > 141</ span >   < span class = "comment" > // Get values</ span ></ div >
< div class = "line" >< a name = "l00142" ></ a >< span class = "lineno" > 142</ span >   < span class = "keywordflow" > for</ span > (i++; i < rawArgs.size(); i++)</ div >
< div class = "line" >< a name = "l00143" ></ a >< span class = "lineno" > 143</ span >   < span class = "comment" > // If not another parameter</ span ></ div >
< div class = "line" >< a name = "l00144" ></ a >< span class = "lineno" > 144</ span >   < span class = "keywordflow" > if</ span > ((rawArgs[i].length() < 2) || (rawArgs[i].substr(0, 2) != < span class = "stringliteral" > " --" </ span > ))</ div >
< div class = "line" >< a name = "l00145" ></ a >< span class = "lineno" > 145</ span >   values.emplace_back(rawArgs[i]);</ div >
< div class = "line" >< a name = "l00146" ></ a >< span class = "lineno" > 146</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00147" ></ a >< span class = "lineno" > 147</ span >   {</ div >
< div class = "line" >< a name = "l00148" ></ a >< span class = "lineno" > 148</ span >   < span class = "keywordflow" > break</ span > ;</ div >
< div class = "line" >< a name = "l00149" ></ a >< span class = "lineno" > 149</ span >   }</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00150" ></ a >< span class = "lineno" > 150</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00151" ></ a >< span class = "lineno" > 151</ span >   < span class = "comment" > // Fetch constraint info</ span ></ div >
< div class = "line" >< a name = "l00152" ></ a >< span class = "lineno" > 152</ span >   < span class = "keyword" > const</ span > < a class = "code" href = "structHazelnp_1_1ParamConstraint.html" > ParamConstraint</ a > * pcn = GetConstraintForKey(key);</ div >
< div class = "line" >< a name = "l00153" ></ a >< span class = "lineno" > 153</ span >   </ div >
< div class = "line" >< a name = "l00154" ></ a >< span class = "lineno" > 154</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * parsedVal = ParseValue(values, pcn);</ div >
< div class = "line" >< a name = "l00155" ></ a >< span class = "lineno" > 155</ span >   < span class = "keywordflow" > if</ span > (parsedVal != < span class = "keyword" > nullptr</ span > )</ div >
< div class = "line" >< a name = "l00156" ></ a >< span class = "lineno" > 156</ span >   {</ div >
< div class = "line" >< a name = "l00157" ></ a >< span class = "lineno" > 157</ span >   out_Par = < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1Parameter.html" > Parameter</ a > (key, parsedVal);</ div >
< div class = "line" >< a name = "l00158" ></ a >< span class = "lineno" > 158</ span >   </ div >
< div class = "line" >< a name = "l00159" ></ a >< span class = "lineno" > 159</ span >   < span class = "keyword" > delete</ span > parsedVal;</ div >
< div class = "line" >< a name = "l00160" ></ a >< span class = "lineno" > 160</ span >   parsedVal = < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00161" ></ a >< span class = "lineno" > 161</ span >   }</ div >
< div class = "line" >< a name = "l00162" ></ a >< span class = "lineno" > 162</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00163" ></ a >< span class = "lineno" > 163</ span >   < span class = "keywordflow" > throw</ span > std::runtime_error(< span class = "stringliteral" > " Unable to parse parameter!" </ span > );</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00164" ></ a >< span class = "lineno" > 164</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00165" ></ a >< span class = "lineno" > 165</ span >   < span class = "keywordflow" > return</ span > i;</ div >
< div class = "line" >< a name = "l00166" ></ a >< span class = "lineno" > 166</ span >   }</ div >
< div class = "line" >< a name = "l00167" ></ a >< span class = "lineno" > 167</ span >   </ div >
< div class = "line" >< a name = "l00168" ></ a >< span class = "lineno" > 168</ span >   < span class = "keywordtype" > void</ span > CmdArgsInterface::PopulateRawArgs(< span class = "keyword" > const</ span > < span class = "keywordtype" > int</ span > argc, < span class = "keyword" > const</ span > < span class = "keywordtype" > char</ span > * < span class = "keyword" > const</ span > * argv)</ div >
< div class = "line" >< a name = "l00169" ></ a >< span class = "lineno" > 169</ span >   {</ div >
< div class = "line" >< a name = "l00170" ></ a >< span class = "lineno" > 170</ span >   rawArgs.clear();</ div >
< div class = "line" >< a name = "l00171" ></ a >< span class = "lineno" > 171</ span >   rawArgs.reserve(argc);</ div >
< div class = "line" >< a name = "l00172" ></ a >< span class = "lineno" > 172</ span >   </ div >
< div class = "line" >< a name = "l00173" ></ a >< span class = "lineno" > 173</ span >   < span class = "keywordflow" > for</ span > (< span class = "keywordtype" > int</ span > i = 0; i < argc; i++)</ div >
< div class = "line" >< a name = "l00174" ></ a >< span class = "lineno" > 174</ span >   rawArgs.emplace_back(std::string(argv[i]));</ div >
< div class = "line" >< a name = "l00175" ></ a >< span class = "lineno" > 175</ span >   </ div >
< div class = "line" >< a name = "l00176" ></ a >< span class = "lineno" > 176</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00177" ></ a >< span class = "lineno" > 177</ span >   }</ div >
< div class = "line" >< a name = "l00178" ></ a >< span class = "lineno" > 178</ span >   </ div >
< div class = "line" >< a name = "l00179" ></ a >< span class = "lineno" > 179</ span >   < span class = "keywordtype" > void</ span > CmdArgsInterface::ExpandAbbreviations()</ div >
< div class = "line" >< a name = "l00180" ></ a >< span class = "lineno" > 180</ span >   {</ div >
< div class = "line" >< a name = "l00181" ></ a >< span class = "lineno" > 181</ span >   < span class = "comment" > // Abort if no abbreviations</ span ></ div >
< div class = "line" >< a name = "l00182" ></ a >< span class = "lineno" > 182</ span >   < span class = "keywordflow" > if</ span > (parameterAbreviations.size() == 0)</ div >
< div class = "line" >< a name = "l00183" ></ a >< span class = "lineno" > 183</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00184" ></ a >< span class = "lineno" > 184</ span >   </ div >
< div class = "line" >< a name = "l00185" ></ a >< span class = "lineno" > 185</ span >   < span class = "keywordflow" > for</ span > (std::string& arg : rawArgs)</ div >
< div class = "line" >< a name = "l00186" ></ a >< span class = "lineno" > 186</ span >   {</ div >
< div class = "line" >< a name = "l00187" ></ a >< span class = "lineno" > 187</ span >   < span class = "comment" > // Is arg registered as an abbreviation?</ span ></ div >
< div class = "line" >< a name = "l00188" ></ a >< span class = "lineno" > 188</ span >   < span class = "keyword" > auto</ span > abbr = parameterAbreviations.find(arg);</ div >
< div class = "line" >< a name = "l00189" ></ a >< span class = "lineno" > 189</ span >   < span class = "keywordflow" > if</ span > (abbr != parameterAbreviations.end())</ div >
< div class = "line" >< a name = "l00190" ></ a >< span class = "lineno" > 190</ span >   {</ div >
< div class = "line" >< a name = "l00191" ></ a >< span class = "lineno" > 191</ span >   < span class = "comment" > // Yes: replace arg with the long form</ span ></ div >
< div class = "line" >< a name = "l00192" ></ a >< span class = "lineno" > 192</ span >   arg = abbr-> second;</ div >
< div class = "line" >< a name = "l00193" ></ a >< span class = "lineno" > 193</ span >   }</ div >
< div class = "line" >< a name = "l00194" ></ a >< span class = "lineno" > 194</ span >   }</ div >
< div class = "line" >< a name = "l00195" ></ a >< span class = "lineno" > 195</ span >   </ div >
< div class = "line" >< a name = "l00196" ></ a >< span class = "lineno" > 196</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00197" ></ a >< span class = "lineno" > 197</ span >   }</ div >
< div class = "line" >< a name = "l00198" ></ a >< span class = "lineno" > 198</ span >   </ div >
< div class = "line" >< a name = "l00199" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > 199</ a ></ span >   < span class = "keywordtype" > bool</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > CmdArgsInterface::HasParam</ a > (< span class = "keyword" > const</ span > std::string& key)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00200" ></ a >< span class = "lineno" > 200</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00201" ></ a >< span class = "lineno" > 201</ span >   < span class = "keywordflow" > return</ span > parameters.find(key) != parameters.end();</ div >
< div class = "line" >< a name = "l00202" ></ a >< span class = "lineno" > 202</ span >   }</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00203" ></ a >< span class = "lineno" > 203</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00204" ></ a >< span class = "lineno" > 204</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * CmdArgsInterface::ParseValue(< span class = "keyword" > const</ span > std::vector< std::string>& values, < span class = "keyword" > const</ span > < a class = "code" href = "structHazelnp_1_1ParamConstraint.html" > ParamConstraint</ a > * constraint)</ div >
< div class = "line" >< a name = "l00205" ></ a >< span class = "lineno" > 205</ span >   {</ div >
< div class = "line" >< a name = "l00206" ></ a >< span class = "lineno" > 206</ span >   < span class = "comment" > // This is the raw (unconverted) data type the user provided</ span ></ div >
< div class = "line" >< a name = "l00207" ></ a >< span class = "lineno" > 207</ span >   < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803f" > DATA_TYPE</ a > rawInputType;</ div >
< div class = "line" >< a name = "l00208" ></ a >< span class = "lineno" > 208</ span >   </ div >
< div class = "line" >< a name = "l00209" ></ a >< span class = "lineno" > 209</ span >   < span class = "comment" > // Constraint values</ span ></ div >
< div class = "line" >< a name = "l00210" ></ a >< span class = "lineno" > 210</ span >   < span class = "keyword" > const</ span > < span class = "keywordtype" > bool</ span > constrainType = (constraint != < span class = "keyword" > nullptr</ span > ) && (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a88a4a4c215723259c71853992d09acac" > constrainType</ a > );</ div >
< div class = "line" >< a name = "l00211" ></ a >< span class = "lineno" > 211</ span >   </ div >
< div class = "line" >< a name = "l00212" ></ a >< span class = "lineno" > 212</ span >   < span class = "comment" > // Void-type</ span ></ div >
< div class = "line" >< a name = "l00213" ></ a >< span class = "lineno" > 213</ span >   < span class = "keywordflow" > if</ span > (values.size() == 0)</ div >
< div class = "line" >< a name = "l00214" ></ a >< span class = "lineno" > 214</ span >   {</ div >
< div class = "line" >< a name = "l00215" ></ a >< span class = "lineno" > 215</ span >   rawInputType = < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa6d0c9fc747131795e6e5d0c5119f12cb" > DATA_TYPE::VOID</ a > ;</ div >
< div class = "line" >< a name = "l00216" ></ a >< span class = "lineno" > 216</ span >   </ div >
< div class = "line" >< a name = "l00217" ></ a >< span class = "lineno" > 217</ span >   < span class = "comment" > // Is a list forced via a constraint? If yes, return an empty list</ span ></ div >
< div class = "line" >< a name = "l00218" ></ a >< span class = "lineno" > 218</ span >   < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00219" ></ a >< span class = "lineno" > 219</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" > DATA_TYPE::LIST</ a > ))</ div >
< div class = "line" >< a name = "l00220" ></ a >< span class = "lineno" > 220</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > ();</ div >
< div class = "line" >< a name = "l00221" ></ a >< span class = "lineno" > 221</ span >   </ div >
< div class = "line" >< a name = "l00222" ></ a >< span class = "lineno" > 222</ span >   < span class = "comment" > // Is a string forced via a constraint? If yes, return an empty string</ span ></ div >
< div class = "line" >< a name = "l00223" ></ a >< span class = "lineno" > 223</ span >   < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00224" ></ a >< span class = "lineno" > 224</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" > DATA_TYPE::STRING</ a > ))</ div >
< div class = "line" >< a name = "l00225" ></ a >< span class = "lineno" > 225</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1StringValue.html" > StringValue</ a > (< span class = "stringliteral" > "" </ span > );</ div >
< div class = "line" >< a name = "l00226" ></ a >< span class = "lineno" > 226</ span >   </ div >
< div class = "line" >< a name = "l00227" ></ a >< span class = "lineno" > 227</ span >   < span class = "comment" > // Is an int or float forced via constraint? If yes, throw an exception</ span ></ div >
< div class = "line" >< a name = "l00228" ></ a >< span class = "lineno" > 228</ span >   < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00229" ></ a >< span class = "lineno" > 229</ span >   ((constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa53f93baa3057821107c750323892fa92" > DATA_TYPE::INT</ a > ) ||</ div >
< div class = "line" >< a name = "l00230" ></ a >< span class = "lineno" > 230</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fae738c26bf4ce1037fa81b039a915cbf6" > DATA_TYPE::FLOAT</ a > )))</ div >
< div class = "line" >< a name = "l00231" ></ a >< span class = "lineno" > 231</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html" > HazelnuppConstraintTypeMissmatch</ a > (</ div >
< div class = "line" >< a name = "l00232" ></ a >< span class = "lineno" > 232</ span >   constraint-> key,</ div >
< div class = "line" >< a name = "l00233" ></ a >< span class = "lineno" > 233</ span >   constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > ,</ div >
< div class = "line" >< a name = "l00234" ></ a >< span class = "lineno" > 234</ span >   rawInputType,</ div >
< div class = "line" >< a name = "l00235" ></ a >< span class = "lineno" > 235</ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > GetDescription</ a > (constraint-> key)</ div >
< div class = "line" >< a name = "l00236" ></ a >< span class = "lineno" > 236</ span >   );</ div >
< div class = "line" >< a name = "l00237" ></ a >< span class = "lineno" > 237</ span >   </ div >
< div class = "line" >< a name = "l00238" ></ a >< span class = "lineno" > 238</ span >   < span class = "comment" > // Else, just return the void type</ span ></ div >
< div class = "line" >< a name = "l00239" ></ a >< span class = "lineno" > 239</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1VoidValue.html" > VoidValue</ a > ;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00240" ></ a >< span class = "lineno" > 240</ span >   }</ div >
< div class = "line" >< a name = "l00241" ></ a >< span class = "lineno" > 241</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00242" ></ a >< span class = "lineno" > 242</ span >   < span class = "comment" > // Force void type by constraint</ span ></ div >
< div class = "line" >< a name = "l00243" ></ a >< span class = "lineno" > 243</ span >   < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00244" ></ a >< span class = "lineno" > 244</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa6d0c9fc747131795e6e5d0c5119f12cb" > DATA_TYPE::VOID</ a > ))</ div >
< div class = "line" >< a name = "l00245" ></ a >< span class = "lineno" > 245</ span >   {</ div >
< div class = "line" >< a name = "l00246" ></ a >< span class = "lineno" > 246</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1VoidValue.html" > VoidValue</ a > ;</ div >
< div class = "line" >< a name = "l00247" ></ a >< span class = "lineno" > 247</ span >   }</ div >
< div class = "line" >< a name = "l00248" ></ a >< span class = "lineno" > 248</ span >   </ div >
< div class = "line" >< a name = "l00249" ></ a >< span class = "lineno" > 249</ span >   < span class = "comment" > // List-type</ span ></ div >
< div class = "line" >< a name = "l00250" ></ a >< span class = "lineno" > 250</ span >   < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (values.size() > 1)</ div >
< div class = "line" >< a name = "l00251" ></ a >< span class = "lineno" > 251</ span >   {</ div >
< div class = "line" >< a name = "l00252" ></ a >< span class = "lineno" > 252</ span >   rawInputType = < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" > DATA_TYPE::LIST</ a > ;</ div >
< div class = "line" >< a name = "l00253" ></ a >< span class = "lineno" > 253</ span >   </ div >
< div class = "line" >< a name = "l00254" ></ a >< span class = "lineno" > 254</ span >   < span class = "comment" > // Should the type be something other than list?</ span ></ div >
< div class = "line" >< a name = "l00255" ></ a >< span class = "lineno" > 255</ span >   < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00256" ></ a >< span class = "lineno" > 256</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > != < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" > DATA_TYPE::LIST</ a > ))</ div >
< div class = "line" >< a name = "l00257" ></ a >< span class = "lineno" > 257</ span >   {</ div >
< div class = "line" >< a name = "l00258" ></ a >< span class = "lineno" > 258</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html" > HazelnuppConstraintTypeMissmatch</ a > (</ div >
< div class = "line" >< a name = "l00259" ></ a >< span class = "lineno" > 259</ span >   constraint-> key, </ div >
< div class = "line" >< a name = "l00260" ></ a >< span class = "lineno" > 260</ span >   constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > ,</ div >
< div class = "line" >< a name = "l00261" ></ a >< span class = "lineno" > 261</ span >   rawInputType,</ div >
< div class = "line" >< a name = "l00262" ></ a >< span class = "lineno" > 262</ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > GetDescription</ a > (constraint-> key)</ div >
< div class = "line" >< a name = "l00263" ></ a >< span class = "lineno" > 263</ span >   );</ div >
< div class = "line" >< a name = "l00264" ></ a >< span class = "lineno" > 264</ span >   }</ div >
< div class = "line" >< a name = "l00265" ></ a >< span class = "lineno" > 265</ span >   </ div >
< div class = "line" >< a name = "l00266" ></ a >< span class = "lineno" > 266</ span >   < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > * newList = < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > ();</ div >
< div class = "line" >< a name = "l00267" ></ a >< span class = "lineno" > 267</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > std::string& val : values)</ div >
< div class = "line" >< a name = "l00268" ></ a >< span class = "lineno" > 268</ span >   {</ div >
< div class = "line" >< a name = "l00269" ></ a >< span class = "lineno" > 269</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * tmp = ParseValue({ val });</ div >
< div class = "line" >< a name = "l00270" ></ a >< span class = "lineno" > 270</ span >   newList-> < a class = "code" href = "classHazelnp_1_1ListValue.html#af8787d266aa353d3f96e2c76cce76c41" > AddValue</ a > (tmp);</ div >
< div class = "line" >< a name = "l00271" ></ a >< span class = "lineno" > 271</ span >   < span class = "keyword" > delete</ span > tmp;</ div >
< div class = "line" >< a name = "l00272" ></ a >< span class = "lineno" > 272</ span >   }</ div >
< div class = "line" >< a name = "l00273" ></ a >< span class = "lineno" > 273</ span >   < span class = "keywordflow" > return</ span > newList;</ div >
< div class = "line" >< a name = "l00274" ></ a >< span class = "lineno" > 274</ span >   }</ div >
< div class = "line" >< a name = "l00275" ></ a >< span class = "lineno" > 275</ span >   </ div >
< div class = "line" >< a name = "l00276" ></ a >< span class = "lineno" > 276</ span >   < span class = "comment" > // Now we' re only dealing with a single value</ span ></ div >
< div class = "line" >< a name = "l00277" ></ a >< span class = "lineno" > 277</ span >   < span class = "keyword" > const</ span > std::string& val = values[0];</ div >
< div class = "line" >< a name = "l00278" ></ a >< span class = "lineno" > 278</ span >   </ div >
< div class = "line" >< a name = "l00279" ></ a >< span class = "lineno" > 279</ span >   < span class = "comment" > // String</ span ></ div >
< div class = "line" >< a name = "l00280" ></ a >< span class = "lineno" > 280</ span >   < span class = "keywordflow" > if</ span > (!< a class = "code" href = "classHazelnp_1_1Internal_1_1StringTools.html#a1abf1454a223165acfb52f2a246c8215" > Internal::StringTools::IsNumeric</ a > (val, < span class = "keyword" > true</ span > ))</ div >
< div class = "line" >< a name = "l00281" ></ a >< span class = "lineno" > 281</ span >   {</ div >
< div class = "line" >< a name = "l00282" ></ a >< span class = "lineno" > 282</ span >   rawInputType = < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" > DATA_TYPE::STRING</ a > ;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00283" ></ a >< span class = "lineno" > 283</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00284" ></ a >< span class = "lineno" > 284</ span >   < span class = "comment" > // Is the type not supposed to be a string?</ span ></ div >
< div class = "line" >< a name = "l00285" ></ a >< span class = "lineno" > 285</ span >   < span class = "comment" > // void and list are already sorted out</ span ></ div >
< div class = "line" >< a name = "l00286" ></ a >< span class = "lineno" > 286</ span >   < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00287" ></ a >< span class = "lineno" > 287</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > != < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" > DATA_TYPE::STRING</ a > ))</ div >
< div class = "line" >< a name = "l00288" ></ a >< span class = "lineno" > 288</ span >   {</ div >
< div class = "line" >< a name = "l00289" ></ a >< span class = "lineno" > 289</ span >   < span class = "comment" > // We can only force a list-value from here</ span ></ div >
< div class = "line" >< a name = "l00290" ></ a >< span class = "lineno" > 290</ span >   < span class = "keywordflow" > if</ span > (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" > DATA_TYPE::LIST</ a > )</ div >
< div class = "line" >< a name = "l00291" ></ a >< span class = "lineno" > 291</ span >   {</ div >
< div class = "line" >< a name = "l00292" ></ a >< span class = "lineno" > 292</ span >   < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > * list = < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > ();</ div >
< div class = "line" >< a name = "l00293" ></ a >< span class = "lineno" > 293</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * tmp = ParseValue({ val });</ div >
< div class = "line" >< a name = "l00294" ></ a >< span class = "lineno" > 294</ span >   list-> < a class = "code" href = "classHazelnp_1_1ListValue.html#af8787d266aa353d3f96e2c76cce76c41" > AddValue</ a > (tmp);</ div >
< div class = "line" >< a name = "l00295" ></ a >< span class = "lineno" > 295</ span >   < span class = "keyword" > delete</ span > tmp;</ div >
< div class = "line" >< a name = "l00296" ></ a >< span class = "lineno" > 296</ span >   tmp = < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00297" ></ a >< span class = "lineno" > 297</ span >   < span class = "keywordflow" > return</ span > list;</ div >
< div class = "line" >< a name = "l00298" ></ a >< span class = "lineno" > 298</ span >   }</ div >
< div class = "line" >< a name = "l00299" ></ a >< span class = "lineno" > 299</ span >   < span class = "comment" > // Else it is not possible to convert to a numeric</ span ></ div >
< div class = "line" >< a name = "l00300" ></ a >< span class = "lineno" > 300</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00301" ></ a >< span class = "lineno" > 301</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html" > HazelnuppConstraintTypeMissmatch</ a > (</ div >
< div class = "line" >< a name = "l00302" ></ a >< span class = "lineno" > 302</ span >   constraint-> key,</ div >
< div class = "line" >< a name = "l00303" ></ a >< span class = "lineno" > 303</ span >   constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > ,</ div >
< div class = "line" >< a name = "l00304" ></ a >< span class = "lineno" > 304</ span >   rawInputType,</ div >
< div class = "line" >< a name = "l00305" ></ a >< span class = "lineno" > 305</ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > GetDescription</ a > (constraint-> key)</ div >
< div class = "line" >< a name = "l00306" ></ a >< span class = "lineno" > 306</ span >   );</ div >
< div class = "line" >< a name = "l00307" ></ a >< span class = "lineno" > 307</ span >   }</ div >
< div class = "line" >< a name = "l00308" ></ a >< span class = "lineno" > 308</ span >   </ div >
< div class = "line" >< a name = "l00309" ></ a >< span class = "lineno" > 309</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1StringValue.html" > StringValue</ a > (val);</ div >
< div class = "line" >< a name = "l00310" ></ a >< span class = "lineno" > 310</ span >   }</ div >
< div class = "line" >< a name = "l00311" ></ a >< span class = "lineno" > 311</ span >   </ div >
< div class = "line" >< a name = "l00312" ></ a >< span class = "lineno" > 312</ span >   < span class = "comment" > // In this case we have a numeric value.</ span ></ div >
< div class = "line" >< a name = "l00313" ></ a >< span class = "lineno" > 313</ span >   < span class = "comment" > // We should still produce a string if requested</ span ></ div >
< div class = "line" >< a name = "l00314" ></ a >< span class = "lineno" > 314</ span >   < span class = "keywordflow" > if</ span > ((constrainType) && </ div >
< div class = "line" >< a name = "l00315" ></ a >< span class = "lineno" > 315</ span >   (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" > DATA_TYPE::STRING</ a > ))</ div >
< div class = "line" >< a name = "l00316" ></ a >< span class = "lineno" > 316</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1StringValue.html" > StringValue</ a > (val);</ div >
< div class = "line" >< a name = "l00317" ></ a >< span class = "lineno" > 317</ span >   </ div >
< div class = "line" >< a name = "l00318" ></ a >< span class = "lineno" > 318</ span >   < span class = "comment" > // Numeric</ span ></ div >
< div class = "line" >< a name = "l00319" ></ a >< span class = "lineno" > 319</ span >   < span class = "keywordtype" > bool</ span > isInt;</ div >
< div class = "line" >< a name = "l00320" ></ a >< span class = "lineno" > 320</ span >   < span class = "keywordtype" > long</ span > < span class = "keywordtype" > double</ span > num;</ div >
< div class = "line" >< a name = "l00321" ></ a >< span class = "lineno" > 321</ span >   </ div >
< div class = "line" >< a name = "l00322" ></ a >< span class = "lineno" > 322</ span >   < span class = "keywordflow" > if</ span > (< a class = "code" href = "classHazelnp_1_1Internal_1_1StringTools.html#a3cc71bfffcad9a4334e74aac69dbfd68" > Internal::StringTools::ParseNumber</ a > (val, isInt, num))</ div >
< div class = "line" >< a name = "l00323" ></ a >< span class = "lineno" > 323</ span >   {</ div >
< div class = "line" >< a name = "l00324" ></ a >< span class = "lineno" > 324</ span >   rawInputType = isInt ? < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa53f93baa3057821107c750323892fa92" > DATA_TYPE::INT</ a > : < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fae738c26bf4ce1037fa81b039a915cbf6" > DATA_TYPE::FLOAT</ a > ;</ div >
< div class = "line" >< a name = "l00325" ></ a >< span class = "lineno" > 325</ span >   </ div >
< div class = "line" >< a name = "l00326" ></ a >< span class = "lineno" > 326</ span >   < span class = "comment" > // Is the type constrained?</ span ></ div >
< div class = "line" >< a name = "l00327" ></ a >< span class = "lineno" > 327</ span >   < span class = "comment" > // (only int and float left)</ span ></ div >
< div class = "line" >< a name = "l00328" ></ a >< span class = "lineno" > 328</ span >   < span class = "keywordflow" > if</ span > (constrainType)</ div >
< div class = "line" >< a name = "l00329" ></ a >< span class = "lineno" > 329</ span >   {</ div >
< div class = "line" >< a name = "l00330" ></ a >< span class = "lineno" > 330</ span >   < span class = "comment" > // Must it be an integer?</ span ></ div >
< div class = "line" >< a name = "l00331" ></ a >< span class = "lineno" > 331</ span >   < span class = "keywordflow" > if</ span > (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa53f93baa3057821107c750323892fa92" > DATA_TYPE::INT</ a > )</ div >
< div class = "line" >< a name = "l00332" ></ a >< span class = "lineno" > 332</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1IntValue.html" > IntValue</ a > ((< span class = "keywordtype" > long</ span > < span class = "keywordtype" > long</ span > < span class = "keywordtype" > int</ span > )num);</ div >
< div class = "line" >< a name = "l00333" ></ a >< span class = "lineno" > 333</ span >   < span class = "comment" > // Must it be a floating point?</ span ></ div >
< div class = "line" >< a name = "l00334" ></ a >< span class = "lineno" > 334</ span >   < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (constraint-> < a class = "code" href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > requiredType</ a > == < a class = "code" href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fae738c26bf4ce1037fa81b039a915cbf6" > DATA_TYPE::FLOAT</ a > )</ div >
< div class = "line" >< a name = "l00335" ></ a >< span class = "lineno" > 335</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1FloatValue.html" > FloatValue</ a > (num);</ div >
< div class = "line" >< a name = "l00336" ></ a >< span class = "lineno" > 336</ span >   < span class = "comment" > // Else it must be a List</ span ></ div >
< div class = "line" >< a name = "l00337" ></ a >< span class = "lineno" > 337</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00338" ></ a >< span class = "lineno" > 338</ span >   {</ div >
< div class = "line" >< a name = "l00339" ></ a >< span class = "lineno" > 339</ span >   < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > * list = < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1ListValue.html" > ListValue</ a > ();</ div >
< div class = "line" >< a name = "l00340" ></ a >< span class = "lineno" > 340</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * tmp = ParseValue({ val });</ div >
< div class = "line" >< a name = "l00341" ></ a >< span class = "lineno" > 341</ span >   list-> < a class = "code" href = "classHazelnp_1_1ListValue.html#af8787d266aa353d3f96e2c76cce76c41" > AddValue</ a > (tmp);</ div >
< div class = "line" >< a name = "l00342" ></ a >< span class = "lineno" > 342</ span >   < span class = "keyword" > delete</ span > tmp;</ div >
< div class = "line" >< a name = "l00343" ></ a >< span class = "lineno" > 343</ span >   tmp = < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00344" ></ a >< span class = "lineno" > 344</ span >   < span class = "keywordflow" > return</ span > list;</ div >
< div class = "line" >< a name = "l00345" ></ a >< span class = "lineno" > 345</ span >   }</ div >
< div class = "line" >< a name = "l00346" ></ a >< span class = "lineno" > 346</ span >   }</ div >
< div class = "line" >< a name = "l00347" ></ a >< span class = "lineno" > 347</ span >   < span class = "comment" > // Type is not constrained</ span ></ div >
< div class = "line" >< a name = "l00348" ></ a >< span class = "lineno" > 348</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00349" ></ a >< span class = "lineno" > 349</ span >   {</ div >
< div class = "line" >< a name = "l00350" ></ a >< span class = "lineno" > 350</ span >   < span class = "comment" > // Integer</ span ></ div >
< div class = "line" >< a name = "l00351" ></ a >< span class = "lineno" > 351</ span >   < span class = "keywordflow" > if</ span > (isInt)</ div >
< div class = "line" >< a name = "l00352" ></ a >< span class = "lineno" > 352</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1IntValue.html" > IntValue</ a > ((< span class = "keywordtype" > long</ span > < span class = "keywordtype" > long</ span > < span class = "keywordtype" > int</ span > )num);</ div >
< div class = "line" >< a name = "l00353" ></ a >< span class = "lineno" > 353</ span >   </ div >
< div class = "line" >< a name = "l00354" ></ a >< span class = "lineno" > 354</ span >   < span class = "comment" > // Double</ span ></ div >
< div class = "line" >< a name = "l00355" ></ a >< span class = "lineno" > 355</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1FloatValue.html" > FloatValue</ a > (num);</ div >
< div class = "line" >< a name = "l00356" ></ a >< span class = "lineno" > 356</ span >   }</ div >
< div class = "line" >< a name = "l00357" ></ a >< span class = "lineno" > 357</ span >   }</ div >
< div class = "line" >< a name = "l00358" ></ a >< span class = "lineno" > 358</ span >   </ div >
< div class = "line" >< a name = "l00359" ></ a >< span class = "lineno" > 359</ span >   < span class = "comment" > // Failed</ span ></ div >
< div class = "line" >< a name = "l00360" ></ a >< span class = "lineno" > 360</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00361" ></ a >< span class = "lineno" > 361</ span >   }</ div >
< div class = "line" >< a name = "l00362" ></ a >< span class = "lineno" > 362</ span >   </ div >
< div class = "line" >< a name = "l00363" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a3e60c7a90c11bdc634d0f5d0dba5064c" > 363</ a ></ span >   < span class = "keywordtype" > bool</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3e60c7a90c11bdc634d0f5d0dba5064c" > CmdArgsInterface::GetCrashOnFail</ a > ()< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00364" ></ a >< span class = "lineno" > 364</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00365" ></ a >< span class = "lineno" > 365</ span >   < span class = "keywordflow" > return</ span > crashOnFail;</ div >
< div class = "line" >< a name = "l00366" ></ a >< span class = "lineno" > 366</ span >   }</ div >
< div class = "line" >< a name = "l00367" ></ a >< span class = "lineno" > 367</ span >   </ div >
< div class = "line" >< a name = "l00368" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#abf553ed4acabf9e1db357715bc10533c" > 368</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#abf553ed4acabf9e1db357715bc10533c" > CmdArgsInterface::SetCatchHelp</ a > (< span class = "keywordtype" > bool</ span > catchHelp)</ div >
< div class = "line" >< a name = "l00369" ></ a >< span class = "lineno" > 369</ span >   {</ div >
< div class = "line" >< a name = "l00370" ></ a >< span class = "lineno" > 370</ span >   this-> catchHelp = catchHelp;</ div >
< div class = "line" >< a name = "l00371" ></ a >< span class = "lineno" > 371</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00372" ></ a >< span class = "lineno" > 372</ span >   }</ div >
< div class = "line" >< a name = "l00373" ></ a >< span class = "lineno" > 373</ span >   </ div >
< div class = "line" >< a name = "l00374" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a1026d98c23659b6d3d108b231806a1e3" > 374</ a ></ span >   < span class = "keywordtype" > bool</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a1026d98c23659b6d3d108b231806a1e3" > CmdArgsInterface::GetCatchHelp</ a > ()< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00375" ></ a >< span class = "lineno" > 375</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00376" ></ a >< span class = "lineno" > 376</ span >   < span class = "keywordflow" > return</ span > catchHelp;</ div >
< div class = "line" >< a name = "l00377" ></ a >< span class = "lineno" > 377</ span >   }</ div >
< div class = "line" >< a name = "l00378" ></ a >< span class = "lineno" > 378</ span >   </ div >
< div class = "line" >< a name = "l00379" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a67ba6cb3176884c85dd56fc9084ab66a" > 379</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a67ba6cb3176884c85dd56fc9084ab66a" > CmdArgsInterface::SetBriefDescription</ a > (< span class = "keyword" > const</ span > std::string& description)</ div >
< div class = "line" >< a name = "l00380" ></ a >< span class = "lineno" > 380</ span >   {</ div >
< div class = "line" >< a name = "l00381" ></ a >< span class = "lineno" > 381</ span >   briefDescription = description;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00382" ></ a >< span class = "lineno" > 382</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00383" ></ a >< span class = "lineno" > 383</ span >   }</ div >
< div class = "line" >< a name = "l00384" ></ a >< span class = "lineno" > 384</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00385" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a1945208a97707b2e3c654424f0760441" > 385</ a ></ span >   < span class = "keyword" > const</ span > std::string& < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a1945208a97707b2e3c654424f0760441" > CmdArgsInterface::GetBriefDescription</ a > ()</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00386" ></ a >< span class = "lineno" > 386</ span >   {</ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00387" ></ a >< span class = "lineno" > 387</ span >   < span class = "keywordflow" > return</ span > briefDescription;</ div >
< div class = "line" >< a name = "l00388" ></ a >< span class = "lineno" > 388</ span >   }</ div >
< div class = "line" >< a name = "l00389" ></ a >< span class = "lineno" > 389</ span >   </ div >
< div class = "line" >< a name = "l00390" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a6589d2e818ba32f2a3e5b5a6a5e2bf1e" > 390</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a6589d2e818ba32f2a3e5b5a6a5e2bf1e" > Hazelnp::CmdArgsInterface::RegisterDescription</ a > (< span class = "keyword" > const</ span > std::string& parameter, < span class = "keyword" > const</ span > std::string& description)</ div >
< div class = "line" >< a name = "l00391" ></ a >< span class = "lineno" > 391</ span >   {</ div >
< div class = "line" >< a name = "l00392" ></ a >< span class = "lineno" > 392</ span >   parameterDescriptions[parameter] = description;</ div >
< div class = "line" >< a name = "l00393" ></ a >< span class = "lineno" > 393</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00394" ></ a >< span class = "lineno" > 394</ span >   }</ div >
< div class = "line" >< a name = "l00395" ></ a >< span class = "lineno" > 395</ span >   </ div >
< div class = "line" >< a name = "l00396" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > 396</ a ></ span >   < span class = "keyword" > const</ span > std::string& < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > Hazelnp::CmdArgsInterface::GetDescription</ a > (< span class = "keyword" > const</ span > std::string& parameter)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00397" ></ a >< span class = "lineno" > 397</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00398" ></ a >< span class = "lineno" > 398</ span >   < span class = "comment" > // Do we already have a description for this parameter?</ span ></ div >
< div class = "line" >< a name = "l00399" ></ a >< span class = "lineno" > 399</ span >   < span class = "keywordflow" > if</ span > (!HasDescription(parameter))</ div >
< div class = "line" >< a name = "l00400" ></ a >< span class = "lineno" > 400</ span >   < span class = "comment" > // No? Then return "" </ span ></ div >
< div class = "line" >< a name = "l00401" ></ a >< span class = "lineno" > 401</ span >   < span class = "keywordflow" > return</ span > < a class = "code" href = "namespaceHazelnp_1_1Placeholders.html#a90536f0cd5261b18da736e954c6b8b79" > Placeholders::g_emptyString</ a > ;</ div >
< div class = "line" >< a name = "l00402" ></ a >< span class = "lineno" > 402</ span >   </ div >
< div class = "line" >< a name = "l00403" ></ a >< span class = "lineno" > 403</ span >   < span class = "comment" > // We do? Then return it</ span ></ div >
< div class = "line" >< a name = "l00404" ></ a >< span class = "lineno" > 404</ span >   < span class = "keywordflow" > return</ span > parameterDescriptions.find(parameter)-> second;</ div >
< div class = "line" >< a name = "l00405" ></ a >< span class = "lineno" > 405</ span >   }</ div >
< div class = "line" >< a name = "l00406" ></ a >< span class = "lineno" > 406</ span >   </ div >
< div class = "line" >< a name = "l00407" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a5003f826ee31c6365bf4b6e8b2c8d9f1" > 407</ a ></ span >   < span class = "keywordtype" > bool</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a5003f826ee31c6365bf4b6e8b2c8d9f1" > CmdArgsInterface::HasDescription</ a > (< span class = "keyword" > const</ span > std::string& parameter)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00408" ></ a >< span class = "lineno" > 408</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00409" ></ a >< span class = "lineno" > 409</ span >   < span class = "keywordflow" > return</ span > parameterDescriptions.find(parameter) != parameterDescriptions.end();</ div >
< div class = "line" >< a name = "l00410" ></ a >< span class = "lineno" > 410</ span >   }</ div >
< div class = "line" >< a name = "l00411" ></ a >< span class = "lineno" > 411</ span >   </ div >
< div class = "line" >< a name = "l00412" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a62889ce1faa90d0f20be3ae45803baa0" > 412</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a62889ce1faa90d0f20be3ae45803baa0" > CmdArgsInterface::ClearDescription</ a > (< span class = "keyword" > const</ span > std::string& parameter)</ div >
< div class = "line" >< a name = "l00413" ></ a >< span class = "lineno" > 413</ span >   {</ div >
< div class = "line" >< a name = "l00414" ></ a >< span class = "lineno" > 414</ span >   < span class = "comment" > // This will just do nothing if the entry does not exist</ span ></ div >
< div class = "line" >< a name = "l00415" ></ a >< span class = "lineno" > 415</ span >   parameterDescriptions.erase(parameter);</ div >
< div class = "line" >< a name = "l00416" ></ a >< span class = "lineno" > 416</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00417" ></ a >< span class = "lineno" > 417</ span >   }</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00418" ></ a >< span class = "lineno" > 418</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00419" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a328dbc265e7ffa9ab526ed8aa755e107" > 419</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a328dbc265e7ffa9ab526ed8aa755e107" > Hazelnp::CmdArgsInterface::ClearDescriptions</ a > ()</ div >
< div class = "line" >< a name = "l00420" ></ a >< span class = "lineno" > 420</ span >   {</ div >
< div class = "line" >< a name = "l00421" ></ a >< span class = "lineno" > 421</ span >   parameterDescriptions.clear();</ div >
< div class = "line" >< a name = "l00422" ></ a >< span class = "lineno" > 422</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00423" ></ a >< span class = "lineno" > 423</ span >   }</ div >
< div class = "line" >< a name = "l00424" ></ a >< span class = "lineno" > 424</ span >   </ div >
< div class = "line" >< a name = "l00425" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > 425</ a ></ span >   std::string < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > CmdArgsInterface::GenerateDocumentation</ a > ()< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00426" ></ a >< span class = "lineno" > 426</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00427" ></ a >< span class = "lineno" > 427</ span >   std::stringstream ss;</ div >
< div class = "line" >< a name = "l00428" ></ a >< span class = "lineno" > 428</ span >   </ div >
< div class = "line" >< a name = "l00429" ></ a >< span class = "lineno" > 429</ span >   < span class = "comment" > // Add brief, if available</ span ></ div >
< div class = "line" >< a name = "l00430" ></ a >< span class = "lineno" > 430</ span >   < span class = "keywordflow" > if</ span > (briefDescription.length() > 0)</ div >
< div class = "line" >< a name = "l00431" ></ a >< span class = "lineno" > 431</ span >   ss << briefDescription << std::endl;</ div >
< div class = "line" >< a name = "l00432" ></ a >< span class = "lineno" > 432</ span >   </ div >
< div class = "line" >< a name = "l00433" ></ a >< span class = "lineno" > 433</ span >   < span class = "comment" > // Collect parameter information</ span ></ div >
< div class = "line" >< a name = "l00434" ></ a >< span class = "lineno" > 434</ span >   < span class = "keyword" > struct </ span > ParamDocEntry</ div >
< div class = "line" >< a name = "l00435" ></ a >< span class = "lineno" > 435</ span >   {</ div >
< div class = "line" >< a name = "l00436" ></ a >< span class = "lineno" > 436</ span >   std::string abbreviation;</ div >
< div class = "line" >< a name = "l00437" ></ a >< span class = "lineno" > 437</ span >   std::string description;</ div >
< div class = "line" >< a name = "l00438" ></ a >< span class = "lineno" > 438</ span >   std::string type;</ div >
< div class = "line" >< a name = "l00439" ></ a >< span class = "lineno" > 439</ span >   < span class = "keywordtype" > bool</ span > required = < span class = "keyword" > false</ span > ;</ div >
< div class = "line" >< a name = "l00440" ></ a >< span class = "lineno" > 440</ span >   < span class = "keywordtype" > bool</ span > typeIsForced = < span class = "keyword" > false</ span > ;</ div >
< div class = "line" >< a name = "l00441" ></ a >< span class = "lineno" > 441</ span >   std::string defaultVal;</ div >
< div class = "line" >< a name = "l00442" ></ a >< span class = "lineno" > 442</ span >   };</ div >
< div class = "line" >< a name = "l00443" ></ a >< span class = "lineno" > 443</ span >   std::unordered_map< std::string, ParamDocEntry> paramInfos;</ div >
< div class = "line" >< a name = "l00444" ></ a >< span class = "lineno" > 444</ span >   </ div >
< div class = "line" >< a name = "l00445" ></ a >< span class = "lineno" > 445</ span >   < span class = "comment" > // Collect descriptions</ span ></ div >
< div class = "line" >< a name = "l00446" ></ a >< span class = "lineno" > 446</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > & it : parameterDescriptions)</ div >
< div class = "line" >< a name = "l00447" ></ a >< span class = "lineno" > 447</ span >   {</ div >
< div class = "line" >< a name = "l00448" ></ a >< span class = "lineno" > 448</ span >   < span class = "comment" > // Do we already have that param in the paramInfo set?</ span ></ div >
< div class = "line" >< a name = "l00449" ></ a >< span class = "lineno" > 449</ span >   < span class = "keywordflow" > if</ span > (paramInfos.find(it.first) == paramInfos.end())</ div >
< div class = "line" >< a name = "l00450" ></ a >< span class = "lineno" > 450</ span >   < span class = "comment" > // No? Create it.</ span ></ div >
< div class = "line" >< a name = "l00451" ></ a >< span class = "lineno" > 451</ span >   paramInfos[it.first] = ParamDocEntry();</ div >
< div class = "line" >< a name = "l00452" ></ a >< span class = "lineno" > 452</ span >   </ div >
< div class = "line" >< a name = "l00453" ></ a >< span class = "lineno" > 453</ span >   paramInfos[it.first].description = it.second;</ div >
< div class = "line" >< a name = "l00454" ></ a >< span class = "lineno" > 454</ span >   }</ div >
< div class = "line" >< a name = "l00455" ></ a >< span class = "lineno" > 455</ span >   </ div >
< div class = "line" >< a name = "l00456" ></ a >< span class = "lineno" > 456</ span >   < span class = "comment" > // Collect abbreviations</ span ></ div >
< div class = "line" >< a name = "l00457" ></ a >< span class = "lineno" > 457</ span >   < span class = "comment" > // first value is abbreviation, second is long form</ span ></ div >
< div class = "line" >< a name = "l00458" ></ a >< span class = "lineno" > 458</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > & it : parameterAbreviations)</ div >
< div class = "line" >< a name = "l00459" ></ a >< span class = "lineno" > 459</ span >   {</ div >
< div class = "line" >< a name = "l00460" ></ a >< span class = "lineno" > 460</ span >   < span class = "comment" > // Do we already have that param in the paramInfo set?</ span ></ div >
< div class = "line" >< a name = "l00461" ></ a >< span class = "lineno" > 461</ span >   < span class = "keywordflow" > if</ span > (paramInfos.find(it.second) == paramInfos.end())</ div >
< div class = "line" >< a name = "l00462" ></ a >< span class = "lineno" > 462</ span >   < span class = "comment" > // No? Create it.</ span ></ div >
< div class = "line" >< a name = "l00463" ></ a >< span class = "lineno" > 463</ span >   paramInfos[it.second] = ParamDocEntry();</ div >
< div class = "line" >< a name = "l00464" ></ a >< span class = "lineno" > 464</ span >   </ div >
< div class = "line" >< a name = "l00465" ></ a >< span class = "lineno" > 465</ span >   paramInfos[it.second].abbreviation = it.first;</ div >
< div class = "line" >< a name = "l00466" ></ a >< span class = "lineno" > 466</ span >   }</ div >
< div class = "line" >< a name = "l00467" ></ a >< span class = "lineno" > 467</ span >   </ div >
< div class = "line" >< a name = "l00468" ></ a >< span class = "lineno" > 468</ span >   < span class = "comment" > // Collect constraints</ span ></ div >
< div class = "line" >< a name = "l00469" ></ a >< span class = "lineno" > 469</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > & it : parameterConstraints)</ div >
< div class = "line" >< a name = "l00470" ></ a >< span class = "lineno" > 470</ span >   {</ div >
< div class = "line" >< a name = "l00471" ></ a >< span class = "lineno" > 471</ span >   < span class = "comment" > // Do we already have that param in the paramInfo set?</ span ></ div >
< div class = "line" >< a name = "l00472" ></ a >< span class = "lineno" > 472</ span >   < span class = "keywordflow" > if</ span > (paramInfos.find(it.first) == paramInfos.end())</ div >
< div class = "line" >< a name = "l00473" ></ a >< span class = "lineno" > 473</ span >   < span class = "comment" > // No? Create it.</ span ></ div >
< div class = "line" >< a name = "l00474" ></ a >< span class = "lineno" > 474</ span >   paramInfos[it.first] = ParamDocEntry();</ div >
< div class = "line" >< a name = "l00475" ></ a >< span class = "lineno" > 475</ span >   </ div >
< div class = "line" >< a name = "l00476" ></ a >< span class = "lineno" > 476</ span >   ParamDocEntry& cached = paramInfos[it.first];</ div >
< div class = "line" >< a name = "l00477" ></ a >< span class = "lineno" > 477</ span >   cached.required = it.second.required;</ div >
< div class = "line" >< a name = "l00478" ></ a >< span class = "lineno" > 478</ span >   cached.typeIsForced = it.second.constrainType;</ div >
< div class = "line" >< a name = "l00479" ></ a >< span class = "lineno" > 479</ span >   cached.type = < a class = "code" href = "namespaceHazelnp.html#a7fb1e5ad9e2ecb6c0025beb19f11621b" > DataTypeToString</ a > (it.second.requiredType);</ div >
< div class = "line" >< a name = "l00480" ></ a >< span class = "lineno" > 480</ span >   </ div >
< div class = "line" >< a name = "l00481" ></ a >< span class = "lineno" > 481</ span >   std::stringstream defaultValueSs;</ div >
< div class = "line" >< a name = "l00482" ></ a >< span class = "lineno" > 482</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > std::string& s : it.second.defaultValue)</ div >
< div class = "line" >< a name = "l00483" ></ a >< span class = "lineno" > 483</ span >   {</ div >
< div class = "line" >< a name = "l00484" ></ a >< span class = "lineno" > 484</ span >   defaultValueSs << < span class = "charliteral" > ' \'' </ span > << s << < span class = "charliteral" > ' \'' </ span > ;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00485" ></ a >< span class = "lineno" > 485</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00486" ></ a >< span class = "lineno" > 486</ span >   < span class = "comment" > // Add a space if we are not at the last entry</ span ></ div >
< div class = "line" >< a name = "l00487" ></ a >< span class = "lineno" > 487</ span >   < span class = "keywordflow" > if</ span > ((< span class = "keywordtype" > void</ span > *)& s != (< span class = "keywordtype" > void</ span > *)& it.second.defaultValue.back())</ div >
< div class = "line" >< a name = "l00488" ></ a >< span class = "lineno" > 488</ span >   defaultValueSs << < span class = "stringliteral" > " " </ span > ;</ div >
< div class = "line" >< a name = "l00489" ></ a >< span class = "lineno" > 489</ span >   }</ div >
< div class = "line" >< a name = "l00490" ></ a >< span class = "lineno" > 490</ span >   cached.defaultVal = defaultValueSs.str();</ div >
< div class = "line" >< a name = "l00491" ></ a >< span class = "lineno" > 491</ span >   }</ div >
< div class = "line" >< a name = "l00492" ></ a >< span class = "lineno" > 492</ span >   </ div >
< div class = "line" >< a name = "l00493" ></ a >< span class = "lineno" > 493</ span >   < span class = "comment" > // Now generate the documentatino body</ span ></ div >
< div class = "line" >< a name = "l00494" ></ a >< span class = "lineno" > 494</ span >   < span class = "keywordflow" > if</ span > (paramInfos.size() > 0)</ div >
< div class = "line" >< a name = "l00495" ></ a >< span class = "lineno" > 495</ span >   {</ div >
< div class = "line" >< a name = "l00496" ></ a >< span class = "lineno" > 496</ span >   ss << std::endl </ div >
< div class = "line" >< a name = "l00497" ></ a >< span class = "lineno" > 497</ span >   << < span class = "stringliteral" > " ==== AVAILABLE PARAMETERS ====" </ span > </ div >
< div class = "line" >< a name = "l00498" ></ a >< span class = "lineno" > 498</ span >   << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00499" ></ a >< span class = "lineno" > 499</ span >   </ div >
< div class = "line" >< a name = "l00500" ></ a >< span class = "lineno" > 500</ span >   std::size_t counter = 0;</ div >
< div class = "line" >< a name = "l00501" ></ a >< span class = "lineno" > 501</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > & it : paramInfos)</ div >
< div class = "line" >< a name = "l00502" ></ a >< span class = "lineno" > 502</ span >   {</ div >
< div class = "line" >< a name = "l00503" ></ a >< span class = "lineno" > 503</ span >   < span class = "keyword" > const</ span > ParamDocEntry& pde = it.second;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00504" ></ a >< span class = "lineno" > 504</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00505" ></ a >< span class = "lineno" > 505</ span >   < span class = "comment" > // Put name</ span ></ div >
< div class = "line" >< a name = "l00506" ></ a >< span class = "lineno" > 506</ span >   ss << it.first << < span class = "stringliteral" > " " </ span > ;</ div >
< div class = "line" >< a name = "l00507" ></ a >< span class = "lineno" > 507</ span >   </ div >
< div class = "line" >< a name = "l00508" ></ a >< span class = "lineno" > 508</ span >   < span class = "comment" > // Put abbreviation</ span ></ div >
< div class = "line" >< a name = "l00509" ></ a >< span class = "lineno" > 509</ span >   < span class = "keywordflow" > if</ span > (pde.abbreviation.length() > 0)</ div >
< div class = "line" >< a name = "l00510" ></ a >< span class = "lineno" > 510</ span >   ss << pde.abbreviation << < span class = "stringliteral" > " " </ span > ;</ div >
< div class = "line" >< a name = "l00511" ></ a >< span class = "lineno" > 511</ span >   </ div >
< div class = "line" >< a name = "l00512" ></ a >< span class = "lineno" > 512</ span >   < span class = "comment" > // Put type</ span ></ div >
< div class = "line" >< a name = "l00513" ></ a >< span class = "lineno" > 513</ span >   < span class = "keywordflow" > if</ span > (pde.typeIsForced)</ div >
< div class = "line" >< a name = "l00514" ></ a >< span class = "lineno" > 514</ span >   ss << pde.type << < span class = "stringliteral" > " " </ span > ;</ div >
< div class = "line" >< a name = "l00515" ></ a >< span class = "lineno" > 515</ span >   </ div >
< div class = "line" >< a name = "l00516" ></ a >< span class = "lineno" > 516</ span >   < span class = "comment" > // Put default value</ span ></ div >
< div class = "line" >< a name = "l00517" ></ a >< span class = "lineno" > 517</ span >   < span class = "keywordflow" > if</ span > (pde.defaultVal.length() > 0)</ div >
< div class = "line" >< a name = "l00518" ></ a >< span class = "lineno" > 518</ span >   ss << < span class = "stringliteral" > " default=[" </ span > << pde.defaultVal << < span class = "stringliteral" > " ] " </ span > ;</ div >
< div class = "line" >< a name = "l00519" ></ a >< span class = "lineno" > 519</ span >   </ div >
< div class = "line" >< a name = "l00520" ></ a >< span class = "lineno" > 520</ span >   < span class = "comment" > // Put required tag, but only if no default value</ span ></ div >
< div class = "line" >< a name = "l00521" ></ a >< span class = "lineno" > 521</ span >   < span class = "keywordflow" > if</ span > ((pde.required) && (pde.defaultVal.length() == 0))</ div >
< div class = "line" >< a name = "l00522" ></ a >< span class = "lineno" > 522</ span >   ss << < span class = "stringliteral" > " [[REQUIRED]] " </ span > ;</ div >
< div class = "line" >< a name = "l00523" ></ a >< span class = "lineno" > 523</ span >   </ div >
< div class = "line" >< a name = "l00524" ></ a >< span class = "lineno" > 524</ span >   < span class = "comment" > // Put brief description</ span ></ div >
< div class = "line" >< a name = "l00525" ></ a >< span class = "lineno" > 525</ span >   < span class = "keywordflow" > if</ span > (pde.description.length() > 0)</ div >
< div class = "line" >< a name = "l00526" ></ a >< span class = "lineno" > 526</ span >   ss << pde.description;</ div >
< div class = "line" >< a name = "l00527" ></ a >< span class = "lineno" > 527</ span >   </ div >
< div class = "line" >< a name = "l00528" ></ a >< span class = "lineno" > 528</ span >   < span class = "comment" > // Omit linebreaks when we' re on the last element</ span ></ div >
< div class = "line" >< a name = "l00529" ></ a >< span class = "lineno" > 529</ span >   < span class = "keywordflow" > if</ span > (counter < paramInfos.size()-1)</ div >
< div class = "line" >< a name = "l00530" ></ a >< span class = "lineno" > 530</ span >   ss << std::endl << std::endl;</ div >
< div class = "line" >< a name = "l00531" ></ a >< span class = "lineno" > 531</ span >   </ div >
< div class = "line" >< a name = "l00532" ></ a >< span class = "lineno" > 532</ span >   counter++;</ div >
< div class = "line" >< a name = "l00533" ></ a >< span class = "lineno" > 533</ span >   }</ div >
< div class = "line" >< a name = "l00534" ></ a >< span class = "lineno" > 534</ span >   }</ div >
< div class = "line" >< a name = "l00535" ></ a >< span class = "lineno" > 535</ span >   </ div >
< div class = "line" >< a name = "l00536" ></ a >< span class = "lineno" > 536</ span >   < span class = "keywordflow" > return</ span > ss.str();</ div >
< div class = "line" >< a name = "l00537" ></ a >< span class = "lineno" > 537</ span >   }</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00538" ></ a >< span class = "lineno" > 538</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00539" ></ a >< span class = "lineno" > 539</ span >   < span class = "keywordtype" > void</ span > CmdArgsInterface::ApplyConstraints()</ div >
< div class = "line" >< a name = "l00540" ></ a >< span class = "lineno" > 540</ span >   {</ div >
< div class = "line" >< a name = "l00541" ></ a >< span class = "lineno" > 541</ span >   < span class = "comment" > // Enforce required parameters / default values</ span ></ div >
< div class = "line" >< a name = "l00542" ></ a >< span class = "lineno" > 542</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > & pc : parameterConstraints)</ div >
< div class = "line" >< a name = "l00543" ></ a >< span class = "lineno" > 543</ span >   < span class = "comment" > // Parameter in question is not supplied</ span ></ div >
< div class = "line" >< a name = "l00544" ></ a >< span class = "lineno" > 544</ span >   < span class = "keywordflow" > if</ span > (!< a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > HasParam</ a > (pc.second.key))</ div >
< div class = "line" >< a name = "l00545" ></ a >< span class = "lineno" > 545</ span >   {</ div >
< div class = "line" >< a name = "l00546" ></ a >< span class = "lineno" > 546</ span >   < span class = "comment" > // Do we have a default value?</ span ></ div >
< div class = "line" >< a name = "l00547" ></ a >< span class = "lineno" > 547</ span >   < span class = "keywordflow" > if</ span > (pc.second.defaultValue.size() > 0)</ div >
< div class = "line" >< a name = "l00548" ></ a >< span class = "lineno" > 548</ span >   {</ div >
< div class = "line" >< a name = "l00549" ></ a >< span class = "lineno" > 549</ span >   < span class = "comment" > // Then create it now, by its default value</ span ></ div >
< div class = "line" >< a name = "l00550" ></ a >< span class = "lineno" > 550</ span >   < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > * tmp = ParseValue(pc.second.defaultValue, & pc.second);</ div >
< div class = "line" >< a name = "l00551" ></ a >< span class = "lineno" > 551</ span >   parameters.insert(std::pair< std::string, Parameter*> (</ div >
< div class = "line" >< a name = "l00552" ></ a >< span class = "lineno" > 552</ span >   pc.second.key,</ div >
< div class = "line" >< a name = "l00553" ></ a >< span class = "lineno" > 553</ span >   < span class = "keyword" > new</ span > < a class = "code" href = "classHazelnp_1_1Parameter.html" > Parameter</ a > (pc.second.key, tmp)</ div >
< div class = "line" >< a name = "l00554" ></ a >< span class = "lineno" > 554</ span >   ));</ div >
< div class = "line" >< a name = "l00555" ></ a >< span class = "lineno" > 555</ span >   </ div >
< div class = "line" >< a name = "l00556" ></ a >< span class = "lineno" > 556</ span >   < span class = "keyword" > delete</ span > tmp;</ div >
< div class = "line" >< a name = "l00557" ></ a >< span class = "lineno" > 557</ span >   tmp = < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00558" ></ a >< span class = "lineno" > 558</ span >   }</ div >
< div class = "line" >< a name = "l00559" ></ a >< span class = "lineno" > 559</ span >   < span class = "comment" > // So we do not have a default value...</ span ></ div >
< div class = "line" >< a name = "l00560" ></ a >< span class = "lineno" > 560</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00561" ></ a >< span class = "lineno" > 561</ span >   {</ div >
< div class = "line" >< a name = "l00562" ></ a >< span class = "lineno" > 562</ span >   < span class = "comment" > // Is it important to have the missing parameter?</ span ></ div >
< div class = "line" >< a name = "l00563" ></ a >< span class = "lineno" > 563</ span >   < span class = "keywordflow" > if</ span > (pc.second.required)</ div >
< div class = "line" >< a name = "l00564" ></ a >< span class = "lineno" > 564</ span >   < span class = "comment" > // Throw an error message then</ span ></ div >
< div class = "line" >< a name = "l00565" ></ a >< span class = "lineno" > 565</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintMissingValue.html" > HazelnuppConstraintMissingValue</ a > (</ div >
< div class = "line" >< a name = "l00566" ></ a >< span class = "lineno" > 566</ span >   pc.second.key,</ div >
< div class = "line" >< a name = "l00567" ></ a >< span class = "lineno" > 567</ span >   < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > GetDescription</ a > (pc.second.key)</ div >
< div class = "line" >< a name = "l00568" ></ a >< span class = "lineno" > 568</ span >   );</ div >
< div class = "line" >< a name = "l00569" ></ a >< span class = "lineno" > 569</ span >   }</ div >
< div class = "line" >< a name = "l00570" ></ a >< span class = "lineno" > 570</ span >   }</ div >
< div class = "line" >< a name = "l00571" ></ a >< span class = "lineno" > 571</ span >   < span class = "comment" > // The parameter in question IS supplied</ span ></ div >
< div class = "line" >< a name = "l00572" ></ a >< span class = "lineno" > 572</ span >   < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a name = "l00573" ></ a >< span class = "lineno" > 573</ span >   {</ div >
< div class = "line" >< a name = "l00574" ></ a >< span class = "lineno" > 574</ span >   < span class = "comment" > // Enforce parameter incompatibility</ span ></ div >
< div class = "line" >< a name = "l00575" ></ a >< span class = "lineno" > 575</ span >   </ div >
< div class = "line" >< a name = "l00576" ></ a >< span class = "lineno" > 576</ span >   < span class = "comment" > // Is ANY parameter present listed as incompatible with our current one?</ span ></ div >
< div class = "line" >< a name = "l00577" ></ a >< span class = "lineno" > 577</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > std::string& incompatibility : pc.second.incompatibleParameters)</ div >
< div class = "line" >< a name = "l00578" ></ a >< span class = "lineno" > 578</ span >   < span class = "keywordflow" > for</ span > (< span class = "keyword" > const</ span > std::pair< std::string, Parameter*>& otherParam : parameters)</ div >
< div class = "line" >< a name = "l00579" ></ a >< span class = "lineno" > 579</ span >   {</ div >
< div class = "line" >< a name = "l00580" ></ a >< span class = "lineno" > 580</ span >   < span class = "keywordflow" > if</ span > (otherParam.first == incompatibility)</ div >
< div class = "line" >< a name = "l00581" ></ a >< span class = "lineno" > 581</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppConstraintIncompatibleParameters.html" > HazelnuppConstraintIncompatibleParameters</ a > (pc.second.key, incompatibility);</ div >
< div class = "line" >< a name = "l00582" ></ a >< span class = "lineno" > 582</ span >   }</ div >
< div class = "line" >< a name = "l00583" ></ a >< span class = "lineno" > 583</ span >   }</ div >
< div class = "line" >< a name = "l00584" ></ a >< span class = "lineno" > 584</ span >   </ div >
< div class = "line" >< a name = "l00585" ></ a >< span class = "lineno" > 585</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00586" ></ a >< span class = "lineno" > 586</ span >   }</ div >
< div class = "line" >< a name = "l00587" ></ a >< span class = "lineno" > 587</ span >   </ div >
< div class = "line" >< a name = "l00588" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#adec82884377a5193f68dcc7b6ef69d8b" > 588</ a ></ span >   < a class = "code" href = "structHazelnp_1_1ParamConstraint.html" > ParamConstraint</ a > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#adec82884377a5193f68dcc7b6ef69d8b" > CmdArgsInterface::GetConstraint</ a > (< span class = "keyword" > const</ span > std::string& parameter)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00589" ></ a >< span class = "lineno" > 589</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00590" ></ a >< span class = "lineno" > 590</ span >   < span class = "keywordflow" > return</ span > parameterConstraints.find(parameter)-> second;</ div >
< div class = "line" >< a name = "l00591" ></ a >< span class = "lineno" > 591</ span >   }</ div >
< div class = "line" >< a name = "l00592" ></ a >< span class = "lineno" > 592</ span >   </ div >
< div class = "line" >< a name = "l00593" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a112d2d5e3fd1cf1507592389c8454984" > 593</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a112d2d5e3fd1cf1507592389c8454984" > CmdArgsInterface::ClearConstraint</ a > (< span class = "keyword" > const</ span > std::string& parameter)</ div >
< div class = "line" >< a name = "l00594" ></ a >< span class = "lineno" > 594</ span >   {</ div >
< div class = "line" >< a name = "l00595" ></ a >< span class = "lineno" > 595</ span >   parameterConstraints.erase(parameter);</ div >
< div class = "line" >< a name = "l00596" ></ a >< span class = "lineno" > 596</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00597" ></ a >< span class = "lineno" > 597</ span >   }</ div >
< div class = "line" >< a name = "l00598" ></ a >< span class = "lineno" > 598</ span >   </ div >
< div class = "line" >< a name = "l00599" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#afe83a815b21d37b3d2a6d0ef67137faf" > 599</ a ></ span >   < span class = "keyword" > const</ span > std::string& < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#afe83a815b21d37b3d2a6d0ef67137faf" > CmdArgsInterface::GetExecutableName</ a > ()< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00600" ></ a >< span class = "lineno" > 600</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00601" ></ a >< span class = "lineno" > 601</ span >   < span class = "keywordflow" > return</ span > executableName;</ div >
< div class = "line" >< a name = "l00602" ></ a >< span class = "lineno" > 602</ span >   }</ div >
< div class = "line" >< a name = "l00603" ></ a >< span class = "lineno" > 603</ span >   </ div >
< div class = "line" >< a name = "l00604" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#af5e43c1067fb6c1074d9be3427c7a415" > 604</ a ></ span >   < span class = "keyword" > const</ span > < a class = "code" href = "classHazelnp_1_1Value.html" > Value</ a > & < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#af5e43c1067fb6c1074d9be3427c7a415" > CmdArgsInterface::operator[]</ a > (< span class = "keyword" > const</ span > std::string& key)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00605" ></ a >< span class = "lineno" > 605</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00606" ></ a >< span class = "lineno" > 606</ span >   < span class = "comment" > // Throw exception if param is unknown</ span ></ div >
< div class = "line" >< a name = "l00607" ></ a >< span class = "lineno" > 607</ span >   < span class = "keywordflow" > if</ span > (!< a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > HasParam</ a > (key))</ div >
< div class = "line" >< a name = "l00608" ></ a >< span class = "lineno" > 608</ span >   < span class = "keywordflow" > throw</ span > < a class = "code" href = "classHazelnp_1_1HazelnuppInvalidKeyException.html" > HazelnuppInvalidKeyException</ a > ();</ div >
< div class = "line" >< a name = "l00609" ></ a >< span class = "lineno" > 609</ span >   </ div >
< div class = "line" >< a name = "l00610" ></ a >< span class = "lineno" > 610</ span >   < span class = "keywordflow" > return</ span > *parameters.find(key)-> second-> GetValue();</ div >
< div class = "line" >< a name = "l00611" ></ a >< span class = "lineno" > 611</ span >   }</ div >
< div class = "line" >< a name = "l00612" ></ a >< span class = "lineno" > 612</ span >   </ div >
< div class = "line" >< a name = "l00613" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#aaccf591a74408aeb4363033fe8cb2224" > 613</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#aaccf591a74408aeb4363033fe8cb2224" > CmdArgsInterface::RegisterAbbreviation</ a > (< span class = "keyword" > const</ span > std::string& abbrev, < span class = "keyword" > const</ span > std::string& target)</ div >
< div class = "line" >< a name = "l00614" ></ a >< span class = "lineno" > 614</ span >   {</ div >
< div class = "line" >< a name = "l00615" ></ a >< span class = "lineno" > 615</ span >   parameterAbreviations.insert(std::pair< std::string, std::string> (abbrev, target));</ div >
< div class = "line" >< a name = "l00616" ></ a >< span class = "lineno" > 616</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00617" ></ a >< span class = "lineno" > 617</ span >   }</ div >
< div class = "line" >< a name = "l00618" ></ a >< span class = "lineno" > 618</ span >   </ div >
< div class = "line" >< a name = "l00619" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a1486bfef870e6502aefc23b11ce6caaf" > 619</ a ></ span >   < span class = "keyword" > const</ span > std::string& < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a1486bfef870e6502aefc23b11ce6caaf" > CmdArgsInterface::GetAbbreviation</ a > (< span class = "keyword" > const</ span > std::string& abbrev)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00620" ></ a >< span class = "lineno" > 620</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00621" ></ a >< span class = "lineno" > 621</ span >   < span class = "keywordflow" > if</ span > (!< a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9" > HasAbbreviation</ a > (abbrev))</ div >
< div class = "line" >< a name = "l00622" ></ a >< span class = "lineno" > 622</ span >   < span class = "keywordflow" > return</ span > < a class = "code" href = "namespaceHazelnp_1_1Placeholders.html#a90536f0cd5261b18da736e954c6b8b79" > Placeholders::g_emptyString</ a > ;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00623" ></ a >< span class = "lineno" > 623</ span >   </ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00624" ></ a >< span class = "lineno" > 624</ span >   < span class = "keywordflow" > return</ span > parameterAbreviations.find(abbrev)-> second;</ div >
2021-06-08 14:02:49 +02:00
< div class = "line" >< a name = "l00625" ></ a >< span class = "lineno" > 625</ span >   }</ div >
2021-09-05 12:12:03 +02:00
< div class = "line" >< a name = "l00626" ></ a >< span class = "lineno" > 626</ span >   </ div >
< div class = "line" >< a name = "l00627" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9" > 627</ a ></ span >   < span class = "keywordtype" > bool</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9" > CmdArgsInterface::HasAbbreviation</ a > (< span class = "keyword" > const</ span > std::string& abbrev)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00628" ></ a >< span class = "lineno" > 628</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00629" ></ a >< span class = "lineno" > 629</ span >   < span class = "keywordflow" > return</ span > parameterAbreviations.find(abbrev) != parameterAbreviations.end();</ div >
< div class = "line" >< a name = "l00630" ></ a >< span class = "lineno" > 630</ span >   }</ div >
< div class = "line" >< a name = "l00631" ></ a >< span class = "lineno" > 631</ span >   </ div >
< div class = "line" >< a name = "l00632" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a31f690bd95d5469d38af816183cbe3e7" > 632</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a31f690bd95d5469d38af816183cbe3e7" > CmdArgsInterface::ClearAbbreviation</ a > (< span class = "keyword" > const</ span > std::string& abbrevation)</ div >
< div class = "line" >< a name = "l00633" ></ a >< span class = "lineno" > 633</ span >   {</ div >
< div class = "line" >< a name = "l00634" ></ a >< span class = "lineno" > 634</ span >   parameterAbreviations.erase(abbrevation);</ div >
< div class = "line" >< a name = "l00635" ></ a >< span class = "lineno" > 635</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00636" ></ a >< span class = "lineno" > 636</ span >   }</ div >
< div class = "line" >< a name = "l00637" ></ a >< span class = "lineno" > 637</ span >   </ div >
< div class = "line" >< a name = "l00638" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a019e48f48427e7caa76c964bd0f117d0" > 638</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a019e48f48427e7caa76c964bd0f117d0" > CmdArgsInterface::ClearAbbreviations</ a > ()</ div >
< div class = "line" >< a name = "l00639" ></ a >< span class = "lineno" > 639</ span >   {</ div >
< div class = "line" >< a name = "l00640" ></ a >< span class = "lineno" > 640</ span >   parameterAbreviations.clear();</ div >
< div class = "line" >< a name = "l00641" ></ a >< span class = "lineno" > 641</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00642" ></ a >< span class = "lineno" > 642</ span >   }</ div >
< div class = "line" >< a name = "l00643" ></ a >< span class = "lineno" > 643</ span >   </ div >
< div class = "line" >< a name = "l00644" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#aa30222df012f357455f90e3620346bb2" > 644</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#aa30222df012f357455f90e3620346bb2" > CmdArgsInterface::RegisterConstraint</ a > (< span class = "keyword" > const</ span > std::string& key, < span class = "keyword" > const</ span > < a class = "code" href = "structHazelnp_1_1ParamConstraint.html" > ParamConstraint</ a > & constraint)</ div >
< div class = "line" >< a name = "l00645" ></ a >< span class = "lineno" > 645</ span >   {</ div >
< div class = "line" >< a name = "l00646" ></ a >< span class = "lineno" > 646</ span >   < span class = "comment" > // Magic syntax, wooo</ span ></ div >
< div class = "line" >< a name = "l00647" ></ a >< span class = "lineno" > 647</ span >   (parameterConstraints[key] = constraint).key = key;</ div >
< div class = "line" >< a name = "l00648" ></ a >< span class = "lineno" > 648</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00649" ></ a >< span class = "lineno" > 649</ span >   }</ div >
< div class = "line" >< a name = "l00650" ></ a >< span class = "lineno" > 650</ span >   </ div >
< div class = "line" >< a name = "l00651" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#ad472671fb12450b8d929418fbbffbe40" > 651</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#ad472671fb12450b8d929418fbbffbe40" > CmdArgsInterface::ClearConstraints</ a > ()</ div >
< div class = "line" >< a name = "l00652" ></ a >< span class = "lineno" > 652</ span >   {</ div >
< div class = "line" >< a name = "l00653" ></ a >< span class = "lineno" > 653</ span >   parameterConstraints.clear();</ div >
< div class = "line" >< a name = "l00654" ></ a >< span class = "lineno" > 654</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00655" ></ a >< span class = "lineno" > 655</ span >   }</ div >
< div class = "line" >< a name = "l00656" ></ a >< span class = "lineno" > 656</ span >   </ div >
< div class = "line" >< a name = "l00657" ></ a >< span class = "lineno" >< a class = "line" href = "classHazelnp_1_1CmdArgsInterface.html#a16a3a02f77d240d8cf51cd4ee1797113" > 657</ a ></ span >   < span class = "keywordtype" > void</ span > < a class = "code" href = "classHazelnp_1_1CmdArgsInterface.html#a16a3a02f77d240d8cf51cd4ee1797113" > CmdArgsInterface::SetCrashOnFail</ a > (< span class = "keywordtype" > bool</ span > crashOnFail)</ div >
< div class = "line" >< a name = "l00658" ></ a >< span class = "lineno" > 658</ span >   {</ div >
< div class = "line" >< a name = "l00659" ></ a >< span class = "lineno" > 659</ span >   this-> crashOnFail = crashOnFail;</ div >
< div class = "line" >< a name = "l00660" ></ a >< span class = "lineno" > 660</ span >   < span class = "keywordflow" > return</ span > ;</ div >
< div class = "line" >< a name = "l00661" ></ a >< span class = "lineno" > 661</ span >   }</ div >
< div class = "line" >< a name = "l00662" ></ a >< span class = "lineno" > 662</ span >   </ div >
< div class = "line" >< a name = "l00663" ></ a >< span class = "lineno" > 663</ span >   < span class = "keyword" > const</ span > < a class = "code" href = "structHazelnp_1_1ParamConstraint.html" > ParamConstraint</ a > * CmdArgsInterface::GetConstraintForKey(< span class = "keyword" > const</ span > std::string& key)< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a name = "l00664" ></ a >< span class = "lineno" > 664</ span >   < span class = "keyword" ></ span > {</ div >
< div class = "line" >< a name = "l00665" ></ a >< span class = "lineno" > 665</ span >   < span class = "keyword" > const</ span > < span class = "keyword" > auto</ span > constraint = parameterConstraints.find(key);</ div >
< div class = "line" >< a name = "l00666" ></ a >< span class = "lineno" > 666</ span >   </ div >
< div class = "line" >< a name = "l00667" ></ a >< span class = "lineno" > 667</ span >   < span class = "keywordflow" > if</ span > (constraint == parameterConstraints.end())</ div >
< div class = "line" >< a name = "l00668" ></ a >< span class = "lineno" > 668</ span >   < span class = "keywordflow" > return</ span > < span class = "keyword" > nullptr</ span > ;</ div >
< div class = "line" >< a name = "l00669" ></ a >< span class = "lineno" > 669</ span >   </ div >
< div class = "line" >< a name = "l00670" ></ a >< span class = "lineno" > 670</ span >   < span class = "keywordflow" > return</ span > & constraint-> second;</ div >
< div class = "line" >< a name = "l00671" ></ a >< span class = "lineno" > 671</ span >   }</ div >
2021-06-08 14:02:49 +02:00
</ div > <!-- fragment --> </ div > <!-- contents -->
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a1026d98c23659b6d3d108b231806a1e3" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a1026d98c23659b6d3d108b231806a1e3" > Hazelnp::CmdArgsInterface::GetCatchHelp</ a ></ div >< div class = "ttdeci" > bool GetCatchHelp() const</ div >< div class = "ttdoc" > Retruns whether the CmdArgsInterface should automatically catch the – help parameter,...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00374" > CmdArgsInterface.cpp:374</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aHazelnuppException_8h_html" >< div class = "ttname" >< a href = "HazelnuppException_8h.html" > HazelnuppException.h</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html" >< div class = "ttname" >< a href = "namespaceHazelnp.html" > Hazelnp</ a ></ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8h_source.html#l00009" > CmdArgsInterface.h:9</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1IntValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1IntValue.html" > Hazelnp::IntValue</ a ></ div >< div class = "ttdoc" > Specializations for integer values (uses long long int)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "IntValue_8h_source.html#l00008" > IntValue.h:8</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_adec82884377a5193f68dcc7b6ef69d8b" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#adec82884377a5193f68dcc7b6ef69d8b" > Hazelnp::CmdArgsInterface::GetConstraint</ a ></ div >< div class = "ttdeci" > ParamConstraint GetConstraint(const std::string & parameter) const</ div >< div class = "ttdoc" > Will return the constraint information for a specific parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00588" > CmdArgsInterface.cpp:588</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a019e48f48427e7caa76c964bd0f117d0" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a019e48f48427e7caa76c964bd0f117d0" > Hazelnp::CmdArgsInterface::ClearAbbreviations</ a ></ div >< div class = "ttdeci" > void ClearAbbreviations()</ div >< div class = "ttdoc" > Will delete all abbreviations.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00638" > CmdArgsInterface.cpp:638</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppConstraintIncompatibleParameters_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppConstraintIncompatibleParameters.html" > Hazelnp::HazelnuppConstraintIncompatibleParameters</ a ></ div >< div class = "ttdoc" > Gets thrown when a parameter constrained to be incompatible with other parameters gets supplied along...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00101" > HazelnuppException.h:101</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_abf553ed4acabf9e1db357715bc10533c" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#abf553ed4acabf9e1db357715bc10533c" > Hazelnp::CmdArgsInterface::SetCatchHelp</ a ></ div >< div class = "ttdeci" > void SetCatchHelp(bool catchHelp)</ div >< div class = "ttdoc" > Sets whether the CmdArgsInterface should automatically catch the – help parameter, print the parameter...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00368" > CmdArgsInterface.cpp:368</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a58b81709e631cee5f3db3f3f48611fe9" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9" > Hazelnp::CmdArgsInterface::HasAbbreviation</ a ></ div >< div class = "ttdeci" > bool HasAbbreviation(const std::string & abbrev) const</ div >< div class = "ttdoc" > Will check wether or not an abbreviation is registered.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00627" > CmdArgsInterface.cpp:627</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppInvalidKeyException_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppInvalidKeyException.html" > Hazelnp::HazelnuppInvalidKeyException</ a ></ div >< div class = "ttdoc" > Gets thrown when an non-existent key gets dereferenced.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00029" > HazelnuppException.h:29</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_aa30222df012f357455f90e3620346bb2" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#aa30222df012f357455f90e3620346bb2" > Hazelnp::CmdArgsInterface::RegisterConstraint</ a ></ div >< div class = "ttdeci" > void RegisterConstraint(const std::string & key, const ParamConstraint & constraint)</ div >< div class = "ttdoc" > Will register a constraint for a parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00644" > CmdArgsInterface.cpp:644</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aStringValue_8h_html" >< div class = "ttname" >< a href = "StringValue_8h.html" > StringValue.h</ a ></ div ></ div >
< div class = "ttc" id = "aCmdArgsInterface_8h_html" >< div class = "ttname" >< a href = "CmdArgsInterface_8h.html" > CmdArgsInterface.h</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppException_html_aa86c415a0f2b4ea5f11892145d1ea83e" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e" > Hazelnp::HazelnuppException::What</ a ></ div >< div class = "ttdeci" > const std::string & What() const</ div >< div class = "ttdoc" > Will return an error message.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00018" > HazelnuppException.h:18</ a ></ div ></ div >
< div class = "ttc" id = "aIntValue_8h_html" >< div class = "ttname" >< a href = "IntValue_8h.html" > IntValue.h</ a ></ div ></ div >
< div class = "ttc" id = "aPlaceholders_8h_html" >< div class = "ttname" >< a href = "Placeholders_8h.html" > Placeholders.h</ a ></ div ></ div >
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803fa6d0c9fc747131795e6e5d0c5119f12cb" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa6d0c9fc747131795e6e5d0c5119f12cb" > Hazelnp::DATA_TYPE::VOID</ a ></ div >< div class = "ttdeci" > @ VOID</ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1FloatValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1FloatValue.html" > Hazelnp::FloatValue</ a ></ div >< div class = "ttdoc" > Specializations for floating point values (uses long double)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "FloatValue_8h_source.html#l00009" > FloatValue.h:9</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a112d2d5e3fd1cf1507592389c8454984" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a112d2d5e3fd1cf1507592389c8454984" > Hazelnp::CmdArgsInterface::ClearConstraint</ a ></ div >< div class = "ttdeci" > void ClearConstraint(const std::string & parameter)</ div >< div class = "ttdoc" > Will the constraint of a specific parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00593" > CmdArgsInterface.cpp:593</ a ></ div ></ div >
< div class = "ttc" id = "astructHazelnp_1_1ParamConstraint_html_a203b6fd1b9788a529aa0f15fe94fd24a" >< div class = "ttname" >< a href = "structHazelnp_1_1ParamConstraint.html#a203b6fd1b9788a529aa0f15fe94fd24a" > Hazelnp::ParamConstraint::requiredType</ a ></ div >< div class = "ttdeci" > DATA_TYPE requiredType</ div >< div class = "ttdoc" > Constrain the parameter to this value. Requires constrainType to be set to true.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "ParamConstraint_8h_source.html#l00073" > ParamConstraint.h:73</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1Value_html" >< div class = "ttname" >< a href = "classHazelnp_1_1Value.html" > Hazelnp::Value</ a ></ div >< div class = "ttdoc" > Abstract class for values.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "Value_8h_source.html#l00010" > Value.h:10</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppConstraintException_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppConstraintException.html" > Hazelnp::HazelnuppConstraintException</ a ></ div >< div class = "ttdoc" > Gets thrown something bad happens because of parameter constraints.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00047" > HazelnuppException.h:47</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_aaccf591a74408aeb4363033fe8cb2224" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#aaccf591a74408aeb4363033fe8cb2224" > Hazelnp::CmdArgsInterface::RegisterAbbreviation</ a ></ div >< div class = "ttdeci" > void RegisterAbbreviation(const std::string & abbrev, const std::string & target)</ div >< div class = "ttdoc" > Will register an abbreviation (like -f for – force)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00613" > CmdArgsInterface.cpp:613</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a3a7fa36fe69ee8bf3b400983a21ecd24" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24" > Hazelnp::CmdArgsInterface::HasParam</ a ></ div >< div class = "ttdeci" > bool HasParam(const std::string & key) const</ div >< div class = "ttdoc" > Will check wether a parameter exists given a key, or not.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00199" > CmdArgsInterface.cpp:199</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa298cb25408234de02baf2085803a464a" > Hazelnp::DATA_TYPE::LIST</ a ></ div >< div class = "ttdeci" > @ LIST</ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_ad472671fb12450b8d929418fbbffbe40" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#ad472671fb12450b8d929418fbbffbe40" > Hazelnp::CmdArgsInterface::ClearConstraints</ a ></ div >< div class = "ttdeci" > void ClearConstraints()</ div >< div class = "ttdoc" > Will delete all constraints.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00651" > CmdArgsInterface.cpp:651</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1Parameter_html" >< div class = "ttname" >< a href = "classHazelnp_1_1Parameter.html" > Hazelnp::Parameter</ a ></ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "Parameter_8h_source.html#l00008" > Parameter.h:8</ a ></ div ></ div >
< div class = "ttc" id = "astructHazelnp_1_1ParamConstraint_html" >< div class = "ttname" >< a href = "structHazelnp_1_1ParamConstraint.html" > Hazelnp::ParamConstraint</ a ></ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "ParamConstraint_8h_source.html#l00008" > ParamConstraint.h:8</ a ></ div ></ div >
< div class = "ttc" id = "anamespaceHazelnp_1_1Placeholders_html_a90536f0cd5261b18da736e954c6b8b79" >< div class = "ttname" >< a href = "namespaceHazelnp_1_1Placeholders.html#a90536f0cd5261b18da736e954c6b8b79" > Hazelnp::Placeholders::g_emptyString</ a ></ div >< div class = "ttdeci" > static const std::string g_emptyString</ div >< div class = "ttdoc" > The only purpose of this is to provide the ability to return an empty string as an error for std::str...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "Placeholders_8h_source.html#l00009" > Placeholders.h:9</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a3e60c7a90c11bdc634d0f5d0dba5064c" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a3e60c7a90c11bdc634d0f5d0dba5064c" > Hazelnp::CmdArgsInterface::GetCrashOnFail</ a ></ div >< div class = "ttdeci" > bool GetCrashOnFail() const</ div >< div class = "ttdoc" > Gets whether the application crashes on an exception whilst parsing, and prints to stderr.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00363" > CmdArgsInterface.cpp:363</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a5003f826ee31c6365bf4b6e8b2c8d9f1" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a5003f826ee31c6365bf4b6e8b2c8d9f1" > Hazelnp::CmdArgsInterface::HasDescription</ a ></ div >< div class = "ttdeci" > bool HasDescription(const std::string & parameter) const</ div >< div class = "ttdoc" > Returns whether or not a given parameter has a registered description.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00407" > CmdArgsInterface.cpp:407</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a62889ce1faa90d0f20be3ae45803baa0" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a62889ce1faa90d0f20be3ae45803baa0" > Hazelnp::CmdArgsInterface::ClearDescription</ a ></ div >< div class = "ttdeci" > void ClearDescription(const std::string & parameter)</ div >< div class = "ttdoc" > Will delete the description of a parameter if it exists.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00412" > CmdArgsInterface.cpp:412</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aListValue_8h_html" >< div class = "ttname" >< a href = "ListValue_8h.html" > ListValue.h</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "astructHazelnp_1_1ParamConstraint_html_a88a4a4c215723259c71853992d09acac" >< div class = "ttname" >< a href = "structHazelnp_1_1ParamConstraint.html#a88a4a4c215723259c71853992d09acac" > Hazelnp::ParamConstraint::constrainType</ a ></ div >< div class = "ttdeci" > bool constrainType</ div >< div class = "ttdoc" > Should this parameter be forced to be of a certain type? Remember to set constrainTo to the wanted ...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "ParamConstraint_8h_source.html#l00070" > ParamConstraint.h:70</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppException_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppException.html" > Hazelnp::HazelnuppException</ a ></ div >< div class = "ttdoc" > Generic hazelnupp exception.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00011" > HazelnuppException.h:11</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_aa1189c249bf0d8a4fbd5fb8f03a30212" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212" > Hazelnp::CmdArgsInterface::CmdArgsInterface</ a ></ div >< div class = "ttdeci" > CmdArgsInterface()</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00015" > CmdArgsInterface.cpp:15</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1Parameter_html_a7acd68ce06eec06ab286b1a062f9c8d6" >< div class = "ttname" >< a href = "classHazelnp_1_1Parameter.html#a7acd68ce06eec06ab286b1a062f9c8d6" > Hazelnp::Parameter::Key</ a ></ div >< div class = "ttdeci" > const std::string & Key() const</ div >< div class = "ttdoc" > Will return the key of this parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "Parameter_8cpp_source.html#l00021" > Parameter.cpp:21</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppConstraintMissingValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppConstraintMissingValue.html" > Hazelnp::HazelnuppConstraintMissingValue</ a ></ div >< div class = "ttdoc" > Gets thrown when a parameter constrained to be required is not provided, and has no default value set...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00080" > HazelnuppException.h:80</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a31f690bd95d5469d38af816183cbe3e7" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a31f690bd95d5469d38af816183cbe3e7" > Hazelnp::CmdArgsInterface::ClearAbbreviation</ a ></ div >< div class = "ttdeci" > void ClearAbbreviation(const std::string & abbrevation)</ div >< div class = "ttdoc" > Will delete the abbreviation for a given parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00632" > CmdArgsInterface.cpp:632</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1HazelnuppConstraintTypeMissmatch_html" >< div class = "ttname" >< a href = "classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html" > Hazelnp::HazelnuppConstraintTypeMissmatch</ a ></ div >< div class = "ttdoc" > Gets thrown when a parameter is of a type that does not match the required type, and is not convertib...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "HazelnuppException_8h_source.html#l00056" > HazelnuppException.h:56</ a ></ div ></ div >
< div class = "ttc" id = "aVoidValue_8h_html" >< div class = "ttname" >< a href = "VoidValue_8h.html" > VoidValue.h</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a1f4845041e08b3335510de44fafaee19" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19" > Hazelnp::CmdArgsInterface::Parse</ a ></ div >< div class = "ttdeci" > void Parse(const int argc, const char *const *argv)</ div >< div class = "ttdoc" > Will parse command line arguments.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00036" > CmdArgsInterface.cpp:36</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a67ba6cb3176884c85dd56fc9084ab66a" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a67ba6cb3176884c85dd56fc9084ab66a" > Hazelnp::CmdArgsInterface::SetBriefDescription</ a ></ div >< div class = "ttdeci" > void SetBriefDescription(const std::string & description)</ div >< div class = "ttdoc" > Sets a brief description of the application to be automatically added to the documentation.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00379" > CmdArgsInterface.cpp:379</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a1945208a97707b2e3c654424f0760441" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a1945208a97707b2e3c654424f0760441" > Hazelnp::CmdArgsInterface::GetBriefDescription</ a ></ div >< div class = "ttdeci" > const std::string & GetBriefDescription()</ div >< div class = "ttdoc" > Returns the brief description of the application to be automatically added to the documentation.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00385" > CmdArgsInterface.cpp:385</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_af5e43c1067fb6c1074d9be3427c7a415" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#af5e43c1067fb6c1074d9be3427c7a415" > Hazelnp::CmdArgsInterface::operator[]</ a ></ div >< div class = "ttdeci" > const Value & operator[](const std::string & key) const</ div >< div class = "ttdoc" > Will return the value given a key.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00604" > CmdArgsInterface.cpp:604</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a328dbc265e7ffa9ab526ed8aa755e107" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a328dbc265e7ffa9ab526ed8aa755e107" > Hazelnp::CmdArgsInterface::ClearDescriptions</ a ></ div >< div class = "ttdeci" > void ClearDescriptions()</ div >< div class = "ttdoc" > Will delete all parameter descriptions.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00419" > CmdArgsInterface.cpp:419</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1ListValue_html_af8787d266aa353d3f96e2c76cce76c41" >< div class = "ttname" >< a href = "classHazelnp_1_1ListValue.html#af8787d266aa353d3f96e2c76cce76c41" > Hazelnp::ListValue::AddValue</ a ></ div >< div class = "ttdeci" > void AddValue(const Value *value)</ div >< div class = "ttdoc" > Will add this value to the list.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "ListValue_8cpp_source.html#l00033" > ListValue.cpp:33</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1VoidValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1VoidValue.html" > Hazelnp::VoidValue</ a ></ div >< div class = "ttdoc" > Specializations for void values.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "VoidValue_8h_source.html#l00008" > VoidValue.h:8</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a9b9bc5c4443799ea847077e9cefb1927" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927" > Hazelnp::CmdArgsInterface::GenerateDocumentation</ a ></ div >< div class = "ttdeci" > std::string GenerateDocumentation() const</ div >< div class = "ttdoc" > Will generate a text-based documentation suited to show the user, for example on – help.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00425" > CmdArgsInterface.cpp:425</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a6589d2e818ba32f2a3e5b5a6a5e2bf1e" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a6589d2e818ba32f2a3e5b5a6a5e2bf1e" > Hazelnp::CmdArgsInterface::RegisterDescription</ a ></ div >< div class = "ttdeci" > void RegisterDescription(const std::string & parameter, const std::string & description)</ div >< div class = "ttdoc" > Willl register a short description for a parameter.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00390" > CmdArgsInterface.cpp:390</ a ></ div ></ div >
2021-08-04 21:17:44 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1Internal_1_1StringTools_html_a3cc71bfffcad9a4334e74aac69dbfd68" >< div class = "ttname" >< a href = "classHazelnp_1_1Internal_1_1StringTools.html#a3cc71bfffcad9a4334e74aac69dbfd68" > Hazelnp::Internal::StringTools::ParseNumber</ a ></ div >< div class = "ttdeci" > static bool ParseNumber(const std::string & str, bool & out_isInt, long double & out_number)</ div >< div class = "ttdoc" > Will convert the number in str to a number.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "StringTools_8cpp_source.html#l00082" > StringTools.cpp:82</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803fae738c26bf4ce1037fa81b039a915cbf6" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fae738c26bf4ce1037fa81b039a915cbf6" > Hazelnp::DATA_TYPE::FLOAT</ a ></ div >< div class = "ttdeci" > @ FLOAT</ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a89bc3f54d7ff0740549dbdf7b7f727e3" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3" > Hazelnp::CmdArgsInterface::GetDescription</ a ></ div >< div class = "ttdeci" > const std::string & GetDescription(const std::string & parameter) const</ div >< div class = "ttdoc" > Will return a short description for a parameter, if it exists.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00396" > CmdArgsInterface.cpp:396</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803fa53f93baa3057821107c750323892fa92" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa53f93baa3057821107c750323892fa92" > Hazelnp::DATA_TYPE::INT</ a ></ div >< div class = "ttdeci" > @ INT</ div ></ div >
< div class = "ttc" id = "aFloatValue_8h_html" >< div class = "ttname" >< a href = "FloatValue_8h.html" > FloatValue.h</ a ></ div ></ div >
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803f" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803f" > Hazelnp::DATA_TYPE</ a ></ div >< div class = "ttdeci" > DATA_TYPE</ div >< div class = "ttdoc" > The different data types a paramater can be.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "DataType_8h_source.html#l00008" > DataType.h:8</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a1486bfef870e6502aefc23b11ce6caaf" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a1486bfef870e6502aefc23b11ce6caaf" > Hazelnp::CmdArgsInterface::GetAbbreviation</ a ></ div >< div class = "ttdeci" > const std::string & GetAbbreviation(const std::string & abbrev) const</ div >< div class = "ttdoc" > Will return the long form of an abbreviation (like – force for -f) Returns "" if no match is found.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00619" > CmdArgsInterface.cpp:619</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html_a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a07b61ac22ce9cd97eceebdf9487f803fa63b588d5559f64f89a416e656880b949" > Hazelnp::DATA_TYPE::STRING</ a ></ div >< div class = "ttdeci" > @ STRING</ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_afe83a815b21d37b3d2a6d0ef67137faf" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#afe83a815b21d37b3d2a6d0ef67137faf" > Hazelnp::CmdArgsInterface::GetExecutableName</ a ></ div >< div class = "ttdeci" > const std::string & GetExecutableName() const</ div >< div class = "ttdoc" > Will return argv[0], the name of the executable.</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00599" > CmdArgsInterface.cpp:599</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "anamespaceHazelnp_html_a7fb1e5ad9e2ecb6c0025beb19f11621b" >< div class = "ttname" >< a href = "namespaceHazelnp.html#a7fb1e5ad9e2ecb6c0025beb19f11621b" > Hazelnp::DataTypeToString</ a ></ div >< div class = "ttdeci" > static std::string DataTypeToString(DATA_TYPE type)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "DataType_8h_source.html#l00017" > DataType.h:17</ a ></ div ></ div >
2021-08-04 21:17:44 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1Internal_1_1StringTools_html_a1abf1454a223165acfb52f2a246c8215" >< div class = "ttname" >< a href = "classHazelnp_1_1Internal_1_1StringTools.html#a1abf1454a223165acfb52f2a246c8215" > Hazelnp::Internal::StringTools::IsNumeric</ a ></ div >< div class = "ttdeci" > static bool IsNumeric(const std::string & str, const bool allowDecimalPoint=false)</ div >< div class = "ttdoc" > Will return true if the given string consists only of digits (including signage)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "StringTools_8cpp_source.html#l00056" > StringTools.cpp:56</ a ></ div ></ div >
2021-09-05 12:12:03 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_a16a3a02f77d240d8cf51cd4ee1797113" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#a16a3a02f77d240d8cf51cd4ee1797113" > Hazelnp::CmdArgsInterface::SetCrashOnFail</ a ></ div >< div class = "ttdeci" > void SetCrashOnFail(bool crashOnFail)</ div >< div class = "ttdoc" > Sets whether to crash the application, and print to stderr, when an exception is raised whilst parsin...</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00657" > CmdArgsInterface.cpp:657</ a ></ div ></ div >
2021-06-08 14:02:49 +02:00
< div class = "ttc" id = "aclassHazelnp_1_1ListValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1ListValue.html" > Hazelnp::ListValue</ a ></ div >< div class = "ttdoc" > Specializations for list values (uses std::vector< Value*> )</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "ListValue_8h_source.html#l00009" > ListValue.h:9</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1StringValue_html" >< div class = "ttname" >< a href = "classHazelnp_1_1StringValue.html" > Hazelnp::StringValue</ a ></ div >< div class = "ttdoc" > Specializations for string values (uses std::string)</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "StringValue_8h_source.html#l00009" > StringValue.h:9</ a ></ div ></ div >
< div class = "ttc" id = "aStringTools_8h_html" >< div class = "ttname" >< a href = "StringTools_8h.html" > StringTools.h</ a ></ div ></ div >
< div class = "ttc" id = "aclassHazelnp_1_1CmdArgsInterface_html_aadc75b3b6c9662cfbd4a936468d50466" >< div class = "ttname" >< a href = "classHazelnp_1_1CmdArgsInterface.html#aadc75b3b6c9662cfbd4a936468d50466" > Hazelnp::CmdArgsInterface::~CmdArgsInterface</ a ></ div >< div class = "ttdeci" > ~CmdArgsInterface()</ div >< div class = "ttdef" >< b > Definition:</ b > < a href = "CmdArgsInterface_8cpp_source.html#l00026" > CmdArgsInterface.cpp:26</ a ></ div ></ div >
<!-- start footer part -->
< hr class = "footer" />< address class = "footer" >< small >
2021-09-05 12:12:03 +02:00
Generated on Sun Sep 5 2021 12:11:50 for Leonetienne/Hazelnupp by   < a href = "http://www.doxygen.org/index.html" >
2021-06-08 14:02:49 +02:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" />
</ a > 1.8.17
</ small ></ address >
</ body >
</ html >