Я нахожу, что необходимо быть очень осторожными [приблизительно 112], почему Вы решаете использовать одиночный элемент. Как другие упомянули, это - по существу та же проблема как использующий глобальные переменные. Необходимо быть очень осторожными и рассмотреть то, что Вы могли делать при помощи одного.
очень редко использовать их и обычно существует лучший способ сделать вещи. Я столкнулся с ситуациями, где я сделал что-то с одиночным элементом и затем должен был отсеять через мой код для вынимания его после того, как я обнаружил, насколько хуже он сделал вещи (или после того, как я предложил намного лучшее, более нормальное решение)
Удобный заголовок - это обычно (не только в Boost) заголовок, который включает ряд других заголовков (содержащих фактический код), которые обычно используются вместе, даже если между ними нет жестких зависимостей их (именно поэтому они в первую очередь отдельные).
Он включает в себя множество разных, но связанных заголовков
Например, boost / smart_ptr.hpp включает контейнеры общих указателей и указателей с определенной областью действия:
//
// smart_ptr.hpp
//
// For convenience, this header includes the rest of the smart
// pointer library headers.
//
// Copyright (c) 2003 Peter Dimov Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// http://www.boost.org/libs/smart_ptr/smart_ptr.htm
//
#include <boost/config.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/scoped_array.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp>
#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
# include <boost/weak_ptr.hpp>
# include <boost/intrusive_ptr.hpp>
# include <boost/enable_shared_from_this.hpp>
#endif