В мире, предшествующем модулю C ++, ваши возможности ограничены.Распространенной идиомой для того, чтобы выставлять определения вещей, которые вы бы предпочли не видеть пользователям, является создание так называемого «пространства имен».Это пространство имен, обычно называемое detail
или что-то в этом роде, которое содержит все элементы, которые не являются частью вашего интерфейса.По соглашению пользователи не должны получать доступ к содержимому в этом пространстве имен.
Вы можете сделать a
частным static constexpr
членом некоторого класса.Это будет более эффективно предотвращать доступ пользователей к нему.Но у него есть и обратная сторона: вы должны friend
использовать каждую функцию, которая его использует.