Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Hidden features:</p> <ol> <li>Pure virtual functions can have implementation. Common example, pure virtual destructor.</li> <li><p>If a function throws an exception not listed in its exception specifications, but the function has <code>std::bad_exception</code> in its exception specification, the exception is converted into <code>std::bad_exception</code> and thrown automatically. That way you will at least know that a <code>bad_exception</code> was thrown. Read more <a href="http://cpptruths.blogspot.com/2007/05/use-of-stdbadexception.html" rel="nofollow noreferrer">here</a>.</p></li> <li><p>function try blocks</p></li> <li><p>The template keyword in disambiguating typedefs in a class template. If the name of a member template specialization appears after a <code>.</code>, <code>-&gt;</code>, or <code>::</code> operator, and that name has explicitly qualified template parameters, prefix the member template name with the keyword template. Read more <a href="http://en.wikibooks.org/wiki/More_C++_Idioms/Policy_Clone" rel="nofollow noreferrer">here</a>.</p></li> <li><p>function parameter defaults can be changed at runtime. Read more <a href="http://cpptruths.blogspot.com/2005/07/changing-c-function-default-arguments.html" rel="nofollow noreferrer">here</a>.</p></li> <li><p><code>A[i]</code> works as good as <code>i[A]</code></p></li> <li><p>Temporary instances of a class can be modified! A non-const member function can be invoked on a temporary object. For example:</p> <pre><code>struct Bar { void modify() {} } int main (void) { Bar().modify(); /* non-const function invoked on a temporary. */ } </code></pre> <p>Read more <a href="http://cpptruths.blogspot.com/2009/08/modifying-temporaries.html" rel="nofollow noreferrer">here</a>.</p></li> <li><p>If two different types are present before and after the <code>:</code> in the ternary (<code>?:</code>) operator expression, then the resulting type of the expression is the one that is the most general of the two. For example:</p> <pre><code>void foo (int) {} void foo (double) {} struct X { X (double d = 0.0) {} }; void foo (X) {} int main(void) { int i = 1; foo(i ? 0 : 0.0); // calls foo(double) X x; foo(i ? 0.0 : x); // calls foo(X) } </code></pre></li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload