std::vector<T_VolumeChangeMove_NeighboursByVolume> *neighbours;
template <class EnsembleType> inlinevoid VolumeChangeMove<EnsembleType>::
SetNeighboursByVolume(double Volume)
{
std::vector<T_VolumeChangeMove_NeighboursByVolume>::iterator *ub;
T_VolumeChangeMove_NeighboursByVolume key;
//
key.Volume=Volume;
ub=std::upper_bound(neighbours->begin(), neighbours->end(), key,
[](const T_VolumeChangeMove_NeighboursByVolume &a, const T_VolumeChangeMove_NeighboursByVolume &b)
{
return a.Volume<b.Volume;
});
if (ub-(neighbours->begin())==0)
PMC_THROW("Index not found");
ub--;
if (i>0)
FCellList->Neighbours=ub->neighbours; /// last one with own volume <= passed volume
}
returns to
error: no match for ‘operator-’ in ‘ub - ((VolumeChangeMove<EnsembleType>*)this)->VolumeChangeMove<EnsembleType>::neighbours->.std::vector<_T_VolumeChangeMove_NeighboursByVolume>::begin()’