Как изменить подпись distanceTo(..)
, чтобы сделать компилятором предупреждение или ошибку при вызове с std::size_t
в качестве параметра?Как предотвратить size_t от интерпретации как ссылки?
class Point {
private:
float value;
public:
Point(float value) : value(value){};
float distanceTo(const Point &point) { return point.value - value; }
};
int main() {
std::size_t index = 1;
Point start(1);
Point end(4);
float dist = start.distanceTo(index); // compiles, but should not!
std::cout << dist;
return 0;
}
Вопрос: «Как предотвратить неявное преобразование типа?» (Вы должны отрегулировать заголовок) –
Да, «Точка» не указатель. – LogicStuff
Пользователи LogicStuff и время публикации cpluplusrat различаются только в секунду. После этого LogicStuff добавил объяснения и ссылки. – VisorZ