К чужому труду надо относиться уважительно, но, к сожалению, я не могу не сдержаться, чтобы не сказать, что весь этот код можно смело выкинуть. Во-первых, половина из того что написано уже есть в стандартной библиотеке (std::auto_ptr, std::string, "шаблоны структур данных") и написано достаточно на высоком уровне, чтобы оставить место для оптимизации. Макрос, аналогичный DEBUG_CHECK, объявлен в <assert.h>, против использования которого тоже нет никаких предпосылок. Во-вторых, если уж писать на С++, то надо писать именно на C++. Код AWL по своему духу очень напоминает Cишный. Смысл тогда создавать библиотеку в классах? Некоторые вещи, например C_Variant, можно было бы намного элегантней и эффективней реализовать, используя шаблоны. Заметно, что многие идеи почерпнуты из кода Microsoft. Надо сказать, не самый лучший код. Поэтому люди и пишут свои обертки над ним. Писать же тоже самое, но другими словами, заменив префикс C на С_, String на C_String, есть ли в этом смысл? А польза? Вместо разного рода префиксов, гораздо лучше подходит использование пространства имен:
namespace awl
{
class window
{
...
};
}
... где-то в коде
awl::window m_mainWnd;
Вообщем, сказать еще можно много. Реальную пользу от этой библиотеки, я вижу только в использовании ее как справочного руководства по некоторым специфичным API функциям Windows. С примерами.