[glibmm/refptr_as_sharedptr_v4: 7/8] Use std::dynamic_pointer_cast<>().
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/refptr_as_sharedptr_v4: 7/8] Use std::dynamic_pointer_cast<>().
- Date: Wed, 5 Apr 2017 12:02:13 +0000 (UTC)
commit ed3cde0c0f31dd098f39ba415e1b72bad8d7a62b
Author: Murray Cumming <murrayc murrayc com>
Date: Sun Dec 11 19:44:49 2016 +0100
Use std::dynamic_pointer_cast<>().
Instead of Glib::RefPtr<>::cast_dynamic().
examples/network/resolver.cc | 2 +-
examples/network/socket-client.cc | 2 +-
examples/network/socket-server.cc | 2 +-
gio/src/liststore.hg | 6 +++---
glib/glibmm/object.h | 4 ++--
glib/glibmm/value.h | 4 ++--
tests/giomm_listmodel/main.cc | 4 ++--
7 files changed, 12 insertions(+), 12 deletions(-)
---
diff --git a/examples/network/resolver.cc b/examples/network/resolver.cc
index 106f60a..6fb0780 100644
--- a/examples/network/resolver.cc
+++ b/examples/network/resolver.cc
@@ -287,7 +287,7 @@ static void
print_connectable_sockaddr(Glib::RefPtr<Gio::SocketAddress> sockaddr)
{
Glib::ustring phys;
- auto isa = Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic(sockaddr);
+ auto isa = std::dynamic_pointer_cast<Gio::InetSocketAddress>(sockaddr);
if (!isa)
{
diff --git a/examples/network/socket-client.cc b/examples/network/socket-client.cc
index dcb8e90..bf8dd4d 100644
--- a/examples/network/socket-client.cc
+++ b/examples/network/socket-client.cc
@@ -68,7 +68,7 @@ socket_address_to_string(const Glib::RefPtr<Gio::SocketAddress>& address)
Glib::ustring str, res;
int port;
- auto isockaddr = Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic(address);
+ auto isockaddr = std::dynamic_pointer_cast<Gio::InetSocketAddress>(address);
if (!isockaddr)
return Glib::ustring();
inet_address = isockaddr->get_address();
diff --git a/examples/network/socket-server.cc b/examples/network/socket-server.cc
index 5f25442..8db9406 100644
--- a/examples/network/socket-server.cc
+++ b/examples/network/socket-server.cc
@@ -75,7 +75,7 @@ public:
Glib::ustring
socket_address_to_string(const Glib::RefPtr<Gio::SocketAddress>& address)
{
- auto isockaddr = Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic(address);
+ auto isockaddr = std::dynamic_pointer_cast<Gio::InetSocketAddress>(address);
if (!isockaddr)
return Glib::ustring();
diff --git a/gio/src/liststore.hg b/gio/src/liststore.hg
index 77e2375..3b86e25 100644
--- a/gio/src/liststore.hg
+++ b/gio/src/liststore.hg
@@ -250,7 +250,7 @@ Glib::RefPtr<ListStore<T_item>> ListStore<T_item>::create()
template <typename T_item>
Glib::RefPtr<T_item> ListStore<T_item>::get_item(guint position)
{
- return Glib::RefPtr<T_item>::cast_dynamic(ListModel::get_object(position));
+ return std::dynamic_pointer_cast<T_item>(ListModel::get_object(position));
}
template <typename T_item>
@@ -310,9 +310,9 @@ int ListStore<T_item>::compare_data_func(gconstpointer a, gconstpointer b, gpoin
// cast_dynamic is necessary if T_item is a user-derived class, such as
// class MyObject : public Glib::Object
- const Glib::RefPtr<const T_item> item_a = Glib::RefPtr<T_item>::cast_dynamic(
+ const Glib::RefPtr<const T_item> item_a = std::dynamic_pointer_cast<T_item>(
Glib::wrap(static_cast<typename T_item::BaseObjectType*>(const_cast<gpointer>(a)), true));
- const Glib::RefPtr<const T_item> item_b = Glib::RefPtr<T_item>::cast_dynamic(
+ const Glib::RefPtr<const T_item> item_b = std::dynamic_pointer_cast<T_item>(
Glib::wrap(static_cast<typename T_item::BaseObjectType*>(const_cast<gpointer>(b)), true));
return (*slot)(item_a, item_b);
diff --git a/glib/glibmm/object.h b/glib/glibmm/object.h
index bbe54ef..05a0f2b 100644
--- a/glib/glibmm/object.h
+++ b/glib/glibmm/object.h
@@ -260,7 +260,7 @@ public:
static GType value_type() { return T::get_base_type(); }
void set(const CppType& data) { set_object(data.get()); }
- CppType get() const { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
+ CppType get() const { return std::dynamic_pointer_cast<T>(get_object_copy()); }
};
// The SUN Forte Compiler has a problem with this:
@@ -279,7 +279,7 @@ public:
static GType value_type() { return T::get_base_type(); }
void set(const CppType& data) { set_object(const_cast<T*>(data.get())); }
- CppType get() const { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
+ CppType get() const { return std::dynamic_pointer_cast<T>(get_object_copy()); }
};
#endif /* GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS */
diff --git a/glib/glibmm/value.h b/glib/glibmm/value.h
index 8f983ce..f4ef49f 100644
--- a/glib/glibmm/value.h
+++ b/glib/glibmm/value.h
@@ -240,7 +240,7 @@ public:
static GType value_type() { return T::get_base_type(); }
void set(const CppType& data) { set_object(data.get()); }
- CppType get() const { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
+ CppType get() const { return std::dynamic_pointer_cast<T>(get_object_copy()); }
};
// The SUN Forte Compiler has a problem with this:
@@ -259,7 +259,7 @@ public:
static GType value_type() { return T::get_base_type(); }
void set(const CppType& data) { set_object(const_cast<T*>(data.get())); }
- CppType get() const { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
+ CppType get() const { return std::dynamic_pointer_cast<T>(get_object_copy()); }
};
#endif // GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
diff --git a/tests/giomm_listmodel/main.cc b/tests/giomm_listmodel/main.cc
index 8c26e77..cd8667d 100644
--- a/tests/giomm_listmodel/main.cc
+++ b/tests/giomm_listmodel/main.cc
@@ -178,8 +178,8 @@ gint32 get_next_number()
int compare_items1(const Glib::RefPtr<const Glib::Object>& a,
const Glib::RefPtr<const Glib::Object>& b)
{
- const auto action_a = Glib::RefPtr<const Gio::SimpleAction>::cast_dynamic(a);
- const auto action_b = Glib::RefPtr<const Gio::SimpleAction>::cast_dynamic(b);
+ const auto action_a = std::dynamic_pointer_cast<const Gio::SimpleAction>(a);
+ const auto action_b = std::dynamic_pointer_cast<const Gio::SimpleAction>(b);
if (!action_a || !action_b)
{
result = EXIT_FAILURE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]