Feature Matrix

Each feature refers to a section of the 2003 C++ Standard (ISO/IEC 14882:2003(E)).

  • "DONE" means that the feature is implemented and supposedly bug-free.
  • "MOSTLY DONE" means that the feature is implemented but has some known bugs or minor limitations. The test tool may give you further information concerning these bugs and limitations.
  • "WIP" (Work In Progress) means that the feature is partially implemented.
  • "TODO" means that the implementation has not started yet.
  • "N/A" means that the associated feature and analysis type are unrelated.
Feature Syntax
analysis
Semantic
analysis
Linkage Comment
Lexical conventions [lex] DONE WIP N/A
Literals [lex.literal] DONE DONE N/A
Integer literals [lex.icon] DONE DONE N/A
Character literals [lex.ccon] DONE DONE N/A
Floating literals [lex.fcon] DONE DONE N/A
String literals [lex.string] DONE DONE N/A
Boolean literals [lex.bool] DONE DONE N/A
Basic concepts [basic] N/A WIP WIP
Name lookup [basic.lookup] N/A WIP N/A
Unqualified name lookup [basic.lookup.unqual] N/A WIP N/A OK, except for §3 and §9 to §13
Argument-dependent name lookup [basic.lookup.koenig] N/A TODO N/A
Qualified name lookup [basic.lookup.qual] N/A WIP N/A
Class members [class.qual] N/A WIP N/A
Namespace members [namespace.qual] N/A MOSTLY DONE N/A OK, except for §5 and template-ids
Elaborated type specifiers [basic.lookup.elab] N/A WIP N/A
Class member access [basic.lookup.classref] N/A TODO N/A
Using-directives and namespace aliases [basic.lookup.udir] N/A DONE N/A
Standard conversions [conv] N/A WIP N/A
Lvalue-to-rvalue conversion [conv.lval] N/A TODO N/A
Array-to-pointer conversion [conv.array] N/A TODO N/A
Function-to-pointer conversion [conv.func] N/A TODO N/A
Qualification conversions [conv.qual] N/A TODO N/A
Integral promotions [conv.prom] N/A WIP N/A
Floating point promotion [conv.fpprom] N/A WIP N/A
Integral conversions [conv.integral] N/A TODO N/A
Floating point conversions [conv.double] N/A WIP N/A
Floating-integral conversions [conv.fpint] N/A WIP N/A
Pointer conversions [conv.ptr] N/A TODO N/A
Pointer to member conversions [conv.mem] N/A TODO N/A
Boolean conversions [conv.bool] N/A WIP N/A
Expressions [expr] DONE WIP WIP
Primary expressions [expr.prim] DONE WIP N/A
Postfix expressions [expr.post] DONE WIP N/A
Unary expressions [expr.unary] DONE WIP N/A
Explicit type conversion [expr.cast] DONE TODO N/A
Pointer-to-member operators [expr.mptr.oper] DONE TODO N/A
Multiplicative operators [expr.mul] DONE WIP N/A
Additive operators [expr.add] DONE WIP N/A
Shift operators [expr.shift] DONE WIP N/A
Relational operators [expr.rel] DONE WIP N/A
Equality operators [expr.eq] DONE WIP N/A
Bitwise AND operator [expr.bit.and] DONE WIP N/A
Bitwise exclusive OR operator [expr.xor] DONE WIP N/A
Bitwise inclusive OR operator [expr.or] DONE WIP N/A
Logical AND operator [expr.log.and] DONE WIP N/A
Logical OR operator [expr.log.or] DONE WIP N/A
Conditional operator [expr.cond] DONE WIP N/A
Assignment operators [expr.ass] DONE WIP N/A
Comma operator [expr.comma] DONE TODO N/A
Constant expressions [expr.const] DONE TODO N/A
Statements [stmt.stmt] DONE TODO TODO
Declarations [dcl.dcl] DONE WIP WIP
Specifiers [dcl.spec] DONE WIP WIP
Storage class specifiers [dcl.stc] DONE WIP TODO
Function specifiers [dcl.fct.spec] DONE DONE DONE
The typedef specifier [dcl.typedef] DONE WIP WIP OK, except for §2 to §5
The friend specifier [dcl.friend] DONE TODO TODO Ignored
Type specifiers [dcl.type] DONE WIP WIP
The cv-qualifiers [dcl.type.cv] DONE DONE DONE
Simple type specifiers [dcl.type.simple] DONE DONE DONE
Elaborated type specifiers [dcl.type.elab] DONE WIP WIP
Enumeration declarations [dcl.enum] DONE MOSTLY DONE DONE OK, except for the type of the constants (also known as the underlying type of the enumeration), which is currently always set to int.
Namespaces [basic.namespace] DONE WIP WIP
Namespace definition [namespace.def] DONE DONE DONE
Namespace alias [namespace.alias] DONE MOSTLY DONE N/A OK, except for §3 and §4
The using declaration [namespace.udecl] DONE WIP N/A
Using directive [namespace.udir] DONE MOSTLY DONE N/A OK, except §4, which requires the support of linkage specifications
The asm declaration [dcl.asm] DONE TODO TODO Ignored
Linkage specifications [dcl.link] DONE TODO TODO
Declarators [dcl.decl] DONE WIP WIP
Type names [dcl.name] DONE DONE DONE
Ambiguity resolution [dcl.ambig.res] DONE TODO TODO
Meaning of declarators [dcl.meaning] DONE WIP WIP
Pointers [dcl.ptr] DONE DONE DONE
References [dcl.ref] DONE DONE DONE
Pointers to members [dcl.mptr] DONE DONE DONE
Arrays [dcl.array] DONE DONE DONE
Functions [dcl.fct] DONE WIP WIP
Default arguments [dcl.fct.default] DONE TODO TODO Ignored
Function definitions [dcl.fct.def] DONE WIP TODO The function bodies are ignored.
Initializers [dcl.init] DONE TODO TODO Ignored
Classes [class] DONE WIP WIP
Class names [class.name] DONE DONE DONE
Class members [class.mem] DONE WIP WIP
Member functions [class.mfct] DONE WIP WIP
Nonstatic member functions [class.mfct.nonstatic] DONE WIP WIP
The this pointer [class.this] DONE TODO TODO
Static members [class.static] DONE WIP WIP
Static member functions [class.static.mfct] DONE WIP WIP
Static data members [class.static.data] DONE WIP WIP
Unions [class.union] DONE MOSTLY DONE DONE There's currently no limitation on the nature of the members (notably static members).
Bit-fields [class.bit] DONE MOSTLY DONE DONE OK, except for their sizes (requires the support of expressions)
Nested class declarations [class.nest] DONE DONE DONE
Local class declarations [class.local] DONE TODO TODO
Nested type names [class.nested.type] DONE DONE DONE
Derived classes [class.derived] DONE WIP WIP
Multiple base classes [class.mi] DONE DONE DONE
Member name lookup [class.member.lookup] DONE WIP N/A
Virtual functions [class.virtual] DONE WIP WIP
Abstract classes [class.abstract] DONE WIP WIP
Member access control [class.access] DONE WIP N/A
Special member functions [special] DONE WIP WIP
Constructors [class.ctor] DONE WIP WIP
Temporary objects [class.temporary] DONE TODO TODO
Conversions [class.conv] DONE WIP WIP
Destructors [class.dtor] DONE WIP WIP
Free store [class.free] DONE TODO TODO
Initialization [class.init] DONE TODO TODO
Construction and destruction [class.cdtor] DONE TODO TODO
Copying class objects [class.copy] DONE TODO TODO
Overloading [over] DONE TODO TODO
Templates [temp] DONE TODO TODO
Exception handling [except] DONE TODO TODO