VIsual Studio 2013 C++ 引用限定符问题

Posted

技术标签:

【中文标题】VIsual Studio 2013 C++ 引用限定符问题【英文标题】:VIsual Studio 2013 C++ problems with reference qualifiers 【发布时间】:2015-03-10 12:32:19 【问题描述】:

我在互联网上找到了很多关于引用限定符的信息,而且我发现引用限定符是 C++ 11 的新内容,还没有在所有编译器中实现。但我找不到 Visual Studio 2013 和参考限定符的任何信息。有人可以帮我解决这个问题吗?它是 Visual Studio 2013 中的引用限定符,我应该执行任何其他步骤吗?

我还有以下代码:

    virtual AddOns* clone() const &
    
        return new AddOns(*this);
    

    virtual AddOns* clone() &&
    
        return new AddOns(std::move(*this));
    

Visual Studio 2013 在以下代码中返回此错误: 错误 1 ​​错误 C2143:语法错误:缺少 ';'在'&'之前

我找不到任何信息来纠正它。有人能帮帮我吗?

提前感谢您的回答。

【问题讨论】:

你有 11 月的 CTP 吗? c-sharpcorner.com/news/3271/… 我已经安装了Visual C++ Compiler November 2013 CTP,现在可以编译了。但是,我猜是因为 Visual Studio 不直接支持引用限定符,所以我仍然会收到 IntelliSense 错误。 @Mario,CTP 是编译器更新,没有匹配的 Intellisense 更新。 VS2015 预览版应该可以解决这个问题,但它只是一个预览版... @chris 谢谢你提供的信息 :),不过我还是更喜欢使用 VS 2013,我会等到 VS 2015 的完整版再转移我的项目。 【参考方案1】:

Visual Studio C++11 support table 明确指出引用限定符尚未在正式版本中实现。这包括 Visual Studio 2013。

我无法在各种 Visual Studio“14”和 2015 预览版的发行说明中确认这些预览版(以及即将推出的 Visual Studio 2015 版)中提供了引用限定符,但这并不奇怪我,鉴于the November 2013 CTP ostensibly supports them。

此外,a blog post from the Visual Studio team 还建议 Visual Studio 2015 将支持此功能。

【讨论】:

Here's a chart for the 2015 preview. @chris:谢谢。我不明白为什么微软不能正确获得发行说明。谁想浏览博客以获得准确的发布细节? Grr. Here you go。诚然,它隐藏在大量其他 VS 组件中。 @chris:我没看到。你指的是哪一段? 没错,这并不完全是发行说明。另一页的底部列出了 CTP5 的一对。这只是一个比表格更全面的列表,并且比博客上的表格更接近发行说明。最好我能在一页上找到所有信息,但如果你问我,这还不错。我认为缺少参考说明符是因为它们自 11 月 CTP 以来没有改变,并且对于 2015 年来说并不是全新的。

以上是关于VIsual Studio 2013 C++ 引用限定符问题的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013 和 2015 中的 C++ 编译器错误 C2280“试图引用已删除的函数”

无法在 Visual Studio 中将 Visual C++ 运行时包引用添加到 Windows Phone 项目

在 Visual Studio 中添加对 C++ 项目的引用有啥后果?

检测是不是安装了 Visual C++ Redistributable for Visual Studio 2013

在 Visual Studio 中添加对 C++ 项目的新 DLL 引用

面向 XP 的 Visual Studio 2013 的 Visual C++ 编译器标志