Безопасно ли определять перегруженные функции с массивами ввода в C ++?

Безопасно ли определять следующие два метода в C ++ и использовать их без риска их перепутывания во время выполнения?

void map(float (&a)[10], const double (&b)[6]);
void map(float (&a)[10], const double (&b)[3]);

или же

void map(double (&a)[6], const float (&b)[10]);
void map(double (&a)[3], const float (&b)[10]);

Они компилируются нормально, поэтому я решил, что их подпись должна отличаться, и все будет хорошо. Однако в настоящее время у меня проблемы с памятью, поэтому я хочу убедиться.

1

Решение

Да, это совершенно безопасно. Более того, ваше предложение

без риска их перепутать во время выполнения?

не имеет абсолютно никакого смысла, потому что разрешение перегрузки происходит во время компиляции.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]