Boost logo

Boost :

From: Keith Burton (kb_at_[hidden])
Date: 2002-08-04 02:04:42


The conversation on this subject appears to be revolving around the
implementation and not the specification.
 
In my opinion , remove should be idempotent and therefore the
specification ( but not the implementation ) should be :
 
 
if ( exists( ph ) )
{
    if ( is_directory( ph ) && ! empty( ph ) )
        throw
    else
        os::remove( ph )
}
if ( exists( ph ) )
    throw
 
 
where exists( ph ) is specified as :
 
if ph definitely exists
    return true ;
else if ph definitely does not exist
    return false ;
else
    throw ;
 
 
This is a valid specification which meets all the objections about
wanting to be sure that the file has been deleted while still meeting
the ease of use criteria that I believe is important for a portable
filesystem. I accept that it may not be possible to efficiently
implement this specification on any particular operating system.
 
 
Keith Burton
 



Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk