The error is:
In function ‘int returnShortestWeightedBranch(std::vector<route, std::allocator<route> >*)’:
error: name lookup of ‘jj’ changed for ISO ‘for’ scoping
note: (if you use ‘-fpermissive’ G++ will accept your code)
The code is:
for (int i = 0; i< routeVector.size(); i++)
{
if (routeVector[i].exitPoint == exitPointDetailsVector[preserveL].exitPoint)
{
cout << "\n-----------parent: " << routeVector[i].exitPoint;
branch obj;
obj.connectedExitPoint = exitPointDetailsVector[preserveI].exitPoint;
routeVector[i].selectedBranchesVector.push_back (obj);
for (int jj = 0; jj < routeVector[i].selectedBranchesVector.size(); jj++);
{
cout << "\n-----------branch: " << routeVector[i].selectedBranchesVector[jj].connectedExitPoint;
}
}
}
What can be the problem here?
EDIT 1:
I changed the following:
for (int jj = 0; jj < routeVector[i].selectedBranchesVector.size(); jj++);
to:
int jj;
for (jj = 0; jj < routeVector[i].selectedBranchesVector.size(); jj++);
and now it is working!! I fail to understand the REASONS.
You have a semicolon at the end of the inner for statement. That ends the scope of
jjthere, so it is not visible inside the block.Edit
You have solved the scope problem, but still have your for loop executing just
Remove the semicolon after the parenthesis!