4

In C++ there are terms that not mentioned or explained in most C++ books. For example:

  • singular iterator (link)
  • qualified name (link)
  • dependent name
  • deduced context
  • shadow
  • x/gl/pr-value (link)
  • incomplete type (link)

You won't understand compiler error messages if you don't know what they mean. I know meaning of all above terms (they are just example). Of cause after some not trivial googling - I could figure out term meaning. In case of singular iterator, I had to look into gcc source code.

Is there a dictionary or something where these are explained and defined in not too expert friendly way as in the standard?

Community
  • 1
  • 1
Leonid Volnitsky
  • 8,854
  • 5
  • 38
  • 53
  • 8
    I would say that if you have to know what these terms mean, you should be reading the spec, not a book. – Nicol Bolas Jul 23 '12 at 20:34
  • AFAIK There is no detailed resource, besides the the standard. I'd suggest you split that up and ask those as single SO questions. – pmr Jul 23 '12 at 20:34
  • @ pmr I know what these terms mean (after some reseach). – Leonid Volnitsky Jul 23 '12 at 20:37
  • 4
    I don't know what *singular iterator* means and I have been reading error messages for a long time... – David Rodríguez - dribeas Jul 23 '12 at 20:37
  • @Rodrigo - from GCC error messages. I do a lot of meta programming. – Leonid Volnitsky Jul 23 '12 at 20:38
  • @David - my compiler (gcc48) will complain about singular iterator after seeing code like this: list::iterator it; cout << *it; – Leonid Volnitsky Jul 23 '12 at 20:49
  • 1
    (To be honest, I know what *singular iterator* is from the standard, but had not ever seen it in an error message, and my guess is that you don't really need to know the precise meaning of these terms to understand the error messages) – David Rodríguez - dribeas Jul 23 '12 at 20:52
  • 1
    No, unfortunately no such resource exists, the best you are going to get is the C++ standard. Probably second-best would be Stack Overflow, I have found quite a few questions related to terminology that have helped a lot (quick search): [What is singular and non-singular values in the context of STL iterators?](http://stackoverflow.com/questions/5441893/what-is-singular-and-non-singular-values-in-the-context-of-stl-iterators) - I'm guessing "singular iterator" means "singular value" [What are qualified-id/name and unqualified-id/name?](http://stackoverflow.com/questions/7257563/what-are-qualif – Jesse Good Jul 23 '12 at 20:51
  • @JesseGood: You answered the question and then voted to close it as not a real question!? – Adrian McCarthy Jul 30 '12 at 16:42
  • 1
    @AdrianMcCarthy: Somebody with access to moderator tools converted my answer to a comment. Because of that, I decided to close the question since I was being disallowed from answering the question. However, after reconsideration I voted to reopen since I do think it is valid. – Jesse Good Jul 30 '12 at 20:23
  • @Jesse It is a valid question. However, I do wonder what the mods think the answer should be, if yours isn't good enough. – Mr Lister Jul 31 '12 at 12:33
  • @Leonid, it might help to mention that gcc mentions singular iterators iff you define _GLIBCXX_DEBUG – Jonathan Wakely Jul 31 '12 at 13:57

1 Answers1

2

Here, we have the official C++11 final working draft.

In this document, anybody may look up the phrases you mention:

  • singular iterator - not found, (24.2.1: "Iterators can also have singular values that are not associated with any sequence", and "An invalid iterator is an iterator that may be singular")
  • qualified name - found, explained
  • dependent name - found, explained
  • deduced context - found, explained
  • shadow - not found
  • xvalue - not found, (3.10: An xvalue [an “eXpiring” value] also refers to an object)
  • gl-value - not found, (3.10: A glvalue [“generalized” lvalue] is an lvalue or an xvalue)
  • pr-value - not found, (3.10: A prvalue [“pure” rvalue] is an rvalue that is not an xvalue)
  • incomplete type - found, explained

The remaining terms can be looked up in the internets but seem to be more or less vendor specific phrases, if I'm not completely mistaken.


Updated after Jonathan Wakely's comment.
rubber boots
  • 14,924
  • 5
  • 33
  • 44