Это размывает разделение интересов .
Предположим, что у вас есть синглтон, вы можете вызвать этот экземпляр из любой точки вашего класса. Ваш класс уже не так чист, как должно быть. Ваш класс больше не будет воздействовать на своих членов и членов, которые он получает явно. Это создаст путаницу, потому что пользователи класса не знают, какая информация необходима классу. Вся идея инкапсуляции состоит в том, чтобы скрыть метод метода от пользователей, но если внутри метода используется синглтон, то для правильного использования метода необходимо знать его состояние. , Это анти- ООП .
Я только что преобразовал свой проект (~ 15000 строк кода C ++, собирает общие библиотеки, модульные тесты и исполняемые файлы) в CMake из scons пару недель назад, и это заняло всего день или осталось сделать два.
Мне показалось полезным то, что проект Boost теперь имеет экспериментальную поддержку CMake, а не bjam. Просмотр их кода (в частности, макросов, определенных в tools / build / CMake
) научил меня многому о синтаксисе и возможностях CMake.
Также полезно:
Надеюсь, это поможет.
Вам действительно стоит подписаться на список рассылки CMake ( здесь ) и посмотреть на их веб-сайт в разделе «помощь», это здорово!
Если вы не найдете ответа на свой вопрос с помощью некоторого исследования в Google или просмотра архива списка рассылки ( здесь ), просто отправьте его по электронной почте в список рассылки, и хорошие люди вам помогут!
Это то, что я сделал около 2 месяцев назад, и теперь у меня есть хороший проект, скомпилированный с помощью cmake! :)