Я заметил, что многие классы Poco имеют защищенный деструктор. Это делает их более раздражающими для кодирования. Например, вот часть моего кода:
struct W2: Poco::Util::WinRegistryConfiguration
{
typedef Poco::Util::WinRegistryConfiguration inherited;
using inherited::inherited;
};
std::string get_documents_folder()
{
W2 regc { "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" };
return regc.getString("Personal", "");
}
Конечно, было бы намного проще, если бы я мог покончить с W2
и просто сделать regc
типом WinRegistryConfiguration
. Но это невозможно из-за защищенного деструктора.
Я понимаю, что вместо этого можно использовать Poco::AutoPtr
, но тогда ресурсы тратятся впустую, выполняя динамическое выделение с помощью new
, тогда как автоматическое выделение должно работать нормально.
У меня вопрос: в чем причина этого и не упускаю ли я что-нибудь?