- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了简化事情,我把这个类StringStream
写在一个Notifications.h
文件中:
namespace A {
namespace B {
namespace C {
extern std::locale g_classicLocale;
class StringStream : public virtual std::ostringstream
{
public:
StringStream() { imbue(g_classicLocale); }
virtual ~StringStream() {};
};
} // namespace C
} // namespace B
} // namespace A
现在,我尝试在我的 DBNotification.cpp
文件中使用 StringStream
:
#include "Notifications.h"
namespace A{
namespace B{
namespace C{
DBNotification::DBNotification(){
}
DBNotification::~DBNotification(){
}
StringStream DBNotification::getValues(){
// do some work and return me a StringStream Object
}
} // C
} // B
} // A
当我构建源代码时,我得到:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/ios_base.h: In copy constructor 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/ios_base.h:779: error: 'std::ios_base::ios_base(const std::ios_base&)' is private
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:55: error: within this context
../Notifications.h: In copy constructor 'A::B::C::StringStream::StringStream(const A::B::C::StringStream&)':
../Notifications.h:49: note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/streambuf: In copy constructor 'std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::basic_stringbuf(const std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >&)':
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/streambuf:781: error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:71: error: within this context
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd: In copy constructor 'std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(const std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&)':
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:79: note: synthesized method 'std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::basic_stringbuf(const std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >&)' first required here
谁能告诉我发生了什么事?
最佳答案
一般流是不能复制的。您的函数 DBNotification::getValues()
返回一个流对象。
请参阅this answer
关于c++ - 扩展 ostringstream 错误 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865421/
我需要将数据从一些 std::ostringstream 写入另一个 std::ostringstream。当然,我可以使用str()函数 std::ostringstream in; std::os
任何人都可以建议一种方法来拥有一个null std::ostringstream这避免了对传递给它的参数做任何工作 ::not_eof(c); } }; // ... nullbuf
不使用科学计数法将double转换为string,建议的方法是 std::ostringstream strStream; strStream << std::fixed; strStream <<
ostringstream ss; ss #include #include #include #include class stackbuf : public std::strea
在我的 C++ 项目中,我试图这样做: std::ostringstream stream(std::ostringstream::out); 但是我得到一个错误: error C2027: use
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicates: Why copying stringstream is not allowed? how copy fro
我有一个奇怪的问题,即使我向它插入输出,ostringstream 还是空的。这是我的代码: //logger.h #include #include #include using std::s
所以我在夏天写了一个 ArrayList 的实现,我有一个 toString 方法,在该方法中我使用 ostringstream 对象来添加字符串,然后输出它们。 方法如下: template std
我的代码有一些问题,因为它输出了两个不同的结果。 代码: void output(int x){ for( int i = 0; i s(result.c_str(), result.c_str()
我有以下代码: int n=2; ostringstream convert; // stream used for the conversion convert (std::ostringstr
我的程序在创建 ostringstream 类的对象时总是崩溃。我无法理解导致它崩溃的原因? 程序: #include #include #include DDF foo::send(const
我试图想出一种聪明的方法来将各种东西连接到一个函数的单个字符串参数中,而不必显式使用 ostringstream。我想到了: #define OSS(...) \ dynamic_cast(std
最近我在使用 C++ 代码时遇到了一个非常奇怪的问题。我在极简主义的例子中重现了这个案例。我们有一个 Egg 类: class Egg { private: const char* name;
在 C++ 中(在带有 gcc 的 Linux 上)我想将字节数组 ( vector ) 放入 ostringstream 中或 string . 我知道我可以使用 sprintf但它似乎不是使用 c
我一直在处理其他人的代码,并注意到在 ostringsteam 的所有使用中,他们习惯于显式附加 std::ends。 这是我从来没有做过的事情,也从来没有遇到过问题。 它似乎没有,但是 std::e
我使用 std::ostringstream用于格式化字符串,它继承了它的 string {ostringstream stream; stream string {
在 MSVC 2005 上,我有以下代码。 std::ostringstream stream("initial string "); stream << 5; std::cout << stream
我正在尝试 this answer 中提供的优雅解决方案但无论我尝试什么,我都无法通过此行的错误 Implicit instantiation of undefined template: std::
我想清除并重用一个 ostringstream(和底层缓冲区),这样我的应用就不必进行那么多分配。如何将对象重置为其初始状态? 最佳答案 我过去使用过 clear 和 str 的序列: // clea
在以下情况下获得不同的输出 std::string temp, temp1 = "foo", temp2 = "bar"; std::vector test; std::ostring
我是一名优秀的程序员,十分优秀!