Например, если бы я был на структуру FooSpec
:Неправильно ли перегружать функцию, чтобы взять как указатель, так и ссылку?
struct FooSpec { /* lots of data */ };
Это плохая практика, чтобы обеспечить как из следующих, как перегруженные функции? Или я должен просто выбрать один и придерживаться его?
Foo *createFoo(const FooSpec *spec) { /* ... */ }
Foo *createFoo(const FooSpec &spec) { return createFoo(&spec); }
Возможно, возникли проблемы, вызванные неожиданными проблемами?
У вас не должно быть никаких проблем * tecnhical *, но я определенно был бы озадачен, увидев API, подобный этому. –
Если одна функция просто вызывает другую, какая польза от несовместимого интерфейса? –
@MatteoItalia: Ну, я имею в виду такие вещи, как побуждение человека к ошибке. – Matt