问题已经解决了。这是Clion 1.2.4
但不是编译器的错误。即使Clion的静态分析工具仍然给我一个错误,我也可以编译应用程序。
当我尝试使用Clion 1.2.4
函数创建一个C++
对象时,我正在使用C++11
构建基于make_shared
的{{1}}项目:
shared_ptr
其中auto item = std::make_shared<Type>(EnumType::Value);
是一个带有如下构造函数的结构:
Type
,构造函数的参数是枚举类型。
但Clion给我一个错误:
Type(EnumType t = defaultValue) { }
所以我想知道枚举值是否可以用作调用函数的右值?为什么呢。
如果我这样使用:
parameter type mismatch: Expression must be rvalue.
Clion不会显示错误。 auto item = std::make_shared<Type>(std::move(EnumType::Value));
函数的作用是什么?使用常量值作为move
函数的实际参数是否正确。
感谢@ NathanOliver提醒。一个简单的例子可以是here(由NathanOliver创建)。
以下是命令move
的结果:
gcc -v