C++ 为什么枚举值不能用作右值? 注:

C++ 为什么枚举值不能用作右值? 注:,c++,c++11,enums,move,rvalue,C++,C++11,Enums,Move,Rvalue,问题已经解决了。这是一个Clion 1.2.4的bug,但不是编译器的bug。即使Clion的静态分析工具仍然给我一个错误,我也可以编译这个应用程序 我正在使用Clion 1.2.4基于C++11构建一个C++项目,当我尝试使用make_shared函数创建一个shared_ptr对象时,如下所示: auto item = std::make_shared<Type>(EnumType::Value); 构造函数的参数是枚举类型 但是Clion给我一个错误: 所以我想知道枚举值是

问题已经解决了。这是一个
Clion 1.2.4的bug,但不是编译器的bug。即使Clion的静态分析工具仍然给我一个错误,我也可以编译这个应用程序


我正在使用
Clion 1.2.4
基于
C++11
构建一个
C++
项目,当我尝试使用
make_shared
函数创建一个
shared_ptr
对象时,如下所示:

auto item = std::make_shared<Type>(EnumType::Value);
构造函数的参数是枚举类型

但是Clion给我一个错误:

所以我想知道枚举值是否可以用作调用函数的右值?为什么


如果我这样使用:

Type(EnumType t = defaultValue) { }
auto item = std::make_shared<Type>(std::move(EnumType::Value));

你能再加一个吗。我可以在这里编译它,这可能是编译器中的错误,因为GCC同时具有
enum
enum类
;这是CLion中的一个错误。您正在使用哪个编译器?CLion是IDEClion 1.2.4不是编译器,而是支持GCC和clang的IDE。因此,似乎使用了旧版本的编译器。
auto item = std::make_shared<Type>(std::move(EnumType::Value));
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.0.72)
Target: x86_64-apple-darwin14.5.0
Thread model: posix