-3

以前有人遇到过这个错误吗?我不知道究竟是什么导致了这种情况:

1>...include\sstream(640): error : "std::basic_ios<_Elem, _Traits>::basic_ios(const std::basic_ios<_Elem, _Traits>::_Myt &) [with _Elem=char, _Traits=std::char_traits<char>]"
1>...include\istream(922): error : "std::basic_ios<_Elem, _Traits>::basic_ios(const std::basic_ios<_Elem, _Traits>::_Myt &) [with _Elem=char, _Traits=std::char_traits<char>]"
1>...include\istream(18): error : "std::basic_ios<_Elem, _Traits>::basic_ios(const std::basic_ios<_Elem, _Traits>::_Myt &) [with _Elem=char, _Traits=std::char_traits<char>]"
1>...include\ostream(37): error : "std::basic_ios<_Elem, _Traits>::basic_ios(const std::basic_ios<_Elem, _Traits>::_Myt &) [with _Elem=char, _Traits=std::char_traits<char>]"

它没有在我的源代码中给出任何可能导致这种情况的迹象,而且我不知道这个错误指向什么问题(它只是说error)。我的意思是,我在我的源代码中使用流和字符串,所以任何人都可以暗示可能导致这种情况的原因吗?

MSVC 2010,使用 NVCC 编译

4

1 回答 1

1

在隔离了几个小时后,我设法解决了这个问题:如果有人遇到这个错误,这个错误是 NVCC 抱怨你隐式复制std::stringstream对象的方式,这是不允许的。

就我而言,我有一个异常类myError,其中包含一个std::stringstream内部深处的对象,并且throw myError(...)隐式调用导致发生非法副本。

完整的解决方案在这个单独的答案中进行了解释。

于 2013-05-13T06:22:43.200 回答