Sampling algorithms for D
    Ali Çehreli 
    acehreli at yahoo.com
       
    Fri Apr 13 10:49:45 PDT 2012
    
    
  
On 04/13/2012 02:41 AM, Joseph Rushton Wakeling wrote:
 > On 13/04/12 01:44, bearophile wrote:
 >> final size_t select(ref UniformRNG urng)
 >> in {
 >> assert(_recordsRemaining> 0);
 >> assert(_sampleRemaining> 0);
 >> } body {
 >> ...
 >> }
 >
 > OK. I'm confused by these asserts, because if I go beyond what is
 > acceptable by calling select() even after I've collected a complete
 > sample, no error is thrown.
This is a complicated issue that touches how in contracts are not 
inherited. I think your issue is because the interface does not define 
any in contracts, effectively allowing every call to select(). Please 
start reading here: :)
   http://d.puremagic.com/issues/show_bug.cgi?id=6856
As a general reminder, there is also the invariant() blocks, and 
sometimes enforce() is more appropriate than assert.
Ali
    
    
More information about the Digitalmars-d-learn
mailing list