mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-03 09:21:02 +00:00
VC++ 6.0 is not future work :)
Do not recommend llvm::OStream anymore. Use raw_ostream or MemoryBuffer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67504 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
82f84159e0
commit
4bd3d7e17c
@ -379,9 +379,8 @@ code, isolate it behind a well defined (and well documented) interface.</p>
|
|||||||
|
|
||||||
<p>In practice, this means that you shouldn't assume much about the host
|
<p>In practice, this means that you shouldn't assume much about the host
|
||||||
compiler, including its support for "high tech" features like partial
|
compiler, including its support for "high tech" features like partial
|
||||||
specialization of templates. In fact, Visual C++ 6 could be an important target
|
specialization of templates. If these features are used, they should only be
|
||||||
for our work in the future, and we don't want to have to rewrite all of our code
|
an implementation detail of a library which has a simple exposed API.</p>
|
||||||
to support it.</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -526,67 +525,9 @@ library. There are two problems with this:</p>
|
|||||||
example) is allowed normally, it is just <tt><iostream></tt> that is
|
example) is allowed normally, it is just <tt><iostream></tt> that is
|
||||||
causing problems.</p>
|
causing problems.</p>
|
||||||
|
|
||||||
<table>
|
<p>The preferred replacement for stream functionality is the
|
||||||
<tbody>
|
<tt>raw_ostream</tt> class (for writing to output streams of various sorts) and
|
||||||
<tr>
|
the MemoryBuffer API (for reading in files).</p>
|
||||||
<th>Old Way</th>
|
|
||||||
<th>New Way</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>#include <iostream></pre></td>
|
|
||||||
<td align="left"><pre>#include "llvm/Support/Streams.h"</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>DEBUG(std::cerr << ...);
|
|
||||||
DEBUG(dump(std::cerr));</pre></td>
|
|
||||||
<td align="left"><pre>DOUT << ...;
|
|
||||||
DEBUG(dump(DOUT));</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::cerr << "Hello world\n";</pre></td>
|
|
||||||
<td align="left"><pre>llvm::cerr << "Hello world\n";</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::cout << "Hello world\n";</pre></td>
|
|
||||||
<td align="left"><pre>llvm::cout << "Hello world\n";</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::cin >> Var;</pre></td>
|
|
||||||
<td align="left"><pre>llvm::cin >> Var;</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::ostream</pre></td>
|
|
||||||
<td align="left"><pre>llvm::OStream</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::istream</pre></td>
|
|
||||||
<td align="left"><pre>llvm::IStream</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>std::stringstream</pre></td>
|
|
||||||
<td align="left"><pre>llvm::StringStream</pre></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><pre>void print(std::ostream &Out);
|
|
||||||
// ...
|
|
||||||
print(std::cerr);</pre></td>
|
|
||||||
<td align="left"><tt>void print(llvm::OStream Out);<sup><a href="#sn_1">1</a></sup><br>
|
|
||||||
// ...<br>
|
|
||||||
print(llvm::cerr);</tt>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p><b>Notes:</b></p>
|
|
||||||
|
|
||||||
<div class="doc_notes">
|
|
||||||
<ol>
|
|
||||||
<li><a name="sn_1"><tt>llvm::OStream</tt></a> is a light-weight class so it
|
|
||||||
should never be passed by reference. This is important because in some
|
|
||||||
configurations, <tt>DOUT</tt> is an rvalue.</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user