Я портирую немного неуклюжий Windows-код C ++ на Linux, который использует функции, называемые «open» и «close» внутри каждого класса ... Очень плохой стиль, или? К счастью, это не было проблемой в Windows, поскольку их системные вызовы называются по-разному.
Когда я пытаюсь вызвать системные вызовы open () или close (), я получаю некоторую ошибку компилятора о том, что «нет подходящей функции для вызова класса: open ()». Я не могу переименовать все наши функции с именами «class :: open» и «class :: close» во всем коде, и мне приходится использовать open () и close (), так как я работаю с последовательными портами.
Итак, мой вопрос: как я могу сказать компилятору, какое открытие я имею в виду? Как я могу избежать или скрыть пространство имен класса в C ++?