Thread overview
error with DbC
Oct 07, 2004
FUKUDA, Fumiki
Oct 07, 2004
FUKUDA, Fumiki
Dec 26, 2004
Alan
October 07, 2004
#include <iostream>
#include <cassert>

int half(int n)
__in  { assert( n > 0 ); }
__out (result) { assert(result+result < n); }
__body
{
return n/2;
}

int main() {
std::cout << "Hello, world" << half(-5) << std::endl;
return 0;
}

this code reports compile error under DMC841C+STLport
even if '-D' is NOT specified. why? what should I do?

__in  { assert( n > 0 ); }
^
foo.cpp(5) : Error: '__stl_in' is not in function par
__out (result) { assert(result+result < n); }
^
foo.cpp(6) : Error: '=', ';' or ',' expected
}
^
foo.cpp(10) : Error: '=', ';' or ',' expected
return 0;
^
foo.cpp(14) : Error: '=', ';' or ',' expected
}
^
foo.cpp(15) : Error: '=', ';' or ',' expected
Fatal error: too many errors


October 07, 2004
oops... sorry, dumpilated.


December 26, 2004
<FUKUDA>; "Fumiki" <FUKUDA,_member@pathlink.com> wrote in message news:ck2pa8$s1t$1@digitaldaemon.com...
> #include <iostream>
> #include <cassert>
>
> int half(int n)
> __in  { assert( n > 0 ); }
> __out (result) { assert(result+result < n); }
> __body
> {
> return n/2;
> }
>
> int main() {
> std::cout << "Hello, world" << half(-5) << std::endl;
> return 0;
> }

Putting function half in the stream causes 'undefined behaviour'
(UB), better :

int main {
  int result = half(-5);
  std::cout << "result = " << result << "\n":
}