forked from OSchip/llvm-project
Tell "the rest of the story" about LLVM's iterators' implicit conversions.
llvm-svn: 99642
This commit is contained in:
parent
b9e176b0ec
commit
37027c30ec
|
@ -1843,6 +1843,21 @@ void printNextInstruction(Instruction* inst) {
|
|||
</pre>
|
||||
</div>
|
||||
|
||||
<p>Unfortunately, these implicit conversions come at a cost; they prevent
|
||||
these iterators from conforming to standard iterator conventions, and thus
|
||||
from being usable with standard algorithms and containers. For example, it
|
||||
prevents the following code, where <tt>B</tt> is a <tt>BasicBlock</tt>,
|
||||
from compiling:</p>
|
||||
|
||||
<div class="doc_code">
|
||||
<pre>
|
||||
llvm::SmallVector<llvm::Instruction *, 16>(B->begin(), B->end());
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>Because of this, these implicit conversions may be removed some day,
|
||||
and <tt>operator*</tt> changed to return a pointer instead of a reference.
|
||||
|
||||
</div>
|
||||
|
||||
<!--_______________________________________________________________________-->
|
||||
|
|
Loading…
Reference in New Issue