Clean up last bug fix with full support for const & (and presumably some support for const *) contained types.
This commit is contained in:
parent
ec2f81c674
commit
8dbb43f45f
@ -326,7 +326,12 @@ namespace dispatchkit
|
|||||||
{
|
{
|
||||||
if (ob.is_ref())
|
if (ob.is_ref())
|
||||||
{
|
{
|
||||||
return boost::cref((boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get());
|
if (!ob.get_type_info().m_is_const)
|
||||||
|
{
|
||||||
|
return boost::cref((boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get());
|
||||||
|
} else {
|
||||||
|
return boost::any_cast<boost::reference_wrapper<const Result> >(ob.get());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return boost::cref(*(boost::any_cast<boost::shared_ptr<Result> >(ob.get())));
|
return boost::cref(*(boost::any_cast<boost::shared_ptr<Result> >(ob.get())));
|
||||||
}
|
}
|
||||||
@ -345,7 +350,12 @@ namespace dispatchkit
|
|||||||
{
|
{
|
||||||
if (ob.is_ref())
|
if (ob.is_ref())
|
||||||
{
|
{
|
||||||
return boost::cref((boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get());
|
if (!ob.get_type_info().m_is_const)
|
||||||
|
{
|
||||||
|
return boost::cref((boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get());
|
||||||
|
} else {
|
||||||
|
return boost::any_cast<boost::reference_wrapper<const Result> >(ob.get());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return boost::cref(*(boost::any_cast<boost::shared_ptr<Result> >(ob.get())));
|
return boost::cref(*(boost::any_cast<boost::shared_ptr<Result> >(ob.get())));
|
||||||
}
|
}
|
||||||
@ -364,7 +374,12 @@ namespace dispatchkit
|
|||||||
{
|
{
|
||||||
if (ob.is_ref())
|
if (ob.is_ref())
|
||||||
{
|
{
|
||||||
return (boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get_pointer();
|
if (!ob.get_type_info().m_is_const)
|
||||||
|
{
|
||||||
|
return (boost::any_cast<boost::reference_wrapper<Result> >(ob.get())).get_pointer();
|
||||||
|
} else {
|
||||||
|
return (boost::any_cast<boost::reference_wrapper<const Result> >(ob.get())).get_pointer();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return (boost::any_cast<boost::shared_ptr<Result> >(ob.get())).get();
|
return (boost::any_cast<boost::shared_ptr<Result> >(ob.get())).get();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user