|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r78440 - trunk/boost/property_map
From: jewillco_at_[hidden]
Date: 2012-05-12 16:34:39
Author: jewillco
Date: 2012-05-12 16:34:38 EDT (Sat, 12 May 2012)
New Revision: 78440
URL: http://svn.boost.org/trac/boost/changeset/78440
Log:
Removed GCC 2.95 workarounds, changed to make_shared for exception safety, tried more to get VC++ to work
Text files modified:
trunk/boost/property_map/dynamic_property_map.hpp | 33 ++-------------------------------
1 files changed, 2 insertions(+), 31 deletions(-)
Modified: trunk/boost/property_map/dynamic_property_map.hpp
==============================================================================
--- trunk/boost/property_map/dynamic_property_map.hpp (original)
+++ trunk/boost/property_map/dynamic_property_map.hpp 2012-05-12 16:34:38 EDT (Sat, 12 May 2012)
@@ -144,32 +144,18 @@
// can be converted to value_type via iostreams.
void do_put(const any& in_key, const any& in_value, mpl::bool_<true>)
{
-#if !(defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
using boost::put;
-#endif
key_type key = any_cast<key_type>(in_key);
if (in_value.type() == typeid(value_type)) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map_, key, any_cast<value_type>(in_value));
-#else
put(property_map_, key, any_cast<value_type>(in_value));
-#endif
} else {
// if in_value is an empty string, put a default constructed value_type.
std::string v = any_cast<std::string>(in_value);
if (v.empty()) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map_, key, value_type());
-#else
put(property_map_, key, value_type());
-#endif
} else {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map_, key, detail::read_value<value_type>(v));
-#else
put(property_map_, key, detail::read_value<value_type>(v));
-#endif
}
}
}
@@ -185,28 +171,14 @@
virtual boost::any get(const any& key)
{
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- return boost::get(property_map_, any_cast<key_type>(key));
-#else
- // using boost::get;
-
return get_wrapper_xxx(property_map_, any_cast<key_type>(key));
-#endif
}
virtual std::string get_string(const any& key)
{
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
std::ostringstream out;
- out << boost::get(property_map_, any_cast<key_type>(key));
+ out << get_wrapper_xxx(property_map_, any_cast<key_type>(key));
return out.str();
-#else
- using boost::get;
-
- std::ostringstream out;
- out << get(property_map_, any_cast<key_type>(key));
- return out.str();
-#endif
}
virtual void put(const any& in_key, const any& in_value)
@@ -254,9 +226,8 @@
dynamic_properties&
property(const std::string& name, PropertyMap property_map_)
{
- // Tbd: exception safety
boost::shared_ptr<dynamic_property_map> pm(
- new detail::dynamic_property_map_adaptor<PropertyMap>(property_map_));
+ boost::make_shared<detail::dynamic_property_map_adaptor<PropertyMap> >(property_map_));
property_maps.insert(property_maps_type::value_type(name, pm));
return *this;
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk