For the programming language C++, the standard allows compilers to apply any optimizing transformation to a program during compiling, provided that such optimization makes no change in the "observable behavior" of the program, as specified in the standard. This mostly means that any actions the program performs on its environment occur in the specified order. This rule is commonly referred to as the as-if rule.