Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I assume that you:</p> <ul> <li><p>have such code being compiled into a library, have been upgrading your compiler(s) and now want to compile your code with C++11 (or cannot because you don't have the code), or,</p></li> <li><p>have code already in a library from before C++11 and now that you have upgraded your compiler(s) you want to use the above code and be "compatible" with the old library, or,</p></li> <li><p>want to compile code without C++11 and link it with code compiled with C++11 using the same compiler.</p></li> </ul> <p>In each case, the answer is not a C++ question, rather, it is a compiler ABI question since it concerns whether or not (i) the link phase will work and (ii) the run-time forms of classes, etc. are still valid between the compilers/versions/compiler settings.</p> <p>So you will need to examine the documentation for the compiler(s) you are using to find out if it is "binary safe". </p> <p><strong>NOTE #1:</strong> If your compiler(s) has(/have) changed the exception handling emitted code design, RTTI layout of classes, and/or the name mangling scheme in any way, then your answer is, "No it is not safe." But these are likely not the only cases.</p> <p><strong>NOTE #2:</strong> If it is with the same compiler and different settings (e.g., with C++11 and without) then you technically are violating ODR (one definition rule) assumptions when you exclude code for some modules and have it for others within the same program. In this case, the results are technically implementation defined, but, since it is not virtual, it is very, very, very likely to work with most compilers provided only one version of one compiler is being used.</p>
    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. This table or related slice is empty.
    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