Я пишу библиотеку на C ++ и имею некоторые функции, которые работают с модулями. Пример будет выглядеть так:
void connect(Module *a, Module *b);
Проблема в том, что иногда было бы удобно, если бы функция принимала также ссылки (некоторые модули могут быть размещены в стеке, а некоторые - в куче, и все & s и * скоро станут скучными и грязными). 1004 *
Теперь у меня есть встроенная функция, которая принимает ссылки, превращает их в указатели и вызывает исходную функцию.
inline void connect(Module &a, Module &b){
connect(&a, &b);
}
Мне не очень нравится это решение, потому что для нескольких дополнительных функций он делает много кода для записи, чтения, компиляции, ...
Еще одна вещь, о которой мы думали, это добавление Module::operator Module *()
, которое должно вернуть this
.
Что вы думаете об этом? Неужели я не пропустил ни одного эпического провала?
Спасибо.