<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p><span style="color: rgb(33, 33, 33); font-size: 12pt;">>I think we're talking past each other a bit, and I'm not quite sure how to resolve the disconnect here, but I'll try.</span><br>
</p>
<div style="color: rgb(33, 33, 33);">
<div>
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>><br>
>The general idea is that code shouldn't be written to be resilient to programmer errors - once invariants and preconditions have been violated, there's really nothing we can do >anyway. Also, we don't want to spend time checking all these invariants and preconditions
 in release builds (because we want the compiler to be fast). So we use assertions and >unreachable, rather than conditionals and error handling/reporting for cases that are not intended to be possible. ( <a href="http://llvm.org/docs/CodingStandards.html#assert-liberally">http://llvm.org/docs/CodingStandards.html#assert-liberally</a>>discusses
 some of this)<br>
><br>
>In short, if this case is only reachable by a programmer error, it should be an assert. (unreachable is used when it's a block of code that can't be reached - like a default in a switch, >the end of a function that has some algorithmic reason to always return
 through some other path, etc - this is discussed in the coding standard linked above)<br>
</div>
<div><br>
</div>
<div>​Ok, I will change it to assert. Thanks for your time.<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>