visual studio 2015 出bug了。

飞翔的薄荷 2015-07-24 02:59:07
编译下面的代码:
class __declspec(dllexport) LogStream : public std::ostream
{
};

出现错误:
error C2280: “std::basic_ios<char,std::char_traits<char>>::basic_ios(const std::basic_ios<char,std::char_traits<char>> &)”: 尝试引用已删除的函数

同样的语句在vs2013上没有问题。
...全文
664 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liancan9698 2017-03-12
  • 打赏
  • 举报
回复
引用 5 楼 qq_32148549 的回复:
[quote=引用 3 楼 dustpg 的回复:] [quote=引用 2 楼 dustpg 的回复:] std::ostream不允许复制构造, 所以使用了 =delete删除了, 有啥好bug的.应该说更标准了.

class  __declspec(dllexport) LogStream : public std::ostream {
public:
    auto operator=(const LogStream&)->LogStream& = delete;
    LogStream(const LogStream&)  = delete;
};
这样就行了[/quote] 你好,我的问题是有关于这个错误代码的 我VS2015的问题是这样的: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2280 “Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true> &Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true>::operator =(const Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true> &)”: 尝试引用已删除的函数 TestWeldBlank d:\eigen3.07\eigen\src\core\solvetriangular.h 194 请问是库的问题吗?该如何解决 [/quote]下一个最新的Eigen版本就好了,直接搜Eigen去网上下一个
翎羽ly 2016-12-16
  • 打赏
  • 举报
回复
引用 3 楼 dustpg 的回复:
[quote=引用 2 楼 dustpg 的回复:] std::ostream不允许复制构造, 所以使用了 =delete删除了, 有啥好bug的.应该说更标准了.

class  __declspec(dllexport) LogStream : public std::ostream {
public:
    auto operator=(const LogStream&)->LogStream& = delete;
    LogStream(const LogStream&)  = delete;
};
这样就行了[/quote] 你好,我的问题是有关于这个错误代码的 我VS2015的问题是这样的: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2280 “Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true> &Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true>::operator =(const Eigen::Block<Eigen::Block<Eigen::Map<Derived,0,Eigen::Stride<0,0>>,-1,-1,false,true>,-1,-1,false,true> &)”: 尝试引用已删除的函数 TestWeldBlank d:\eigen3.07\eigen\src\core\solvetriangular.h 194 请问是库的问题吗?该如何解决
飞翔的薄荷 2015-07-24
  • 打赏
  • 举报
回复
引用 3 楼 dustpg 的回复:
[quote=引用 2 楼 dustpg 的回复:] std::ostream不允许复制构造, 所以使用了 =delete删除了, 有啥好bug的.应该说更标准了.

class  __declspec(dllexport) LogStream : public std::ostream {
public:
    auto operator=(const LogStream&)->LogStream& = delete;
    LogStream(const LogStream&)  = delete;
};
这样就行了[/quote] 虽然不明白你在说什么,但是觉得很厉害的样子。
dustpg 2015-07-24
  • 打赏
  • 举报
回复
引用 2 楼 dustpg 的回复:
std::ostream不允许复制构造, 所以使用了 =delete删除了, 有啥好bug的.应该说更标准了.

class  __declspec(dllexport) LogStream : public std::ostream {
public:
    auto operator=(const LogStream&)->LogStream& = delete;
    LogStream(const LogStream&)  = delete;
};
这样就行了
dustpg 2015-07-24
  • 打赏
  • 举报
回复
std::ostream不允许复制构造, 所以使用了 =delete删除了, 有啥好bug的.应该说更标准了.

class  __declspec(dllexport) LogStream : public std::ostream {
public:
    auto operator=(const LogStream&)->LogStream& = delete;
    LogStream(const LogStream&)  = delete;
};
超级能量泡泡 2015-07-24
  • 打赏
  • 举报
回复
等update

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧