I think "this" is not the variable waht i want to give with ? its the Pointer to Structure or not ?
In the end the function to call is:
bool b = this->RemoveStructure(item);
std::memfun transforms it to a regular (non-member) function call:
bool b = RemoveStructure(this, item);
And you need to fix the first argument with std::bind1st so that the final call is:
bool b = RemoveStructure(item);
... and this one is compatible with what std::list::remove_if expects.
With boost:
StructureList.remove_if(boost::bind(&Map::RemoveStructure, this, _1));
By the way, are you actually destroying the structure in your function? It should only be a predicate, ie. return a boolean indicating whether the item should be removed or not. It must not have any side-effect.