Hi,
I am using ostrstream object.I am using the str() function to get the char
buffer. The function is returning the pointer of char buffer , but it is
adding some garbage at the end. This behaviour is not predictable .
Sometimes it is returning the char buffer correctly , sometimes it is
returning the char buffer and some garbage attached to it at the end.I am
initialising the ostrstream object by fill('\0') function.
Can U please suggest some solution.
I am writing the code below for reference.
tBool clClusterCheckResults::logUplinkZeroCellError(cons t clCluster&
corfCluster,
RBINTValOrderedVector <int> a_vZCsNotRetained)
{
bool a_bReturnValue(false);
ostrstream myBuffer;
myBuffer.fill('\0');
a_bReturnValue = true;
myBuffer << corfCluster // << opearor is overloaded for clCluster class
<< " WARNING: The Cluster has no Uplink ZeroCells. "
<< " The following Zero Cells with Cobounding OC, with Uplinks are not
retained "
<< " in the higher level. (ZC Index) - ";
for(int iZeroCellIterator = 0 ;
iZeroCellIterator < a_vZCsNotRetained.length() ;
iZeroCellIterator++)
{
myBuffer << a_vZCsNotRetained[iZeroCellIterator] << " ";
}
myBuffer << "END\n";
cout<< "``````````PRINTING mybuffer logUplinkZeroCellError`````````\n";
cout<< myBuffer.str(); //Here the output is coming errorous
cout<< "``````````OVER``````````````````````````````````` ``````````\n";
m_oReport.logErrorMessage(myBuffer);
m_oResultsCounter.incrementErrorCount(
corfCluster.getLevel(),
UplinkZeroCellCheck,
"David Hilsee" <da*************@yahoo.com> wrote in message
news:pv********************@comcast.com...
"AlesD" <al****@seznam.cz> wrote in message
news:cf**********@mrazik2.dkm.cz... Hello,
maybe my question is stupid, but...
I have function/algorithm which operates on sequence holding objects of
type T. The problem is that I do not know (at the declaration time)
which sequence (vector<T> or list<T>) will be used.
class element_t {
void some_method(void);
}
template <class InputIterator>
void visitor(InputIterator first, InputIterator last)
{
// some code
first->some_method(); // Error here
}
How can I specify that InputIterator is convertible to T*?
What's the error? The following works just fine:
#include <list>
struct element_t {
void some_method(){}
};
template <class It>
void visitor(It beg, It end) {
beg->some_method();
}
int main() {
std::list<element_t> elems(1);
visitor( elems.begin(), elems.end() );
}
If the container holds pointers instead of instances of element_t, then
you should dereference the iterator before using operator->
((*beg)->some_method() instead of beg->some_method()).
--
David Hilsee