A temporary variable cannot be referenced as a non-const parameter, not because it is a constant, but because of a semantic limitation of the C ++ compiler. If a parameter is passed in as a non-const reference, the C ++ compiler has reason to thinkProgramThe member modifies the value in the function, and the modified reference will play a role after the function returns. However, if you use a temporary variable as a non-const reference parameter, the programmer cannot operate the Temporary Variable due to the special nature of the temporary variable, and the temporary variable may be released at any time, generally speaking, modifying a temporary variable is meaningless. Therefore, the C ++ compiler adds the semantic restriction that the temporary variable cannot be referenced as a non-const, and is intended to limit the potential errors of this unconventional usage.