R
Ray D.
Hey all,
I'm trying to pass a list into a function to edit it but when I
compile using g++ I continue to get the following error:
maintainNeighbors.cpp:104: error: invalid initialization of non-const
reference of type 'std::list<HostID, std::allocator<HostID> >&' from a
temporary of type 'std::list<HostID, std::allocator<HostID> >*'
helpers.cpp:99: error: in passing argument 1 of `void
The function is shown below:
void CheckIfNeighborsHaveSentHello(std::list<struct HostID>
&Neighbors)
{
std::list<struct HostID>::iterator it;
std::list<struct HostID>::iterator LastIt;
struct timeb TimeBuffer;
ftime( &TimeBuffer );
it=Neighbors.begin();
while (it!=Neighbors.end())
{
int Del=0;
if (TimeBuffer.time - it->LastHelloRec > 40)
Del=1;
LastIt = it;
++it;
if (Del==1)
Neighbors.erase(LastIt);
}
}
And the objects contained in the list are shown below, along with how
it is defined and the function call itself:
struct HostID {
char IP[16];
int Port;
int LastHelloRec;
int LastHelloSent;
};
std::list<struct HostID> ActiveNeighbors;
CheckIfNeighborsHaveSentHello(&ActiveNeighbors);
My guess is that it has something to do with the iterator, but I've
been stuck on this for a while now and I figure a more experienced
person could guide me in the right direction. Thanks in advance for
any help!
I'm trying to pass a list into a function to edit it but when I
compile using g++ I continue to get the following error:
maintainNeighbors.cpp:104: error: invalid initialization of non-const
reference of type 'std::list<HostID, std::allocator<HostID> >&' from a
temporary of type 'std::list<HostID, std::allocator<HostID> >*'
helpers.cpp:99: error: in passing argument 1 of `void
CheckIfNeighborsHaveSentHello(std::list said:
The function is shown below:
void CheckIfNeighborsHaveSentHello(std::list<struct HostID>
&Neighbors)
{
std::list<struct HostID>::iterator it;
std::list<struct HostID>::iterator LastIt;
struct timeb TimeBuffer;
ftime( &TimeBuffer );
it=Neighbors.begin();
while (it!=Neighbors.end())
{
int Del=0;
if (TimeBuffer.time - it->LastHelloRec > 40)
Del=1;
LastIt = it;
++it;
if (Del==1)
Neighbors.erase(LastIt);
}
}
And the objects contained in the list are shown below, along with how
it is defined and the function call itself:
struct HostID {
char IP[16];
int Port;
int LastHelloRec;
int LastHelloSent;
};
std::list<struct HostID> ActiveNeighbors;
CheckIfNeighborsHaveSentHello(&ActiveNeighbors);
My guess is that it has something to do with the iterator, but I've
been stuck on this for a while now and I figure a more experienced
person could guide me in the right direction. Thanks in advance for
any help!