Скрыть методы класса от Intellisense и / или определенных «клиентов»? - PullRequest
1 голос
/ 22 июня 2009

Я знаю, как это сделать для C ++ / CLI и .NET в целом, но C ++ не имеет атрибутов. Сценарий таков:

Мы хотим предоставить некоторые методы в двоичном коде, но не хотим, чтобы все наши клиенты использовали их. Если клиенту это нужно, мы можем либо сообщить ему, что такое подпись, либо отправить ему другой недвоичный файл.

1 Ответ

2 голосов
/ 22 июня 2009

Я не думаю, что вы можете это контролировать. Так как вам нужно опубликовать файлы заголовков для библиотеки, то вы предоставите весь интерфейс, даже если не через intellisense.

Однако вы должны думать, что есть другие инструменты, которые делают то же самое, используемое многими разработчиками (например, Visual Assist).

Если вам необходимо скрыть некоторые подробности реализации, лучшим решением будет применение идиомы pimpl и предоставление в заголовочных файлах классов интерфейса с помощью «открытых», используемых методов.

Классы реализации будут включены только из файлов cpp, содержащих скомпилированные, и только объявлены вперед в общедоступных заголовочных файлах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...