Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;14 decltype(自动)使CLion突出显示为错误有效语句 我正在用Scott Meyer的有效的现代C++做练习(项目3)。p>_C++_C++14_Clion - Fatal编程技术网

C++;14 decltype(自动)使CLion突出显示为错误有效语句 我正在用Scott Meyer的有效的现代C++做练习(项目3)。p>

C++;14 decltype(自动)使CLion突出显示为错误有效语句 我正在用Scott Meyer的有效的现代C++做练习(项目3)。p>,c++,c++14,clion,C++,C++14,Clion,使用以下代码: template<class T> class Container { private: T _arr[4]; public: T &operator[](std::size_t index) { return _arr[index]; } explicit Container(T def) { for(std::size_t i = 0; i < 4; ++i)

使用以下代码:

template<class T>
class Container
{
  private:
    T _arr[4];

  public:
    T &operator[](std::size_t index)
    {
        return _arr[index];
    }

    explicit Container(T def)
    {
        for(std::size_t i = 0; i < 4; ++i)
        {
            _arr[i] = def;
        }
    }
};

template<class C>
decltype(auto) print_and_access4(C&& container, std::size_t index)
{
    std::cout << "Index = " << index << std::endl;
    return container[index];
}
auto& y = print_and_access4(Container<int>(5), 0);
CLion版本:

CLion 2017.3.2

克利永C++解析器目前还不是完全标准的编译程序。因此,有时它在有效代码上显示错误,有时在无效代码上不显示错误。但它会随着版本的不同而变得更好,所以可能很快就会被修复

您可以在他们的追踪器上报告错误:


如果您想要一些符合标准的IDE,您可以尝试基于Clang的IDE,如QtCreator或KDevelop。

有许多构造CLion将其标记为错误,即使它们不是上次我使用它时的构造…@smoothware:您开始使用不同的IDE了吗?我已经习惯了Jetbrains IDE,所以我选择了它。顺便说一句,y是可用的,作为悬挂引用…@Jarod42:正确,这不是好代码。但是,表达式<代码> PrrtPyand Access 4(容器(5),0)< /COD>实际上是一个LValk。我建议继续留在克利永上:IDE正确地解析C++,但是它们缺少许多重构函数和代码生成器等CHILN特性。
CLion 2017.3.2