2015-09-03 Murray Cumming 2.45.70 2015-09-03 Murray Cumming Require the latest libsigc++ So we can use the trackable move operations. 2015-09-01 Murray Cumming Revert "Deprecate Regex now that we have std::regex." I didn't mean to push this yet. Maybe we will never deprecate this if it offers better UTF-8 support than std::regex. This reverts commit a1f0b1a06095d81b6a5b8255b818b1c35c92df29. 2015-09-01 Murray Cumming ObjectBase: move operations: Call the sigc::trackable base. 2015-09-01 Murray Cumming IOChannel: move operations: Call the base sigc::trackable. 2015-09-01 Murray Cumming Markup: Add move operations 2015-09-01 Murray Cumming resolver example: Use std:stoul instead of stdstrtoul 2015-09-01 Murray Cumming resolver example: Use std::strtoul instead of strtoul. 2015-09-01 Murray Cumming Deprecate Regex now that we have std::regex. 2015-08-31 Murray Cumming RefPtr: Make everything else noexcept too. 2015-08-31 Murray Cumming RefPtr: Make destructor, move operations and swap() noexcept. 2015-08-31 Murray Cumming Interface: Make move operations noexcept. 2015-08-31 Murray Cumming gmmproc: Make all move operations noexcept. This is useful for standard containers, for instance. 2015-08-31 Murray Cumming Make destructors explicitly noexcept. Destructors are already noexcept, but this makes that even clearer. This might be foolish. 2015-08-31 Murray Cumming gmmproc: Make destructors explicitly noexcept. 2015-08-26 Daniel Elstner docs: Exclude bogus documentation symbols * docs/reference/Doxyfile.in (EXCLUDE_SYMBOLS): Add bogus symbols which appeared in the generated documentation but shouldn't. 2015-08-26 Daniel Elstner Update list of files git should ignore 2015-08-26 Daniel Elstner docs: Update configuration for Doxygen 1.8.9.1 * docs/reference/Doxyfile.in: Regenerate with Doxygen 1.8.9.1. 2015-08-26 Daniel Elstner docs: Include unused headers in reference documentation * glib/glibmm/filelist.am (glibmm_files_all_h): New variable that holds all header files, even those which are not included in the build. * gio/giomm/filelist.am (giomm_files_all_h): ditto. * docs/Makefile.am (doc_input): Make Doxygen parse all public header files, including those which are unused in the current build configuration. This ensures that the documentation covers all platforms. 2015-08-26 Daniel Elstner docs: Define G_OS_UNIX and G_OS_WIN32 unconditionally * docs/reference/Doxyfile.in (PREDEFINED): Always define both G_OS_UNIX and G_OS_WIN32, so that the generated documentation covers all platforms. 2015-08-23 Murray Cumming C++11: _CLASS_GENERIC classes: Add move operations. These don't have much in common with each other. Like most of our move operations, they are completely untested, though they could be. 2015-08-23 Murray Cumming C++11: Use = delete instead of private copy operations. There were still some left in the .hg/.ccg files. 2015-08-22 Murray Cumming 2.45.52 I never released 2.45.1. I had meant to rebase the version change to be the latest commit but forgot to do that. I might not release this one just yet as a tarball either. I just need a version number for the other *mm projects to check for. Releasing a tarball might cause disruption if these latest changes cause problems. 2015-08-22 Murray Cumming tests: Add glibmm_interface_move. This code got unpleasantly big because I wanted to test a C++ class that wraps a GObject while also implementing a C++ Interface that wraps a GInterface that the GObject implements. But it seems to work. However, the code to test a raw TestInterface is commented out because the move constructor does not pass the test. I am not sure if this should even be expected to work: Interface interface = std::move(object); or: Base base = std::move(derived); Surely that would lose the data (and virtual method table) from the Derived class anyway? 2015-08-22 Murray Cumming Interface: Move constructor: Add comment about not calling initialize_move(). I am not entirely sure that this is the right thing to do. See my comment in the next commit about the test. 2015-08-22 Murray Cumming tests: Split glibmm_object_move into 2 files. To test ObjectBase separately. 2015-08-22 Murray Cumming Object: Move constructor: Use initialize_move(). Because the call to the ObjectBase move constructor will not actually happen. See the comment for the previous commit. 2015-08-22 Murray Cumming ObjectBase: Add initialize_move(). And _move_current_wrapper() for it to use. Object and Interface can use initialize_move() in their move constructors. They need to do this because their calls to the ObjectBase move constructors will not actually run, at least when in a derived class, because ObjectBase is a virtual base class (for use in virtual inheritance). We have initialize() for much the same reason, for the regular constructors. 2015-08-22 Murray Cumming 2.45.51 2015-08-22 Murray Cumming gmmproc: _CLASS_BOXEDTYPE_STATIC: Add copy operations. These were previously implicitly generated by the compiler, but are no longer generated because we now have explicit move operations. Being explicit seems like a better way to preserve ABI anyway. 2015-08-22 Murray Cumming gmmproc: _CLASS_BOXEDTYPE: Make the static swap() noexcept. This is generally a good idea because it lets standard containers use the swap() while maintaining their own noexcept. This would not be an ABI break, hopefully, because this is an inline method in the header anyway. We have recently added the noexcept to the member swap() method, but hopefully that is not an ABI break either. Removing noexcept would be an ABI break, I think. 2015-08-22 Murray Cumming gmmproc: _CLASS_OPAQUE_COPYABLE: Generate static swap(). As in _CLASS_BOXEDTYPE(). This can then be used by std::swap(), used by standard containers. 2015-08-22 Murray Cumming gmmproc: _CLASS_BOXEDTYPE_STATIC(): Add move operations. Roughly as in _CLASS_BOXEDTYPE(). 2015-08-22 Murray Cumming gmmproc: _CLASS_OPAQUE_COPYABLE(): Add move operations. The same as in _CLASS_BOXEDTYPE(). 2015-08-22 Murray Cumming C++11: Mark all _CLASS_OPAQUE_REFCOUNTED classes as final. Because _CLASS_OPAQUE_REFCOUNTED already generates a comment telling us not to derive from them, presumably because they can only be instantiated by reinterpret_cast<>ing a base C struct. Ideally, _CLASS_OPAQUE_REFCOUNTED would add the final keyword, but the class line is is not generated, so that would be a little difficult. 2015-08-22 Murray Cumming gmmproc: _CLASS_OPAQUE_REFCOUNTED: Use = delete for the default constructor. And move it (and the = deleted copy operations) to public. 2015-08-22 Murray Cumming Add simple test for Object move. 2015-08-22 Murray Cumming Gio::FileIcon: Remove unncessary IMPLEMENTS_INTERFACE 2015-08-22 Murray Cumming gmmproc: _CLASS_GOBJECT(): Move operations: Call interfaces' move operations. The (virtual base) ObjectBase's move operations will not be called multiple times, so this might be useless, but it seems more complete. 2015-08-22 Murray Cumming gmmproc: _CLASS_INTERFACE(): Generate move operations. 2015-08-22 Murray Cumming gmmproc: _CLASS_GOBJECT(): Generate move operations. Generate move constructor and move assignment operator. These might never be used, but it seems generally wise to have them. 2015-08-22 Murray Cumming Glib::ObjectBase, Object, Interface: Add move operators. Add move constructors and move assignment operators so that derived classes can have these too.