Я пишу функцию с двумя параметрами, 1-й — это целочисленный тип, отмеченный [[maybe_unused]], а 2-й — логический тип с аргументом по умолчанию false.
int preOrderTraversial([[maybe_unused]] int searchData, bool forDisplay = false)
Это объявление функции. Функция используется для обхода предварительного заказа в двоичном дереве поиска. Я хочу использовать одну и ту же функцию для отображения дерева и его обхода для поиска узла с определенными данными. Но только для 1-го обе проблемы сразу. Не для поиска И отображения вы видите.
Так что, очевидно, это отлично работает для части поиска, но когда я вызываю функцию для отображения, вызов функции выглядит следующим образом:
preOrderTraversal(true)
or
bool forDisplay = true;
preOrderTraversal(forDisplay);
Теперь компилятор (даже с параметром, ОБЪЯВЛЕННЫМ как BOOL) по-прежнему рассматривает этот параметр bool как int и использует его для параметра searchData (integer) функции, а не для параметра forDisplay (bool).
Есть ли способ заставить или сообщить компилятору, с каким из обоих параметров я пытаюсь работать?