See https://bugzilla.gnome.org/show_bug.cgi?id=748630, especially comment 9.

This particular instance of std::auto_ptr will be replaced by a plain old pointer in future releases of glibmm. It's static data, intended to be used only by a few glibmm classes.

Kjell

Den 2015-05-04 00:15, Marcin Kolny skrev:
It's actually not a solution of your problem, because you have to change compilation flags,
but you can use following ifdefs block:
#if __cplusplus < 201103L
  // use auto_ptr
#else
  // use unique_ptr
#endif
and compile glibmm with -std=c++11 flag. As I said, it's not a solution, but just a workaround. I believe, that breaking glibmm's ABI/API is inevitable anyway, so maybe time has come to
enable c++11 flag by default and use c++11 features in glibmm?

2015-05-04 0:00 GMT+02:00 Andrew Potter <[email protected] <mailto:[email protected]>>:

    Hi everybody,

    As you probably know, std::auto_ptr got deprecated in the C++11
    standard and is scheduled for removal in C++17. After upgrading to
    Fedora 22, I see that g++ is now issuing a warning when it sees use of
    std::auto_ptr. Unfortunately there is one in glibmm's objectbase.h:

    In file included from /usr/include/glibmm-2.4/glibmm/object.h:29:0,
                     from /usr/include/giomm-2.4/giomm/simpleaction.h:27,
                     from application.cpp:19:
    /usr/include/glibmm-2.4/glibmm/objectbase.h:215:13: warning:
    ‘template<class> class std::auto_ptr’ is deprecated
    [-Wdeprecated-declarations]
     static std::auto_ptr<Threads::Mutex> extra_object_base_data_mutex;
                 ^
    In file included from /usr/include/c++/5.1.1/memory:81:0,
                     from /usr/include/glibmm-2.4/glibmm/objectbase.h:32,
                     from /usr/include/glibmm-2.4/glibmm/object.h:29,
                     from /usr/include/giomm-2.4/giomm/simpleaction.h:27,
                     from application.cpp:19:
    /usr/include/c++/5.1.1/bits/unique_ptr.h:49:28: note: declared here
       template<typename> class auto_ptr;
                                ^

    I don't think this is fully resolvable until the next ABI/API break
    (which maybe we should think about in the 2017 timeframe?), but in the
    meantime, does anyone have a clever idea to hide this particular
    warning without disabling -Wdepreciated-declarations altogether? Or
    maybe we can make some ABI-compatible Glib::auto_ptr ?



--
Pozdrawiam
Marcin Kolny



_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to