У меня есть ТУ, глобальные функции которого не будут использоваться никакими другими ТУ. Я читал, что объявление их как static
дает им внутреннюю связь, и это хорошо с точки зрения оптимизации. Но я хочу знать, каковы правильные ситуации, в которых я должен их использовать. Должен ли я всегда дать глобальные функции/переменные внутренней связью, когда я знаю, что они не будут использоваться где-либо еще в программе?Должен ли я всегда отдавать свои глобальные функции внутренней связью?
1
A
ответ
7
Вместо этого разместите их в unnamed namespace.
Это idiomatic solution в C++ для функций, которые будут использоваться только в текущем TU.
Смежные вопросы
- 1. Встроенные функции с внутренней связью?
- 2. Где я должен выполнять свои функции?
- 3. Где я должен помещать свои глобальные константы в библиотеку .NET?
- 4. Должен ли яменовать глобальные функции в PHP?
- 5. WebStorm Безразлично `признает свои глобальные функции, когда я использую«требую»
- 6. Должен ли я всегда удалятьEventListener?
- 7. Должен ли я документировать свои личные методы?
- 8. Должен ли я подписывать свои DLL-файлы?
- 9. Должен ли я тестировать свои контроллеры (MVC)?
- 10. Должен ли я проставлять свои угловые директивы?
- 11. Почему я должен всегда делать свои Исключения [сериализуемыми]? (.NET)
- 12. Являются ли объявления внутренней функции безопасными?
- 13. Должен ли я всегда возвращать значимое значение из функции: PHP
- 14. Должен ли я всегда давать возвращаемое значение моей функции?
- 15. Должен ли я всегда вызывать вектор clear() в конце функции?
- 16. Должен ли я всегда проверять типы параметров каждой функции?
- 17. Должен ли я всегда связывать функции с объектами $ scope?
- 18. Должен ли я всегда передавать все аргументы функции PHP?
- 19. Должен ли я компилировать свои Android-приложения против последнего SDK?
- 20. Должен ли я использовать свои собственные typedefs в вызовах библиотеки?
- 21. Должен ли я объединить свои контроллеры создания и обновления?
- 22. Когда я должен сбросить свои каналы MQ?
- 23. Должен ли я всегда использовать GL_CULL_FACE?
- 24. Должен ли я всегда заполнять объект TaskCompletionSource?
- 25. Должен ли я всегда открывать сеанс?
- 26. Должен ли я всегда звонить Page.IsValid?
- 27. Должен ли я всегда использовать .off ('load') ;?
- 28. Должен ли я всегда использовать дженерики?
- 29. Должен ли я всегда закрывать stdout явно?
- 30. Должен ли я всегда использовать HTML-Doctypes?
«и это хорошо с точки зрения оптимизации». –
Возможно, что ваш выбор того, что делать здесь, повлияет на время компиляции, но он будет прозрачным во время выполнения. – iwolf
@ Cheersandhth.-Alf Это не помогает оптимизировать компилятор? –