Angus Leeming <[EMAIL PROTECTED]> writes:

| Angus Leeming wrote:
>
>> Angus Leeming wrote:
>>> Lars Gullik Bjønnes wrote:
>>>> note the member function boost::any:type
>>> 
>>> Bingo! No need for exceptions after all.
>>> Many thanks, Lars.
>> 
>> Next iteration. I think that this is ready to convert into InsetExternal
>> code.
>
| Hmmppfff! trying to do so, I get this
>
| ../../../boost/boost/any.hpp: In function `ValueType boost::any_cast(const
|    boost::any&) [with ValueType = lyx::external::RotationCommandFactory]':
| ../../../src/insets/ExternalTemplate.h:54:   instantiated from `void 
| lyx::external::TransformStore::getTransformer(const Data&, Transformer&) 
| const [with Factory = lyx::external::RotationCommandFactory, Data = 
| lyx::external::RotationData, Transformer = std::auto_ptr<const 
| lyx::external::TransformCommand>]'
| ../../../src/insets/insetexternal.C:790:   instantiated from here
| ../../../boost/boost/any.hpp:174: exception handling disabled, use 
| -fexceptions to enable
>
|     template<typename ValueType>
|     ValueType any_cast(const any & operand)
|     {
|         const ValueType * result = any_cast<ValueType>(&operand);
|         if(!result)
|             throw bad_any_cast();
|         return *result;
|     }
>
| Could I insert 
|         BOOST_ASSERT(result);
| in its place please? The code is safe:

No, but you can use boost::throw_exception(bad_any_cast())

We should also send this as a patch to the boost list.

-- 
        Lgb

Reply via email to