What is Semel C++?

The semels form a semantic grammar.
For which language?
Let's call it "Semel C++".

What is the relationship between Standard C++ and Semel C++?

Are they identical?

Almost.

Any program which is legal in Standard C++ can be constructed in Semel C++, except for the following:

In Standard C++, a #define symbol can be used anywhere a token can appear.
In Semel C++, a #define symbol can be used anywhere an expression, a statement, or a type can appear.

Here are some other differences:

In Standard C++, the outermost scope is a scope with no name.
In Semel C++, the outermost scope is a namespace with the name "The Outermost Scope".

In Standard C++, a function is either a class member or a non-member.
In Semel C++, a function is either a class member or a namespace member.

In Standard C++, a literal's type is determined by its form, value, and suffix.
In Semel C++, a literal's type determines its form, value, and suffix.

In Standard C++, an enum's underlying type is optional, and is determined by the types of the enum's literal values.
In Semel C++, an enum's underlying type is mandatory, and determines the types of the enum's literal values.

In Standard C++, the overload of a function is determined by the number and types of the actual parameters.
In Semel C++, the overload of a function determines the number and types of the actual parameters.

The last 3 comparisons illustrate one of the most important differences between Standard C++ and Semel C++:

In Standard C++, first you write text, then the compiler figures out what you want.
In Semel C++, first you decide what you want, then The Semel Editor (TM) codifies it to end up with text.

Semel C++ gives programmers the chance to think in terms of semantics (i.e. the semels), then codify the semels into C++, without the need to think about syntax.

Non-standard extensions

Semel C++ contains the following semels which might make your life easier: