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