
"Alexander Nasonov" <alnsn-boost@yandex.ru> wrot
1. BOOST_AUTO in reference section:
"var a free identifier"
- what is a free identifier? An identifier being defined?
"expr a valid c++ expression that has a type"
- Is there any valid C++ expression that has to type?
I do agree that the docs have yet to be polished in terms of terminology used.
- Reference semantics explained in tutorial but it doesn't appear here. - Scope of var is not clear from the description.
OK
- expression returning void compiles fine in native mode but fails in compliant mode.
Well, this is just: typeof(expr) var = expr; I am surprized that it compiles in the native mode. Can a variable have the type "void"?
2. INCREMENT_REGISTRATION_GROUP
Scope of #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() should be clear. My sample compiles in compliant mode even though inclusion is at class scope. Is it legal?
I think so. This is just a preprocessor thing -- no code gets generated. The main thing is that the preprocessor should hit this line before it hits any of registration macros in the same file.
3. REGISTER_TEMPLATE
- I don't see any information on other non-type template parameters such as a pointer to member and a pointer/reference to object or function (14.1/4). Are they supported?
Only type, integral, and template template parameters are currently supported.
- "unsigned" implies int, 7.1/3
Right, but a C++ programmer can say "unsigned int" or "unsigned" with the same effect, so we support the same, as we support the typename/class alternative to denote type template parameters.
I'm still reading the docs. Be prepared for other notes :)
Looking forward :-) Regards, Arkadiy