Re: throw, wchar_t* и память
От: remark Россия http://www.1024cores.net/
Дата: 14.04.08 10:09
Оценка:
Здравствуйте, __kain, Вы писали:

__>В двух словах: генерирую исключение, хочу посмотреть текст. Вылетаю. Вот код:

__>Причем получается так, что при переделке с использования wchar_t на std::wstring пример работает. Не могу понять, почему приведенный текст не работает.


Если нельзя использовать std::wstring, то можно так:

class CSomeException
{
private:
    shared_ptr<wchar_t const> msg_;
    int code_;

public:
    CSomeException(int code, const wchar_t* msg)
        : code_(code)
        , msg_(wcsdup(msg), free)
    {
    }

    wchar_t const* GetMessage() const
    {
        return msg_.get();
    }

    int GetCode() const
    {
        return code_;
    }
};



Но вообще с std::wstring было бы оптимально.


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.