title: When to use C float comparison functions?
body: <p>In the latest C++ standard, I noticed the following macros :</p>
  
  <pre><code>bool isgreater(float x, float y);
  bool isgreaterequal(float x, float y);
  bool isless(float x, float y);
  bool islessequal(float x, float y);
  bool islessgreater(float x, float y);
  bool isunordered(float x, float y);
  </code></pre>
  
  <p>These macros are from C (7.12.14 and 7.12.14).</p>
  
  <p>So, why would someone use these macros, instead of operators? Is there anything special that these macros are doing (like checking for <code>inf</code>), or are they the same as their corresponding operator?</p>
  
  <p>C++ example :</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;cmath&gt;
  
  int main()
  {
    float x=0.2;
    float y=0.5;
    std::cout &lt;&lt; x &lt;&lt; " &lt; " &lt;&lt; y &lt;&lt; " : " &lt;&lt; std::boolalpha &lt;&lt; std::islessequal( x, y ) &lt;&lt; std::endl;
    std::cout &lt;&lt; x &lt;&lt; " &lt; " &lt;&lt; y &lt;&lt; " : " &lt;&lt; std::boolalpha &lt;&lt; ( x &lt;= y ) &lt;&lt; std::endl;
  }
  </code></pre>