Есть такой синглтон:
template <typename BaseT>
class Singleton
: public BaseT
, private boost::noncopyable
{
private:
Singleton()
{
}
~Singleton()
{
}
public:
static Singleton& instance()
{
static Singleton _instance;
return _instance;
}
};
Как модифицировать этот класс, чтобы он создавал экземпляр _instance, если у BaseT нет конструктора по умолчанию? Например, в качестве класса BaseT я использую класса Trace (или Log) для вывода отладочной информации, в конструктор которого передаю имя файла для лога. Используется RAII, в конструкторе файл открывается, в диструкторе закрывается.
Решение с передачей аргументов в функцию instance выглядит не очень красивым, так как синглтон создается одни раз по определению, дык что теперь при каждом вызове эти аргументы передавать...
Помогите пожалуйста найти решение.