mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-25 13:20:57 +00:00
Added example of how to code print() methods so that they will disappear
from the code if "cnull" is passed into them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32641 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f2174da713
commit
b0a9d1b9bc
@ -509,7 +509,7 @@ library. There are two problems with this:</p>
|
||||
more pressure on the VM system on low-memory machines.</li>
|
||||
</ol>
|
||||
|
||||
<table>
|
||||
<table align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Old Way</th>
|
||||
@ -520,8 +520,10 @@ library. There are two problems with this:</p>
|
||||
<td align="left"><pre>#include "llvm/Support/Streams.h"</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left"><pre>DEBUG(std::cerr << ...);</pre></td>
|
||||
<td align="left"><pre>DOUT << ...;</pre></td>
|
||||
<td align="left"><pre>DEBUG(std::cerr << ...);
|
||||
DEBUG(dump(std::cerr));</pre></td>
|
||||
<td align="left"><pre>DOUT << ...;
|
||||
dump(DOUT);</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left"><pre>std::cerr << "Hello world\n";</pre></td>
|
||||
@ -535,6 +537,12 @@ library. There are two problems with this:</p>
|
||||
<td align="left"><pre>std::cin >> Var;</pre></td>
|
||||
<td align="left"><pre>llvm::cin >> Var;</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left"><em>N/A</em></td>
|
||||
<td align="left"><pre>llvm::cnull >> Var;</pre>
|
||||
<ul><i>N.B.</i> Eats up argument <tt>Var</tt> outputting
|
||||
nothing.</ul></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left"><pre>std::ostream</pre></td>
|
||||
<td align="left"><pre>llvm::OStream</pre></td>
|
||||
@ -552,9 +560,14 @@ library. There are two problems with this:</p>
|
||||
// ...
|
||||
print(std::cerr);</pre></td>
|
||||
<td align="left"><pre>void print(std::ostream &Out);
|
||||
void print(std::ostream *Out) { if (Out) print(*Out) }
|
||||
// ...
|
||||
print(*llvm::cerr.stream());</pre></td>
|
||||
</tbody>
|
||||
print(llvm::cerr);</pre>
|
||||
|
||||
<ul><i>N.B.</i> The second <tt>print</tt> method is called by the <tt>print</tt>
|
||||
expression. It prevents the execution of the first <tt>print</tt> method if the
|
||||
stream is <tt>cnull</tt>.</ul></td>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user