File: explicit_cast.cpp

package info (click to toggle)
emoslib 2%3A4.4.5-2
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 359,232 kB
  • ctags: 13,125
  • sloc: fortran: 93,166; ansic: 27,958; sh: 7,500; f90: 5,209; perl: 604; cpp: 305; makefile: 78; python: 53
file content (13 lines) | stat: -rw-r--r-- 256 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
class A {
  public:
   A(int a = 5) : a_(a) {};
   explicit operator bool() const { return a_ == 2; }
  protected:
   int a_;
};

int main () {
  A a(6);
  A const b(2);
  return (static_cast<bool>(a) == false and static_cast<bool>(b) == true) ? 0: 1;  
}