Files
ortools-clone/docs/cpp/visitor_8cc_source.html
Mizux Seiha d1b6751cad Update doc
2020-11-18 14:53:53 +01:00

436 lines
87 KiB
HTML

<!-- HTML header for doxygen 1.8.18-->
<!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.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: visitor.cc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.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="orLogo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OR-Tools
&#160;<span id="projectnumber">8.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('visitor_8cc_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">visitor.cc</div> </div>
</div><!--header-->
<div class="contents">
<a href="visitor_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright 2010-2018 Google LLC</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// you may not use this file except in compliance with the License.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// limitations under the License.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;absl/container/flat_hash_map.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;absl/container/flat_hash_set.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="integral__types_8h.html">ortools/base/integral_types.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base_2logging_8h.html">ortools/base/logging.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="macros_8h.html">ortools/base/macros.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="map__util_8h.html">ortools/base/map_util.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stl__util_8h.html">ortools/base/stl_util.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint__solver_8h.html">ortools/constraint_solver/constraint_solver.h</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint__solveri_8h.html">ortools/constraint_solver/constraint_solveri.h</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceoperations__research.html">operations_research</a> {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// ---------- ArgumentHolder ----------</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a5d4d21593ad33197d70fd4c881702120"> 31</a></span>&#160;<span class="keyword">const</span> std::string&amp; <a class="code" href="classoperations__research_1_1_argument_holder.html#a5d4d21593ad33197d70fd4c881702120">ArgumentHolder::TypeName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_name_; }</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a5cd41c19cc39011926f928b80cbbed72"> 33</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a5cd41c19cc39011926f928b80cbbed72">ArgumentHolder::SetTypeName</a>(<span class="keyword">const</span> std::string&amp; type_name) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; type_name_ = type_name;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#ab4113a41c7dc6fc23bdede336faccd54"> 37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#ab4113a41c7dc6fc23bdede336faccd54">ArgumentHolder::SetIntegerArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>) {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; integer_argument_[arg_name] = <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a49d298ca856113967a788fd68522d51f"> 42</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a49d298ca856113967a788fd68522d51f">ArgumentHolder::SetIntegerArrayArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">const</span> std::vector&lt;int64&gt;&amp; values) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; integer_array_argument_[arg_name] = values;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#adcd51c62ad7767220a2dab2f2363ceea"> 47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#adcd51c62ad7767220a2dab2f2363ceea">ArgumentHolder::SetIntegerMatrixArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_tuple_set.html">IntTupleSet</a>&amp; values) {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::pair&lt;std::string, IntTupleSet&gt; to_insert =</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::make_pair(arg_name, values);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; matrix_argument_.insert(to_insert);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a4b2fe4799ef453501f0fce00d59841a7"> 54</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a4b2fe4799ef453501f0fce00d59841a7">ArgumentHolder::SetIntegerExpressionArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <span class="keyword">const</span> expr) {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; integer_expression_argument_[arg_name] = expr;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a5e05ed63b54117b3fefe5cf3a4d3f33e"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a5e05ed63b54117b3fefe5cf3a4d3f33e">ArgumentHolder::SetIntegerVariableArrayArgument</a>(</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;IntVar*&gt;&amp; vars) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; integer_variable_array_argument_[arg_name] = vars;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#aa99281e27dde55f592e819cb36085ce5"> 64</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#aa99281e27dde55f592e819cb36085ce5">ArgumentHolder::SetIntervalArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classoperations__research_1_1_interval_var.html">IntervalVar</a>* <span class="keyword">const</span> <a class="code" href="expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465">var</a>) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; interval_argument_[arg_name] = <a class="code" href="expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465">var</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#af198f3666509d3e593c724811356a06e"> 69</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#af198f3666509d3e593c724811356a06e">ArgumentHolder::SetIntervalArrayArgument</a>(</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;IntervalVar*&gt;&amp; vars) {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; interval_array_argument_[arg_name] = vars;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a42a5aa3f2ee24fc309c210e6dfc2b504"> 74</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a42a5aa3f2ee24fc309c210e6dfc2b504">ArgumentHolder::SetSequenceArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a>* <span class="keyword">const</span> <a class="code" href="expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465">var</a>) {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; sequence_argument_[arg_name] = <a class="code" href="expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465">var</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a87edff1ae0e772591575ca3f016af246"> 79</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a87edff1ae0e772591575ca3f016af246">ArgumentHolder::SetSequenceArrayArgument</a>(</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;SequenceVar*&gt;&amp; vars) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; sequence_array_argument_[arg_name] = vars;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#ae23e57e443be817e98c18896384f5f8f"> 84</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#ae23e57e443be817e98c18896384f5f8f">ArgumentHolder::HasIntegerExpressionArgument</a>(</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#aae28e97bd1fa93cb0032642550da7455">gtl::ContainsKey</a>(integer_expression_argument_, arg_name);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a1741111a88b318c9b9488173a3d4a788"> 89</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classoperations__research_1_1_argument_holder.html#a1741111a88b318c9b9488173a3d4a788">ArgumentHolder::HasIntegerVariableArrayArgument</a>(</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#aae28e97bd1fa93cb0032642550da7455">gtl::ContainsKey</a>(integer_variable_array_argument_, arg_name);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a20bd97b94750decd053b6677dc5a86c7"> 94</a></span>&#160;<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="classoperations__research_1_1_argument_holder.html#a20bd97b94750decd053b6677dc5a86c7">ArgumentHolder::FindIntegerArgumentWithDefault</a>(</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> def)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abc18f60961e36340e64e428827c0e38e">gtl::FindWithDefault</a>(integer_argument_, arg_name, def);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#af558025ad3b271ffb1b538ce5d20f1d6"> 99</a></span>&#160;<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="classoperations__research_1_1_argument_holder.html#af558025ad3b271ffb1b538ce5d20f1d6">ArgumentHolder::FindIntegerArgumentOrDie</a>(</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a>(integer_argument_, arg_name);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#ab6392f63e719959f490193286299483c"> 104</a></span>&#160;<span class="keyword">const</span> std::vector&lt;int64&gt;&amp; <a class="code" href="classoperations__research_1_1_argument_holder.html#ab6392f63e719959f490193286299483c">ArgumentHolder::FindIntegerArrayArgumentOrDie</a>(</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a>(integer_array_argument_, arg_name);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#ac87edf9d3e0b607798812b30a3456c78"> 109</a></span>&#160;<a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <a class="code" href="classoperations__research_1_1_argument_holder.html#ac87edf9d3e0b607798812b30a3456c78">ArgumentHolder::FindIntegerExpressionArgumentOrDie</a>(</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a>(integer_expression_argument_, arg_name);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">const</span> std::vector&lt;IntVar*&gt;&amp;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a030ac65c6191a21ced9f62b49b423b5d"> 115</a></span>&#160;<a class="code" href="classoperations__research_1_1_argument_holder.html#a030ac65c6191a21ced9f62b49b423b5d">ArgumentHolder::FindIntegerVariableArrayArgumentOrDie</a>(</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a>(integer_variable_array_argument_, arg_name);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_argument_holder.html#a0a72c0c2a6fd25822715e54b9da9e6bd"> 120</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_tuple_set.html">IntTupleSet</a>&amp; <a class="code" href="classoperations__research_1_1_argument_holder.html#a0a72c0c2a6fd25822715e54b9da9e6bd">ArgumentHolder::FindIntegerMatrixArgumentOrDie</a>(</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a>(matrix_argument_, arg_name);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// ---------- ModelParser ---------</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a8a58bcdd2aba971801f05e87d76fa5cb"> 127</a></span>&#160;<a class="code" href="classoperations__research_1_1_model_parser.html#a8a58bcdd2aba971801f05e87d76fa5cb">ModelParser::ModelParser</a>() {}</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#aaf6ad14f55e32b0907390fe1086fa2bc"> 129</a></span>&#160;<a class="code" href="classoperations__research_1_1_model_parser.html#aaf6ad14f55e32b0907390fe1086fa2bc">ModelParser::~ModelParser</a>() { <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(holders_.empty()); }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ac96955028ded0054b93b3a62603673fb"> 131</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ac96955028ded0054b93b3a62603673fb">ModelParser::BeginVisitModel</a>(<span class="keyword">const</span> std::string&amp; solver_name) {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea">PushArgumentHolder</a>();</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a93b849189eca7118a5db04c2fe8aa901"> 135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a93b849189eca7118a5db04c2fe8aa901">ModelParser::EndVisitModel</a>(<span class="keyword">const</span> std::string&amp; solver_name) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7">PopArgumentHolder</a>();</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a3f64ad753c103735db788aef651906f1"> 139</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a3f64ad753c103735db788aef651906f1">ModelParser::BeginVisitConstraint</a>(<span class="keyword">const</span> std::string&amp; type_name,</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_constraint.html">Constraint</a>* <span class="keyword">const</span> constraint) {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea">PushArgumentHolder</a>();</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a8ed69e6d44dd4141c434a1784120382f"> 144</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a8ed69e6d44dd4141c434a1784120382f">ModelParser::EndVisitConstraint</a>(<span class="keyword">const</span> std::string&amp; type_name,</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_constraint.html">Constraint</a>* <span class="keyword">const</span> constraint) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Constraint parsing is usually done here.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7">PopArgumentHolder</a>();</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a3c1880784b2c7a39516d9ec78a3655c9"> 150</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a3c1880784b2c7a39516d9ec78a3655c9">ModelParser::BeginVisitIntegerExpression</a>(<span class="keyword">const</span> std::string&amp; type_name,</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <span class="keyword">const</span> expr) {</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea">PushArgumentHolder</a>();</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ad974141af84ca9a2f52c9079d7db3126"> 155</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ad974141af84ca9a2f52c9079d7db3126">ModelParser::EndVisitIntegerExpression</a>(<span class="keyword">const</span> std::string&amp; type_name,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <span class="keyword">const</span> expr) {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Expression parsing is usually done here.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7">PopArgumentHolder</a>();</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ab78f332ebaa3c0a6858e063425ad1005"> 161</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ab78f332ebaa3c0a6858e063425ad1005">ModelParser::VisitIntegerVariable</a>(<span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_var.html">IntVar</a>* <span class="keyword">const</span> variable,</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <span class="keyword">const</span> delegate) {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Usual place for parsing.</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a8e2e6979471d1b2173e19769ea3211a8"> 166</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ab78f332ebaa3c0a6858e063425ad1005">ModelParser::VisitIntegerVariable</a>(<span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_var.html">IntVar</a>* <span class="keyword">const</span> variable,</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">const</span> std::string&amp; operation,</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>, <a class="code" href="classoperations__research_1_1_int_var.html">IntVar</a>* <span class="keyword">const</span> delegate) {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; delegate-&gt;<a class="code" href="classoperations__research_1_1_int_var.html#aa30c84aec5e60d6b74e1e1eb15011d4a">Accept</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// Usual place for parsing.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a3ad305236a82068e5c6860729570e73f"> 173</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a3ad305236a82068e5c6860729570e73f">ModelParser::VisitIntervalVariable</a>(<span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_interval_var.html">IntervalVar</a>* <span class="keyword">const</span> variable,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> std::string&amp; operation,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>,</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classoperations__research_1_1_interval_var.html">IntervalVar</a>* <span class="keyword">const</span> delegate) {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (delegate != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; delegate-&gt;<a class="code" href="classoperations__research_1_1_interval_var.html#a7b8a6f05fe0fcec065317fbd8694969d">Accept</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Usual place for parsing.</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a4d2f859ba8744c59922952d1925962b6"> 183</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a4d2f859ba8744c59922952d1925962b6">ModelParser::VisitSequenceVariable</a>(<span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a>* <span class="keyword">const</span> variable) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// Usual place for parsing.</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// Integer arguments</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#acf3b9b49defa1be5d574ff59aa12e36e"> 188</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#acf3b9b49defa1be5d574ff59aa12e36e">ModelParser::VisitIntegerArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>) {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#ab4113a41c7dc6fc23bdede336faccd54">SetIntegerArgument</a>(arg_name, <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a>);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#aa1998d48caaa0f39dd647267356ffcb9"> 193</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#aa1998d48caaa0f39dd647267356ffcb9">ModelParser::VisitIntegerArrayArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> std::vector&lt;int64&gt;&amp; values) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#a49d298ca856113967a788fd68522d51f">SetIntegerArrayArgument</a>(arg_name, values);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#abb4445bda211f8b4fb7410e1135ea536"> 198</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#abb4445bda211f8b4fb7410e1135ea536">ModelParser::VisitIntegerMatrixArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <a class="code" href="classoperations__research_1_1_int_tuple_set.html">IntTupleSet</a>&amp; values) {</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#adcd51c62ad7767220a2dab2f2363ceea">SetIntegerMatrixArgument</a>(arg_name, values);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// Variables.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a49376dec39378f502d09f8f001924f8b"> 204</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a49376dec39378f502d09f8f001924f8b">ModelParser::VisitIntegerExpressionArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classoperations__research_1_1_int_expr.html">IntExpr</a>* <span class="keyword">const</span> argument) {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#a4b2fe4799ef453501f0fce00d59841a7">SetIntegerExpressionArgument</a>(arg_name, argument);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; argument-&gt;<a class="code" href="classoperations__research_1_1_int_expr.html#aac4aa5ecf086378b1bbac4b669bab4db">Accept</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ab11bc6e0bd4776a51b50941d9e096ab3"> 210</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ab11bc6e0bd4776a51b50941d9e096ab3">ModelParser::VisitIntegerVariableArrayArgument</a>(</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;IntVar*&gt;&amp; arguments) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#a5e05ed63b54117b3fefe5cf3a4d3f33e">SetIntegerVariableArrayArgument</a>(arg_name, arguments);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; arguments.size(); ++i) {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; arguments[i]-&gt;Accept(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// Visit interval argument.</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a80c5c0fd18a686e9aa4f05af4c3faced"> 219</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a80c5c0fd18a686e9aa4f05af4c3faced">ModelParser::VisitIntervalArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classoperations__research_1_1_interval_var.html">IntervalVar</a>* <span class="keyword">const</span> argument) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#aa99281e27dde55f592e819cb36085ce5">SetIntervalArgument</a>(arg_name, argument);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; argument-&gt;<a class="code" href="classoperations__research_1_1_interval_var.html#a7b8a6f05fe0fcec065317fbd8694969d">Accept</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ae49f9857049e5ebbb368b49c5a62afea"> 225</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ae49f9857049e5ebbb368b49c5a62afea">ModelParser::VisitIntervalArrayArgument</a>(</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;IntervalVar*&gt;&amp; arguments) {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#af198f3666509d3e593c724811356a06e">SetIntervalArrayArgument</a>(arg_name, arguments);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; arguments.size(); ++i) {</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; arguments[i]-&gt;Accept(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// Visit sequence argument.</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#aa18425baaba1c8387437547bc265ded0"> 234</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#aa18425baaba1c8387437547bc265ded0">ModelParser::VisitSequenceArgument</a>(<span class="keyword">const</span> std::string&amp; arg_name,</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a>* <span class="keyword">const</span> argument) {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#a42a5aa3f2ee24fc309c210e6dfc2b504">SetSequenceArgument</a>(arg_name, argument);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; argument-&gt;<a class="code" href="classoperations__research_1_1_sequence_var.html#aac4aa5ecf086378b1bbac4b669bab4db">Accept</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a85fd160bc451ebfff69cfe892dd44b2e"> 240</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a85fd160bc451ebfff69cfe892dd44b2e">ModelParser::VisitSequenceArrayArgument</a>(</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">const</span> std::string&amp; arg_name, <span class="keyword">const</span> std::vector&lt;SequenceVar*&gt;&amp; arguments) {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">Top</a>()-&gt;<a class="code" href="classoperations__research_1_1_argument_holder.html#a87edff1ae0e772591575ca3f016af246">SetSequenceArrayArgument</a>(arg_name, arguments);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; arguments.size(); ++i) {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; arguments[i]-&gt;Accept(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea"> 248</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea">ModelParser::PushArgumentHolder</a>() {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; holders_.push_back(<span class="keyword">new</span> <a class="code" href="classoperations__research_1_1_argument_holder.html">ArgumentHolder</a>);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7"> 252</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7">ModelParser::PopArgumentHolder</a>() {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(!holders_.empty());</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">delete</span> holders_.back();</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; holders_.pop_back();</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af"> 258</a></span>&#160;<a class="code" href="classoperations__research_1_1_argument_holder.html">ArgumentHolder</a>* <a class="code" href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">ModelParser::Top</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(!holders_.empty());</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> holders_.back();</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;} <span class="comment">// namespace operations_research</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassoperations__research_1_1_int_var_html"><div class="ttname"><a href="classoperations__research_1_1_int_var.html">operations_research::IntVar</a></div><div class="ttdoc">The class IntVar is a subset of IntExpr.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8h_source.html#l03992">constraint_solver.h:3992</a></div></div>
<div class="ttc" id="aexpr__array_8cc_html_a472a99923cbe11ae7b5a5d157d9ad465"><div class="ttname"><a href="expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465">var</a></div><div class="ttdeci">IntVar * var</div><div class="ttdef"><b>Definition:</b> <a href="expr__array_8cc_source.html#l01858">expr_array.cc:1858</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a4b2fe4799ef453501f0fce00d59841a7"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a4b2fe4799ef453501f0fce00d59841a7">operations_research::ArgumentHolder::SetIntegerExpressionArgument</a></div><div class="ttdeci">void SetIntegerExpressionArgument(const std::string &amp;arg_name, IntExpr *const expr)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00054">visitor.cc:54</a></div></div>
<div class="ttc" id="aintegral__types_8h_html"><div class="ttname"><a href="integral__types_8h.html">integral_types.h</a></div></div>
<div class="ttc" id="amap__util_8h_html"><div class="ttname"><a href="map__util_8h.html">map_util.h</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a20bd97b94750decd053b6677dc5a86c7"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a20bd97b94750decd053b6677dc5a86c7">operations_research::ArgumentHolder::FindIntegerArgumentWithDefault</a></div><div class="ttdeci">int64 FindIntegerArgumentWithDefault(const std::string &amp;arg_name, int64 def) const</div><div class="ttdoc">Getters.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00094">visitor.cc:94</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_sequence_var_html_aac4aa5ecf086378b1bbac4b669bab4db"><div class="ttname"><a href="classoperations__research_1_1_sequence_var.html#aac4aa5ecf086378b1bbac4b669bab4db">operations_research::SequenceVar::Accept</a></div><div class="ttdeci">virtual void Accept(ModelVisitor *const visitor) const</div><div class="ttdoc">Accepts the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="sched__search_8cc_source.html#l00071">sched_search.cc:71</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a1741111a88b318c9b9488173a3d4a788"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a1741111a88b318c9b9488173a3d4a788">operations_research::ArgumentHolder::HasIntegerVariableArrayArgument</a></div><div class="ttdeci">bool HasIntegerVariableArrayArgument(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00089">visitor.cc:89</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a030ac65c6191a21ced9f62b49b423b5d"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a030ac65c6191a21ced9f62b49b423b5d">operations_research::ArgumentHolder::FindIntegerVariableArrayArgumentOrDie</a></div><div class="ttdeci">const std::vector&lt; IntVar * &gt; &amp; FindIntegerVariableArrayArgumentOrDie(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00115">visitor.cc:115</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ab78f332ebaa3c0a6858e063425ad1005"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ab78f332ebaa3c0a6858e063425ad1005">operations_research::ModelParser::VisitIntegerVariable</a></div><div class="ttdeci">void VisitIntegerVariable(const IntVar *const variable, IntExpr *const delegate) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00161">visitor.cc:161</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a49d298ca856113967a788fd68522d51f"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a49d298ca856113967a788fd68522d51f">operations_research::ArgumentHolder::SetIntegerArrayArgument</a></div><div class="ttdeci">void SetIntegerArrayArgument(const std::string &amp;arg_name, const std::vector&lt; int64 &gt; &amp;values)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00042">visitor.cc:42</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_aa18425baaba1c8387437547bc265ded0"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#aa18425baaba1c8387437547bc265ded0">operations_research::ModelParser::VisitSequenceArgument</a></div><div class="ttdeci">void VisitSequenceArgument(const std::string &amp;arg_name, SequenceVar *const argument) override</div><div class="ttdoc">Visit sequence argument.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00234">visitor.cc:234</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_af198f3666509d3e593c724811356a06e"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#af198f3666509d3e593c724811356a06e">operations_research::ArgumentHolder::SetIntervalArrayArgument</a></div><div class="ttdeci">void SetIntervalArrayArgument(const std::string &amp;arg_name, const std::vector&lt; IntervalVar * &gt; &amp;vars)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00069">visitor.cc:69</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_aaf6ad14f55e32b0907390fe1086fa2bc"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#aaf6ad14f55e32b0907390fe1086fa2bc">operations_research::ModelParser::~ModelParser</a></div><div class="ttdeci">~ModelParser() override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00129">visitor.cc:129</a></div></div>
<div class="ttc" id="abase_2logging_8h_html"><div class="ttname"><a href="base_2logging_8h.html">logging.h</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ab11bc6e0bd4776a51b50941d9e096ab3"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ab11bc6e0bd4776a51b50941d9e096ab3">operations_research::ModelParser::VisitIntegerVariableArrayArgument</a></div><div class="ttdeci">void VisitIntegerVariableArrayArgument(const std::string &amp;arg_name, const std::vector&lt; IntVar * &gt; &amp;arguments) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00210">visitor.cc:210</a></div></div>
<div class="ttc" id="ademon__profiler_8cc_html_a21edc7ca4cc5802c8779d68556bc09cf"><div class="ttname"><a href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a></div><div class="ttdeci">int64 value</div><div class="ttdef"><b>Definition:</b> <a href="demon__profiler_8cc_source.html#l00043">demon_profiler.cc:43</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_sequence_var_html"><div class="ttname"><a href="classoperations__research_1_1_sequence_var.html">operations_research::SequenceVar</a></div><div class="ttdoc">A sequence variable is a variable whose domain is a set of possible orderings of the interval variabl...</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8h_source.html#l04543">constraint_solver.h:4543</a></div></div>
<div class="ttc" id="amacros_8h_html"><div class="ttname"><a href="macros_8h.html">macros.h</a></div></div>
<div class="ttc" id="anamespacegtl_html_abc18f60961e36340e64e428827c0e38e"><div class="ttname"><a href="namespacegtl.html#abc18f60961e36340e64e428827c0e38e">gtl::FindWithDefault</a></div><div class="ttdeci">const Collection::value_type::second_type &amp; FindWithDefault(const Collection &amp;collection, const typename Collection::value_type::first_type &amp;key, const typename Collection::value_type::second_type &amp;value)</div><div class="ttdef"><b>Definition:</b> <a href="map__util_8h_source.html#l00026">map_util.h:26</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html"><div class="ttname"><a href="namespaceoperations__research.html">operations_research</a></div><div class="ttdoc">The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...</div><div class="ttdef"><b>Definition:</b> <a href="dense__doubly__linked__list_8h_source.html#l00021">dense_doubly_linked_list.h:21</a></div></div>
<div class="ttc" id="aintegral__types_8h_html_a7cde0074dfd288f2d70c0e035dacb28a"><div class="ttname"><a href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a></div><div class="ttdeci">int64_t int64</div><div class="ttdef"><b>Definition:</b> <a href="integral__types_8h_source.html#l00034">integral_types.h:34</a></div></div>
<div class="ttc" id="aconstraint__solveri_8h_html"><div class="ttname"><a href="constraint__solveri_8h.html">constraint_solveri.h</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a4d2f859ba8744c59922952d1925962b6"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a4d2f859ba8744c59922952d1925962b6">operations_research::ModelParser::VisitSequenceVariable</a></div><div class="ttdeci">void VisitSequenceVariable(const SequenceVar *const variable) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00183">visitor.cc:183</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a5d4d21593ad33197d70fd4c881702120"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a5d4d21593ad33197d70fd4c881702120">operations_research::ArgumentHolder::TypeName</a></div><div class="ttdeci">const std::string &amp; TypeName() const</div><div class="ttdoc">Type of the argument.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00031">visitor.cc:31</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a3f64ad753c103735db788aef651906f1"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a3f64ad753c103735db788aef651906f1">operations_research::ModelParser::BeginVisitConstraint</a></div><div class="ttdeci">void BeginVisitConstraint(const std::string &amp;type_name, const Constraint *const constraint) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00139">visitor.cc:139</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_aa99281e27dde55f592e819cb36085ce5"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#aa99281e27dde55f592e819cb36085ce5">operations_research::ArgumentHolder::SetIntervalArgument</a></div><div class="ttdeci">void SetIntervalArgument(const std::string &amp;arg_name, IntervalVar *const var)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00064">visitor.cc:64</a></div></div>
<div class="ttc" id="anamespacegtl_html_abce27d097bc5680207b294bdad75f59f"><div class="ttname"><a href="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a></div><div class="ttdeci">const Collection::value_type::second_type &amp; FindOrDie(const Collection &amp;collection, const typename Collection::value_type::first_type &amp;key)</div><div class="ttdef"><b>Definition:</b> <a href="map__util_8h_source.html#l00176">map_util.h:176</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a8ed69e6d44dd4141c434a1784120382f"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a8ed69e6d44dd4141c434a1784120382f">operations_research::ModelParser::EndVisitConstraint</a></div><div class="ttdeci">void EndVisitConstraint(const std::string &amp;type_name, const Constraint *const constraint) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00144">visitor.cc:144</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_abb4445bda211f8b4fb7410e1135ea536"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#abb4445bda211f8b4fb7410e1135ea536">operations_research::ModelParser::VisitIntegerMatrixArgument</a></div><div class="ttdeci">void VisitIntegerMatrixArgument(const std::string &amp;arg_name, const IntTupleSet &amp;values) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00198">visitor.cc:198</a></div></div>
<div class="ttc" id="aconstraint__solver_8h_html"><div class="ttname"><a href="constraint__solver_8h.html">constraint_solver.h</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a93b849189eca7118a5db04c2fe8aa901"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a93b849189eca7118a5db04c2fe8aa901">operations_research::ModelParser::EndVisitModel</a></div><div class="ttdeci">void EndVisitModel(const std::string &amp;solver_name) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00135">visitor.cc:135</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_ab4113a41c7dc6fc23bdede336faccd54"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#ab4113a41c7dc6fc23bdede336faccd54">operations_research::ArgumentHolder::SetIntegerArgument</a></div><div class="ttdeci">void SetIntegerArgument(const std::string &amp;arg_name, int64 value)</div><div class="ttdoc">Setters.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00037">visitor.cc:37</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html">operations_research::ArgumentHolder</a></div><div class="ttdoc">Argument Holder: useful when visiting a model.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solveri_8h_source.html#l02310">constraint_solveri.h:2310</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_interval_var_html_a7b8a6f05fe0fcec065317fbd8694969d"><div class="ttname"><a href="classoperations__research_1_1_interval_var.html#a7b8a6f05fe0fcec065317fbd8694969d">operations_research::IntervalVar::Accept</a></div><div class="ttdeci">virtual void Accept(ModelVisitor *const visitor) const =0</div><div class="ttdoc">Accepts the given visitor.</div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ad8a7ac44f8bfdc52cfd6b237d1a210b7"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ad8a7ac44f8bfdc52cfd6b237d1a210b7">operations_research::ModelParser::PopArgumentHolder</a></div><div class="ttdeci">void PopArgumentHolder()</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00252">visitor.cc:252</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a87edff1ae0e772591575ca3f016af246"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a87edff1ae0e772591575ca3f016af246">operations_research::ArgumentHolder::SetSequenceArrayArgument</a></div><div class="ttdeci">void SetSequenceArrayArgument(const std::string &amp;arg_name, const std::vector&lt; SequenceVar * &gt; &amp;vars)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00079">visitor.cc:79</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a3ad305236a82068e5c6860729570e73f"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a3ad305236a82068e5c6860729570e73f">operations_research::ModelParser::VisitIntervalVariable</a></div><div class="ttdeci">void VisitIntervalVariable(const IntervalVar *const variable, const std::string &amp;operation, int64 value, IntervalVar *const delegate) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00173">visitor.cc:173</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_af558025ad3b271ffb1b538ce5d20f1d6"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#af558025ad3b271ffb1b538ce5d20f1d6">operations_research::ArgumentHolder::FindIntegerArgumentOrDie</a></div><div class="ttdeci">int64 FindIntegerArgumentOrDie(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00099">visitor.cc:99</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a8a58bcdd2aba971801f05e87d76fa5cb"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a8a58bcdd2aba971801f05e87d76fa5cb">operations_research::ModelParser::ModelParser</a></div><div class="ttdeci">ModelParser()</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00127">visitor.cc:127</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a3c1880784b2c7a39516d9ec78a3655c9"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a3c1880784b2c7a39516d9ec78a3655c9">operations_research::ModelParser::BeginVisitIntegerExpression</a></div><div class="ttdeci">void BeginVisitIntegerExpression(const std::string &amp;type_name, const IntExpr *const expr) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00150">visitor.cc:150</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_adcd51c62ad7767220a2dab2f2363ceea"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#adcd51c62ad7767220a2dab2f2363ceea">operations_research::ArgumentHolder::SetIntegerMatrixArgument</a></div><div class="ttdeci">void SetIntegerMatrixArgument(const std::string &amp;arg_name, const IntTupleSet &amp;values)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00047">visitor.cc:47</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_aa1998d48caaa0f39dd647267356ffcb9"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#aa1998d48caaa0f39dd647267356ffcb9">operations_research::ModelParser::VisitIntegerArrayArgument</a></div><div class="ttdeci">void VisitIntegerArrayArgument(const std::string &amp;arg_name, const std::vector&lt; int64 &gt; &amp;values) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00193">visitor.cc:193</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_interval_var_html"><div class="ttname"><a href="classoperations__research_1_1_interval_var.html">operations_research::IntervalVar</a></div><div class="ttdoc">Interval variables are often used in scheduling.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8h_source.html#l04389">constraint_solver.h:4389</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ac96955028ded0054b93b3a62603673fb"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ac96955028ded0054b93b3a62603673fb">operations_research::ModelParser::BeginVisitModel</a></div><div class="ttdeci">void BeginVisitModel(const std::string &amp;solver_name) override</div><div class="ttdoc">Header/footers.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00131">visitor.cc:131</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ae49f9857049e5ebbb368b49c5a62afea"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ae49f9857049e5ebbb368b49c5a62afea">operations_research::ModelParser::VisitIntervalArrayArgument</a></div><div class="ttdeci">void VisitIntervalArrayArgument(const std::string &amp;arg_name, const std::vector&lt; IntervalVar * &gt; &amp;arguments) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00225">visitor.cc:225</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_int_var_html_aa30c84aec5e60d6b74e1e1eb15011d4a"><div class="ttname"><a href="classoperations__research_1_1_int_var.html#aa30c84aec5e60d6b74e1e1eb15011d4a">operations_research::IntVar::Accept</a></div><div class="ttdeci">void Accept(ModelVisitor *const visitor) const override</div><div class="ttdoc">Accepts the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="expressions_8cc_source.html#l07318">expressions.cc:7318</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a49376dec39378f502d09f8f001924f8b"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a49376dec39378f502d09f8f001924f8b">operations_research::ModelParser::VisitIntegerExpressionArgument</a></div><div class="ttdeci">void VisitIntegerExpressionArgument(const std::string &amp;arg_name, IntExpr *const argument) override</div><div class="ttdoc">Variables.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00204">visitor.cc:204</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_constraint_html"><div class="ttname"><a href="classoperations__research_1_1_constraint.html">operations_research::Constraint</a></div><div class="ttdoc">A constraint is the main modeling object.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8h_source.html#l03579">constraint_solver.h:3579</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_ad974141af84ca9a2f52c9079d7db3126"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#ad974141af84ca9a2f52c9079d7db3126">operations_research::ModelParser::EndVisitIntegerExpression</a></div><div class="ttdeci">void EndVisitIntegerExpression(const std::string &amp;type_name, const IntExpr *const expr) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00155">visitor.cc:155</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a42a5aa3f2ee24fc309c210e6dfc2b504"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a42a5aa3f2ee24fc309c210e6dfc2b504">operations_research::ArgumentHolder::SetSequenceArgument</a></div><div class="ttdeci">void SetSequenceArgument(const std::string &amp;arg_name, SequenceVar *const var)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00074">visitor.cc:74</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_ac87edf9d3e0b607798812b30a3456c78"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#ac87edf9d3e0b607798812b30a3456c78">operations_research::ArgumentHolder::FindIntegerExpressionArgumentOrDie</a></div><div class="ttdeci">IntExpr * FindIntegerExpressionArgumentOrDie(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00109">visitor.cc:109</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a80c5c0fd18a686e9aa4f05af4c3faced"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a80c5c0fd18a686e9aa4f05af4c3faced">operations_research::ModelParser::VisitIntervalArgument</a></div><div class="ttdeci">void VisitIntervalArgument(const std::string &amp;arg_name, IntervalVar *const argument) override</div><div class="ttdoc">Visit interval argument.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00219">visitor.cc:219</a></div></div>
<div class="ttc" id="astl__util_8h_html"><div class="ttname"><a href="stl__util_8h.html">stl_util.h</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_acf3b9b49defa1be5d574ff59aa12e36e"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#acf3b9b49defa1be5d574ff59aa12e36e">operations_research::ModelParser::VisitIntegerArgument</a></div><div class="ttdeci">void VisitIntegerArgument(const std::string &amp;arg_name, int64 value) override</div><div class="ttdoc">Integer arguments.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00188">visitor.cc:188</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a5cd41c19cc39011926f928b80cbbed72"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a5cd41c19cc39011926f928b80cbbed72">operations_research::ArgumentHolder::SetTypeName</a></div><div class="ttdeci">void SetTypeName(const std::string &amp;type_name)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00033">visitor.cc:33</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_int_expr_html_aac4aa5ecf086378b1bbac4b669bab4db"><div class="ttname"><a href="classoperations__research_1_1_int_expr.html#aac4aa5ecf086378b1bbac4b669bab4db">operations_research::IntExpr::Accept</a></div><div class="ttdeci">virtual void Accept(ModelVisitor *const visitor) const</div><div class="ttdoc">Accepts the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8cc_source.html#l03261">constraint_solver.cc:3261</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a431a70e6aa28edfd4dc0bc7e440771af"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a431a70e6aa28edfd4dc0bc7e440771af">operations_research::ModelParser::Top</a></div><div class="ttdeci">ArgumentHolder * Top() const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00258">visitor.cc:258</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_int_expr_html"><div class="ttname"><a href="classoperations__research_1_1_int_expr.html">operations_research::IntExpr</a></div><div class="ttdoc">The class IntExpr is the base of all integer expressions in constraint programming.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8h_source.html#l03831">constraint_solver.h:3831</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a5e05ed63b54117b3fefe5cf3a4d3f33e"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a5e05ed63b54117b3fefe5cf3a4d3f33e">operations_research::ArgumentHolder::SetIntegerVariableArrayArgument</a></div><div class="ttdeci">void SetIntegerVariableArrayArgument(const std::string &amp;arg_name, const std::vector&lt; IntVar * &gt; &amp;vars)</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00059">visitor.cc:59</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_ab6392f63e719959f490193286299483c"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#ab6392f63e719959f490193286299483c">operations_research::ArgumentHolder::FindIntegerArrayArgumentOrDie</a></div><div class="ttdeci">const std::vector&lt; int64 &gt; &amp; FindIntegerArrayArgumentOrDie(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00104">visitor.cc:104</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_int_tuple_set_html"><div class="ttname"><a href="classoperations__research_1_1_int_tuple_set.html">operations_research::IntTupleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="tuple__set_8h_source.html#l00049">tuple_set.h:49</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_a0a72c0c2a6fd25822715e54b9da9e6bd"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#a0a72c0c2a6fd25822715e54b9da9e6bd">operations_research::ArgumentHolder::FindIntegerMatrixArgumentOrDie</a></div><div class="ttdeci">const IntTupleSet &amp; FindIntegerMatrixArgumentOrDie(const std::string &amp;arg_name) const</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00120">visitor.cc:120</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a85fd160bc451ebfff69cfe892dd44b2e"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a85fd160bc451ebfff69cfe892dd44b2e">operations_research::ModelParser::VisitSequenceArrayArgument</a></div><div class="ttdeci">void VisitSequenceArrayArgument(const std::string &amp;arg_name, const std::vector&lt; SequenceVar * &gt; &amp;arguments) override</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00240">visitor.cc:240</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_argument_holder_html_ae23e57e443be817e98c18896384f5f8f"><div class="ttname"><a href="classoperations__research_1_1_argument_holder.html#ae23e57e443be817e98c18896384f5f8f">operations_research::ArgumentHolder::HasIntegerExpressionArgument</a></div><div class="ttdeci">bool HasIntegerExpressionArgument(const std::string &amp;arg_name) const</div><div class="ttdoc">Checks if arguments exist.</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00084">visitor.cc:84</a></div></div>
<div class="ttc" id="abase_2logging_8h_html_a3e1cfef60e774a81f30eaddf26a3a274"><div class="ttname"><a href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a></div><div class="ttdeci">#define CHECK(condition)</div><div class="ttdef"><b>Definition:</b> <a href="base_2logging_8h_source.html#l00495">base/logging.h:495</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1_model_parser_html_a0e0eee81c1c10f89672e3e41c94939ea"><div class="ttname"><a href="classoperations__research_1_1_model_parser.html#a0e0eee81c1c10f89672e3e41c94939ea">operations_research::ModelParser::PushArgumentHolder</a></div><div class="ttdeci">void PushArgumentHolder()</div><div class="ttdef"><b>Definition:</b> <a href="visitor_8cc_source.html#l00248">visitor.cc:248</a></div></div>
<div class="ttc" id="anamespacegtl_html_aae28e97bd1fa93cb0032642550da7455"><div class="ttname"><a href="namespacegtl.html#aae28e97bd1fa93cb0032642550da7455">gtl::ContainsKey</a></div><div class="ttdeci">bool ContainsKey(const Collection &amp;collection, const Key &amp;key)</div><div class="ttdef"><b>Definition:</b> <a href="map__util_8h_source.html#l00170">map_util.h:170</a></div></div>
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_afbb39f66221aac28bbdefd1dca2b2b0.html">constraint_solver</a></li><li class="navelem"><a class="el" href="visitor_8cc.html">visitor.cc</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>