diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-12-03 23:25:40 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-12-03 23:25:40 -0800 |
commit | 4a48bedcd1d708a43d43dc6259a4e45c52ea3d00 (patch) | |
tree | 85c1b7310cca932797d727a3de8da96eb175d8da /html/001help.cc.html | |
parent | ef7d834fdd826977cd8d43253052a7b8e1c5aa72 (diff) | |
download | mu-4a48bedcd1d708a43d43dc6259a4e45c52ea3d00.tar.gz |
4134 - 'input' = 'ingredient'
Diffstat (limited to 'html/001help.cc.html')
-rw-r--r-- | html/001help.cc.html | 85 |
1 files changed, 43 insertions, 42 deletions
diff --git a/html/001help.cc.html b/html/001help.cc.html index f04fd9dd..16025a66 100644 --- a/html/001help.cc.html +++ b/html/001help.cc.html @@ -220,7 +220,7 @@ if ('onhashchange' in window) { <span id="L157" class="LineNr">157 </span> sigaction<span class="Delimiter">(</span><span class="Constant">SIGABRT</span><span class="Delimiter">,</span> &action<span class="Delimiter">,</span> <span class="Constant">NULL</span><span class="Delimiter">);</span> <span class="Comment">// assert() failure or integer overflow on linux (with -ftrapv)</span> <span id="L158" class="LineNr">158 </span> sigaction<span class="Delimiter">(</span><span class="Constant">SIGILL</span><span class="Delimiter">,</span> &action<span class="Delimiter">,</span> <span class="Constant">NULL</span><span class="Delimiter">);</span> <span class="Comment">// integer overflow on OS X (with -ftrapv)</span> <span id="L159" class="LineNr">159 </span><span class="Delimiter">}</span> -<span id="L160" class="LineNr">160 </span><span class="Normal">void</span> <a href='001help.cc.html#L160'>dump_and_exit</a><span class="Delimiter">(</span><span class="Normal">int</span> sig<span class="Delimiter">,</span> <a href='001help.cc.html#L258'>unused</a> siginfo_t* dummy1<span class="Delimiter">,</span> <a href='001help.cc.html#L258'>unused</a> <span class="Normal">void</span>* dummy2<span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L160" class="LineNr">160 </span><span class="Normal">void</span> <a href='001help.cc.html#L160'>dump_and_exit</a><span class="Delimiter">(</span><span class="Normal">int</span> sig<span class="Delimiter">,</span> <a href='001help.cc.html#L259'>unused</a> siginfo_t* dummy1<span class="Delimiter">,</span> <a href='001help.cc.html#L259'>unused</a> <span class="Normal">void</span>* dummy2<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L161" class="LineNr">161 </span> <span class="Normal">switch</span> <span class="Delimiter">(</span>sig<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L162" class="LineNr">162 </span> <span class="Conceal">¦</span> <span class="Normal">case</span> <span class="Constant">SIGABRT</span>: <span id="L163" class="LineNr">163 </span><span class="PreProc"> </span><span class="Conceal">¦</span><span class="PreProc"> </span><span class="Conceal">¦</span><span class="PreProc"> #ifndef __APPLE__</span> @@ -282,47 +282,48 @@ if ('onhashchange' in window) { <span id="L219" class="LineNr">219 </span> <span class="Identifier">return</span> iter<span class="Delimiter">-></span>second<span class="Delimiter">;</span> <span id="L220" class="LineNr">220 </span><span class="Delimiter">}</span> <span id="L221" class="LineNr">221 </span><span class="Normal">template</span><<span class="Normal">typename</span> T> <span class="Normal">typename</span> T::mapped_type <span class="Normal">const</span>& <a href='001help.cc.html#L221'>put</a><span class="Delimiter">(</span>T& map<span class="Delimiter">,</span> <span class="Normal">typename</span> T::key_type <span class="Normal">const</span>& key<span class="Delimiter">,</span> <span class="Normal">typename</span> T::mapped_type <span class="Normal">const</span>& value<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L222" class="LineNr">222 </span> map[key] = value<span class="Delimiter">;</span> -<span id="L223" class="LineNr">223 </span> <span class="Identifier">return</span> map[key]<span class="Delimiter">;</span> -<span id="L224" class="LineNr">224 </span><span class="Delimiter">}</span> -<span id="L225" class="LineNr">225 </span><span class="Normal">template</span><<span class="Normal">typename</span> T> <span class="Normal">bool</span> contains_key<span class="Delimiter">(</span>T& map<span class="Delimiter">,</span> <span class="Normal">typename</span> T::key_type <span class="Normal">const</span>& key<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L226" class="LineNr">226 </span> <span class="Identifier">return</span> map<span class="Delimiter">.</span>find<span class="Delimiter">(</span>key<span class="Delimiter">)</span> != map<span class="Delimiter">.</span><a href='003trace.cc.html#L197'>end</a><span class="Delimiter">();</span> -<span id="L227" class="LineNr">227 </span><span class="Delimiter">}</span> -<span id="L228" class="LineNr">228 </span><span class="Normal">template</span><<span class="Normal">typename</span> T> <span class="Normal">typename</span> T::mapped_type& <a href='001help.cc.html#L228'>get_or_insert</a><span class="Delimiter">(</span>T& map<span class="Delimiter">,</span> <span class="Normal">typename</span> T::key_type <span class="Normal">const</span>& key<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L229" class="LineNr">229 </span> <span class="Identifier">return</span> map[key]<span class="Delimiter">;</span> -<span id="L230" class="LineNr">230 </span><span class="Delimiter">}</span> -<span id="L231" class="LineNr">231 </span><span class="Comment">//: The contract: any container that relies on get_or_insert should never call</span> -<span id="L232" class="LineNr">232 </span><span class="Comment">//: contains_key.</span> -<span id="L233" class="LineNr">233 </span> -<span id="L234" class="LineNr">234 </span><span class="Comment">//: 7. istreams are a royal pain in the arse. You have to be careful about</span> -<span id="L235" class="LineNr">235 </span><span class="Comment">//: what subclass you try to putback into. You have to watch out for the pesky</span> -<span id="L236" class="LineNr">236 </span><span class="Comment">//: failbit and badbit. Just avoid eof() and use this helper instead.</span> -<span id="L237" class="LineNr">237 </span><span class="Delimiter">:(code)</span> -<span id="L238" class="LineNr">238 </span><span class="Normal">bool</span> <a href='001help.cc.html#L238'>has_data</a><span class="Delimiter">(</span>istream& in<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L239" class="LineNr">239 </span> <span class="Identifier">return</span> in && !in<span class="Delimiter">.</span>eof<span class="Delimiter">();</span> -<span id="L240" class="LineNr">240 </span><span class="Delimiter">}</span> -<span id="L241" class="LineNr">241 </span> -<span id="L242" class="LineNr">242 </span><span class="Delimiter">:(before "End Includes")</span> -<span id="L243" class="LineNr">243 </span><span class="PreProc">#include </span><span class="Constant"><assert.h></span> -<span id="L244" class="LineNr">244 </span> -<span id="L245" class="LineNr">245 </span><span class="PreProc">#include </span><span class="Constant"><iostream></span> -<span id="L246" class="LineNr">246 </span><span class="Normal">using</span> std::istream<span class="Delimiter">;</span> -<span id="L247" class="LineNr">247 </span><span class="Normal">using</span> std::ostream<span class="Delimiter">;</span> -<span id="L248" class="LineNr">248 </span><span class="Normal">using</span> std::iostream<span class="Delimiter">;</span> -<span id="L249" class="LineNr">249 </span><span class="Normal">using</span> std::cin<span class="Delimiter">;</span> -<span id="L250" class="LineNr">250 </span><span class="Normal">using</span> std::cout<span class="Delimiter">;</span> -<span id="L251" class="LineNr">251 </span><span class="Normal">using</span> std::cerr<span class="Delimiter">;</span> -<span id="L252" class="LineNr">252 </span><span class="PreProc">#include </span><span class="Constant"><iomanip></span> -<span id="L253" class="LineNr">253 </span> -<span id="L254" class="LineNr">254 </span><span class="PreProc">#include </span><span class="Constant"><string.h></span> -<span id="L255" class="LineNr">255 </span><span class="PreProc">#include </span><span class="Constant"><string></span> -<span id="L256" class="LineNr">256 </span><span class="Normal">using</span> std::string<span class="Delimiter">;</span> -<span id="L257" class="LineNr">257 </span> -<span id="L258" class="LineNr">258 </span><span class="PreProc">#define unused __attribute__((unused))</span> -<span id="L259" class="LineNr">259 </span> -<span id="L260" class="LineNr">260 </span><span class="PreProc">#include </span><span class="Constant"><algorithm></span> -<span id="L261" class="LineNr">261 </span><span class="Normal">using</span> std::min<span class="Delimiter">;</span> -<span id="L262" class="LineNr">262 </span><span class="Normal">using</span> std::max<span class="Delimiter">;</span> +<span id="L222" class="LineNr">222 </span> <span class="Comment">// map[key] requires mapped_type to have a zero-arg (default) constructor</span> +<span id="L223" class="LineNr">223 </span> map<span class="Delimiter">.</span>insert<span class="Delimiter">(</span>std::make_pair<span class="Delimiter">(</span>key<span class="Delimiter">,</span> value<span class="Delimiter">)).</span>first<span class="Delimiter">-></span>second = value<span class="Delimiter">;</span> +<span id="L224" class="LineNr">224 </span> <span class="Identifier">return</span> value<span class="Delimiter">;</span> +<span id="L225" class="LineNr">225 </span><span class="Delimiter">}</span> +<span id="L226" class="LineNr">226 </span><span class="Normal">template</span><<span class="Normal">typename</span> T> <span class="Normal">bool</span> contains_key<span class="Delimiter">(</span>T& map<span class="Delimiter">,</span> <span class="Normal">typename</span> T::key_type <span class="Normal">const</span>& key<span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L227" class="LineNr">227 </span> <span class="Identifier">return</span> map<span class="Delimiter">.</span>find<span class="Delimiter">(</span>key<span class="Delimiter">)</span> != map<span class="Delimiter">.</span><a href='003trace.cc.html#L197'>end</a><span class="Delimiter">();</span> +<span id="L228" class="LineNr">228 </span><span class="Delimiter">}</span> +<span id="L229" class="LineNr">229 </span><span class="Normal">template</span><<span class="Normal">typename</span> T> <span class="Normal">typename</span> T::mapped_type& <a href='001help.cc.html#L229'>get_or_insert</a><span class="Delimiter">(</span>T& map<span class="Delimiter">,</span> <span class="Normal">typename</span> T::key_type <span class="Normal">const</span>& key<span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L230" class="LineNr">230 </span> <span class="Identifier">return</span> map[key]<span class="Delimiter">;</span> +<span id="L231" class="LineNr">231 </span><span class="Delimiter">}</span> +<span id="L232" class="LineNr">232 </span><span class="Comment">//: The contract: any container that relies on get_or_insert should never call</span> +<span id="L233" class="LineNr">233 </span><span class="Comment">//: contains_key.</span> +<span id="L234" class="LineNr">234 </span> +<span id="L235" class="LineNr">235 </span><span class="Comment">//: 7. istreams are a royal pain in the arse. You have to be careful about</span> +<span id="L236" class="LineNr">236 </span><span class="Comment">//: what subclass you try to putback into. You have to watch out for the pesky</span> +<span id="L237" class="LineNr">237 </span><span class="Comment">//: failbit and badbit. Just avoid eof() and use this helper instead.</span> +<span id="L238" class="LineNr">238 </span><span class="Delimiter">:(code)</span> +<span id="L239" class="LineNr">239 </span><span class="Normal">bool</span> <a href='001help.cc.html#L239'>has_data</a><span class="Delimiter">(</span>istream& in<span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L240" class="LineNr">240 </span> <span class="Identifier">return</span> in && !in<span class="Delimiter">.</span>eof<span class="Delimiter">();</span> +<span id="L241" class="LineNr">241 </span><span class="Delimiter">}</span> +<span id="L242" class="LineNr">242 </span> +<span id="L243" class="LineNr">243 </span><span class="Delimiter">:(before "End Includes")</span> +<span id="L244" class="LineNr">244 </span><span class="PreProc">#include </span><span class="Constant"><assert.h></span> +<span id="L245" class="LineNr">245 </span> +<span id="L246" class="LineNr">246 </span><span class="PreProc">#include </span><span class="Constant"><iostream></span> +<span id="L247" class="LineNr">247 </span><span class="Normal">using</span> std::istream<span class="Delimiter">;</span> +<span id="L248" class="LineNr">248 </span><span class="Normal">using</span> std::ostream<span class="Delimiter">;</span> +<span id="L249" class="LineNr">249 </span><span class="Normal">using</span> std::iostream<span class="Delimiter">;</span> +<span id="L250" class="LineNr">250 </span><span class="Normal">using</span> std::cin<span class="Delimiter">;</span> +<span id="L251" class="LineNr">251 </span><span class="Normal">using</span> std::cout<span class="Delimiter">;</span> +<span id="L252" class="LineNr">252 </span><span class="Normal">using</span> std::cerr<span class="Delimiter">;</span> +<span id="L253" class="LineNr">253 </span><span class="PreProc">#include </span><span class="Constant"><iomanip></span> +<span id="L254" class="LineNr">254 </span> +<span id="L255" class="LineNr">255 </span><span class="PreProc">#include </span><span class="Constant"><string.h></span> +<span id="L256" class="LineNr">256 </span><span class="PreProc">#include </span><span class="Constant"><string></span> +<span id="L257" class="LineNr">257 </span><span class="Normal">using</span> std::string<span class="Delimiter">;</span> +<span id="L258" class="LineNr">258 </span> +<span id="L259" class="LineNr">259 </span><span class="PreProc">#define unused __attribute__((unused))</span> +<span id="L260" class="LineNr">260 </span> +<span id="L261" class="LineNr">261 </span><span class="PreProc">#include </span><span class="Constant"><algorithm></span> +<span id="L262" class="LineNr">262 </span><span class="Normal">using</span> std::min<span class="Delimiter">;</span> +<span id="L263" class="LineNr">263 </span><span class="Normal">using</span> std::max<span class="Delimiter">;</span> </pre> </body> </html> |