Смотрите на эта страница (раздел "Dependency Version Ranges"). То, что Вы могли бы хотеть сделать, является чем-то как
[1.2.3,)
, Эти диапазоны версии реализованы в Maven2.
Другим примером является использование факта, что регистратор также подвергается RAII:
CEngineLayer::CEngineLayer( )
{
CLogger logger(this); // Could throw, but no harm if it does.
logger.SetIntent("Creating the video layer!");
videoLayer = new CVideoLayer(this);
logger.SetSucceeded(); // resets intent, so CLogger::~CLogger() is silent.
}
Это масштабируется чисто, если есть несколько шагов. Вы просто звоните .SetIntent
несколько раз. Обычно вы записываете только последнюю строку намерений в CLogger::~CLogger()
, но для дополнительной подробной записи в журнал вы можете записать все намерения.
Кстати, в вашем createEngineLayer
вы можете захотеть catch(...)
. Что если регистратор выбрасывает DiskFullException
?