Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

7
  • @Dave What do you mean by "implementation"? I'm using Visual C++ 2010 Express, I assume this is different than if I used emacs? Commented Dec 24, 2013 at 20:59
  • @David emacs is just an editor. I'm talking about implementations of the standard library. VS2010 comes with one. emacs doesn't. Microsoft had the option to grow vector's capacity however they wanted. It's not specified in the standard on how to grow it. Different implementations could grow at different rates. Commented Dec 24, 2013 at 21:01
  • @David: the "implementation" is the C++ compiler and its standard C++ library. Visual Studio C++ comes with a C++ compiler. Emacs doesnt. There are multiple different compilers, e.g., gcc and clang are popular open-source compilers. Commented Dec 24, 2013 at 21:06
  • @DietmarKühl You would know better than me, but the semantic difference between 'implementation defined' and 'unspecified' which you're getting at seems pretty hazy - can you elaborate? They mean the same thing to me. Commented Dec 24, 2013 at 21:07
  • @Dave: "implementation defined" means that the implementation's documentation needs to explicitly document what it has chosen to do and these choices become part of the contract. It is just that the C++ standard didn't make any choice (see, e.g., gcc's doc). "unspecified" means that the implementation needs to do something sensible and there may be different choices yielding different results but the choices are not documented and won't be guaranteed. A DS9k implementation could choose to make a different choice each time. Commented Dec 24, 2013 at 21:16