Безопасно ли определять следующие два метода в 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]);
Они компилируются нормально, поэтому я решил, что их подпись должна отличаться, и все будет хорошо. Однако в настоящее время у меня проблемы с памятью, поэтому я хочу убедиться.
Да, это совершенно безопасно. Более того, ваше предложение
без риска их перепутать во время выполнения?
не имеет абсолютно никакого смысла, потому что разрешение перегрузки происходит во время компиляции.
Других решений пока нет …