title: What is the boolean value of integers other than 0 or 1?
body: <p>I was writing a simple function to derive a new filename based on a set of files that should be named as cam1_0.bmp, cam1_1.bmp, and tried this out. </p>
  
  <pre><code>static int suffix = 0;
  std::string fPre("cam");
  std::ifstream fs;
  std::string fName;
  do {
      fName = fPre;
      fName.append(std::to_string(camera)).append("_").append(std::to_string(suffix)).append(".bmp");
      fs.open(fName);
  } while (fs.good() &amp;&amp; ++suffix);
  </code></pre>
  
  <p>This works and it made me wonder what is the standard, defined behavior of corresponding boolean values for number values other than 0 or 1. With this experiment I know all values including negative values other than 0 evaluates to true. Is only 0 considered to be false as per the standard?</p>