Во-первых, это не мой умный указатель. Во-вторых, усложнять там нечего: в моём примере и так хранятся два объекта. Метод математической индукции тут применим, а поэтому дальше усложнять не имеет смысла, т.е. этот пример не умаляет общности.
Если вы хотите поизвращаться, то я могу вам написать умный указатель LockNet, который успешно следит за двумя и более ресурсами. Но для этого, нужно хотя бы обнулить указатели в списке инициализации. В противном случае вы не сможете отделить мусор в значении указателей от реального указателя, когда будете делать delete в catch-блоке. Собственно, по большому счету, мой «наезд» заключался именно в этом.
по моему примеру про умные указатели вообще никаких выводов не следует. умный указатель проблему решает. И пример вообще не про new, и не про то, что new нельзя писать. Подумайте над ним внимательнее.
Ок, я попытаюсь по другому написать, что я имел ввиду. Возьмем ваш класс и немного его усложним:
class LockNet{
public:
LockNet(const Url &url){
m_net1 = new Network(url);
m_net2 = new Network(url);
}
~LockNet (){
delete m_net1;
delete m_net2;
}
private:
Network *m_net1;
Network *m_net2;
};
Положим теперь, что исключение брошено при инициализации m_net2. Проблемы понятны? Здесь вы уже даже не отделаетесь try-catch блоком в конструкторе.
Я просто к тому, что если берешь на себя ответственность писать про RAII, то надо следовать этому во всем. А то читатель возьмет себе в голову данный пример и начнет так писать управление ядерным реактором )
Секундочку. Софт не знает маппер априори. Но может догадаться эвристически, зная как управляются известные софту мапперы и видя как и куда происходит запись. Это можно автоматизировать. А руками и глазками придется искать дольше.
Как бы со временем не отдали эти проверки аутентичности firmware на откуп всякой дряни типа TPM. Тогда с этим будем беда. А всё походу к тому идет ( Не здоровая эта тенденция, ограничивать владельца в использовании купленного железа.
> но так сейчас работает маркетинг в массовом сегменте
Странность этого маркетинга заключается в том, что вокруг всякой фигни типа управлением скорости вентиляторов, разводятся такие секреты (про многостраничные NDA), что иной раз кажется, что там довеском идет система управления ядерным реактором, которая тупо ждет, что его подключат в нужный разъем USB )))
AMT всё-таки это IPMI для бедных, там и сетевуха общая, и вообще )
Кстати, раз уж пошла речь об этом, то может быть вы знаете, почему AMT в полной мере поддержана только на чипсетах серии Q? Действительно какие-то дополнительные возможности или чисто маркетинг? В своё время было интересно с этим поковыряться, но обнаружив, что у меня чипсет серии X, я был опечален )
> У IO-trap'ов есть применение, мы их для отладки используем достаточно активно, к примеру.
Имеется ввиду отладку BIOS'ов или драйверов? А не расскажете, где можно почитать про технику такой отладки? Или для этого требуется иметь доступ к коду SMM?
Ну речь идет про тюнинг конкретной машины под конкретную систему.
Поэтому скажем эмуляция USB-устройств нафиг не нужна. Мониторинг оборотов вентиляторов как таковой не нужен, но тревоги при их поломке, получать хотелось бы, но разве этим не занимается какой-нибудь чип типа Winbond (кажется они называются LPC чипами)? Или имеется ввиду подстройка оборотов для минимизации шума? Тогда пофиг, выставляем на максимум.
А у I/O trap'ов есть какое-то реальное применение, кроме как всякой мутоты по эмуляции мышей и клавиатур?
А что такое CSM (гуглил, но адекватную расшифровку не нашел)?
Во-первых, это не мой умный указатель. Во-вторых, усложнять там нечего: в моём примере и так хранятся два объекта. Метод математической индукции тут применим, а поэтому дальше усложнять не имеет смысла, т.е. этот пример не умаляет общности.
Если вы хотите поизвращаться, то я могу вам написать умный указатель LockNet, который успешно следит за двумя и более ресурсами. Но для этого, нужно хотя бы обнулить указатели в списке инициализации. В противном случае вы не сможете отделить мусор в значении указателей от реального указателя, когда будете делать delete в catch-блоке. Собственно, по большому счету, мой «наезд» заключался именно в этом.
Положим теперь, что исключение брошено при инициализации m_net2. Проблемы понятны? Здесь вы уже даже не отделаетесь try-catch блоком в конструкторе.
Я просто к тому, что если берешь на себя ответственность писать про RAII, то надо следовать этому во всем. А то читатель возьмет себе в голову данный пример и начнет так писать управление ядерным реактором )
Странность этого маркетинга заключается в том, что вокруг всякой фигни типа управлением скорости вентиляторов, разводятся такие секреты (про многостраничные NDA), что иной раз кажется, что там довеском идет система управления ядерным реактором, которая тупо ждет, что его подключат в нужный разъем USB )))
Кстати, раз уж пошла речь об этом, то может быть вы знаете, почему AMT в полной мере поддержана только на чипсетах серии Q? Действительно какие-то дополнительные возможности или чисто маркетинг? В своё время было интересно с этим поковыряться, но обнаружив, что у меня чипсет серии X, я был опечален )
Имеется ввиду отладку BIOS'ов или драйверов? А не расскажете, где можно почитать про технику такой отладки? Или для этого требуется иметь доступ к коду SMM?
Поэтому скажем эмуляция USB-устройств нафиг не нужна. Мониторинг оборотов вентиляторов как таковой не нужен, но тревоги при их поломке, получать хотелось бы, но разве этим не занимается какой-нибудь чип типа Winbond (кажется они называются LPC чипами)? Или имеется ввиду подстройка оборотов для минимизации шума? Тогда пофиг, выставляем на максимум.
А у I/O trap'ов есть какое-то реальное применение, кроме как всякой мутоты по эмуляции мышей и клавиатур?
А что такое CSM (гуглил, но адекватную расшифровку не нашел)?