User:Fruderica

A Chinese C/C++ learner.

Special Symbols in C
Core:
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)

Library:
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)
 * (not done)

TR/TS:
 * (no page)
 * (no page)
 * (no page)
 * (no page)
 * (no page)
 * (no page)

Library:
 * (not done)
 * (not done)
 * (not done)
 * (not done)

TR/TS:
 * (no page)
 * (no page)
 * (no page)
 * (no page)
 * (no page)
 * (no page)

Other prederined macros:

Special identifiers:

Predefined objects:

Special user-defined functions:

Macro Issue

 * mark macro const
 * Macros expanding to expressions of pointer types (such as and ) are not required to be address constant expression (even not required to be unmodifiable?).
 * Format string macros expand to string literals. However, string literals are not classified as constant expressions, even though they can be static objects themselves or initializers of static objects.


 * mark macro var (suggested)
 * What's "variable" in C?
 * "Variable" in The C Programming Language (K&R C) is identical to "object" ( may be a variable).
 * "Variable" in C++ means "declared objects and declared references that are not non-static data members", which means "named objects and their subobjects" in C only as there are not reference types in C ( is not a variable; subset of K&R's definition).
 * "Variable" in VLA means "nonconstant" (determined in run time; unmodifiable in run time; not required to be an lvalue).
 * "Variable" in variable arguments means "number of function arguments may be different" (determined in compile time; unmodifiable in run time; even not an expression).
 * Condition variables are not likely to be related to the issue...
 * meets K&R's definition.
 * is probably to meet "nonconstant" and not a lvalue.
 * It is unspecified that whether expands to a lvalue expression!


 * mark macro str
 * Should this be used?

Exception specification issues
I think we can say that - an entity is non-throwing (or formally, having a non-throwing exception specification for function and relative variable) if and only if its set of potential exceptions is empty.

However, "set of potential exceptions" is redundant and no longer used since C++17, though it is still well-defined, while "non-throwing/potentially-throwing" is insufficient in revisions earlier than C++17.

voidify
Returns.

INVOKE
Equivalent to std, except that it may be used in a constant expression?

FUN
Declaration only. They reject rvalue argument, and are used by some wrappers.

Compiler support issues
A lot of patch/DR/DR-like papers.

C++11 core

 * Expression SFINAE; for some old compilers

C++11 library
Almost all C++11 library features are missing.
 * Library support for Unicode characters N1040 (WG14)
 * Library support for atomic operations
 * Library support for intializer list
 * TR1 (added in 2006-04)
 * C99 standard library
 * Type traits
 * Unordered containers
 * and
 * Regular expression library
 * ,, etc.
 * Random number generation
 * ,, etc.
 * Random number generation


 * Thread support library
 * etc.
 * etc.
 * and relative changes
 * and moving algorithms
 * Container's operation with move/forward
 * rvalue reference parameters
 * etc.
 * and moving algorithms
 * Container's operation with move/forward
 * rvalue reference parameters
 * etc.
 * etc.


 * Requirements for stateful allocators
 * and allocator-aware constructors
 * Date and time library (?)
 * etc.
 * etc.