2015-09-17 Murray Cumming C++11: deduce_result_type: Simpifying, removing use of std::is_same(). See https://bugzilla.gnome.org/show_bug.cgi?id=753612#c9 2015-09-17 Marcin Kolny C++11: deduce_result_type: build fix, using SFINAE paradigm. Bug #753612 2015-09-17 Murray Cumming C++11: deduce_result_type: Simplify with variadic template and std::conditional<>. Bug #753612 However, the build then fails like so: make[2]: Entering directory '/home/murrayc/checkout/gnome/libsigc++2/examples' g++ -DHAVE_CONFIG_H -I.. -I.. -pedantic -Wall -Wextra -Wshadow -Wformat-security -Werror -Wall -g -O0 -std=c++11 -MT hello_world.o -MD -MP -MF .deps/hello_world.Tpo -c -o hello_world.o hello_world.cc In file included from ../sigc++/adaptors/adaptor_trait.h:10:0, from ../sigc++/functors/slot.h:7, from ../sigc++/signal_base.h:27, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/adaptors/deduce_result_type.h: In instantiation of ‘struct sigc::deduce_result_type&, void>, const std::basic_string, std::allocator >&, void, void, void, void, void, void>’: ../sigc++/adaptors/deduce_result_type.h:60:80: required by substitution of ‘template using deduce_result_t = typename sigc::deduce_result_type::type [with T_functor = sigc::pointer_functor1&, void>; T_args = {const std::basic_string, std::allocator >&, void, void, void, void, void, void}]’ ../sigc++/adaptors/adaptor_trait.h:67:104: required from ‘struct sigc::adaptor_functor&, void> >::deduce_result_type&, void, void, void, void, void, void>’ ../sigc++/adaptors/adaptor_trait.h:88:3: required by substitution of ‘template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1) const [with T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:137:20: required from ‘static T_return sigc::internal::slot_call1::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::type_trait_take_t = const std::basic_string&]’ ../sigc++/functors/slot.h:144:37: required from ‘static void* (* sigc::internal::slot_call1::address())(void*) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::internal::hook = void* (*)(void*)]’ ../sigc++/functors/slot.h:529:91: required from ‘sigc::slot1::slot1(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:1161:26: required from ‘sigc::slot::slot(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ hello_world.cc:25:50: required from here ../sigc++/adaptors/deduce_result_type.h:56:12: error: no class template named ‘deduce_result_type’ in ‘class sigc::pointer_functor1&, void>’ >::type; ^ In file included from ../sigc++/signal_base.h:27:0, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/functors/slot.h: In instantiation of ‘static T_return sigc::internal::slot_call1::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::type_trait_take_t = const std::basic_string&]’: ../sigc++/functors/slot.h:144:37: required from ‘static void* (* sigc::internal::slot_call1::address())(void*) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::internal::hook = void* (*)(void*)]’ ../sigc++/functors/slot.h:529:91: required from ‘sigc::slot1::slot1(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:1161:26: required from ‘sigc::slot::slot(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ hello_world.cc:25:50: required from here ../sigc++/functors/slot.h:137:20: error: no matching function for call to ‘sigc::adaptor_functor&, void> >::operator()(const std::basic_string&)’ (a_1); ^ ../sigc++/functors/slot.h:137:20: note: candidates are: In file included from ../sigc++/functors/slot.h:7:0, from ../sigc++/signal_base.h:27, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/adaptors/adaptor_trait.h:88:3: note: template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1) const [with T_arg1 = T_arg1; T_functor = sigc::pointer_functor1&, void>] operator()(T_arg1 _A_arg1) const ^ ../sigc++/adaptors/adaptor_trait.h:88:3: note: substitution of deduced template arguments resulted in errors seen above ../sigc++/adaptors/adaptor_trait.h:107:3: note: template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1, T_arg2) const [with T_arg1 = T_arg1; T_arg2 = T_arg2; T_functor = sigc::pointer_functor1&, void>] operator()(T_arg1 _A_arg1, T_arg2 _A_arg2) const ^ ../sigc++/adaptors/adaptor_trait.h:107:3: note: template argument deduction/substitution failed: In file included from ../sigc++/signal_base.h:27:0, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/functors/slot.h:137:20: note: candidate expects 2 arguments, 1 provided (a_1); ^ 2015-09-11 Chun-wei Fan MSVC Builds: Add "Install" Project This makes building the -mm stack easier by copying the headers and the built DLL, PDB and LIB files to a location where it can be picked up by the gtkmm stack automatically, when they are extracted in a common directory. This is what is currently done with the GTK+ and Clutter stacks for Visual Studio builds. 2015-09-09 Chun-wei Fan Update README on Visual Studio Builds Since the Visual Studio project files and the related sources have been updated to work with Visual Studio 2013, and that the test programs do run well there, update the README file to let people know the situation. https://bugzilla.gnome.org/show_bug.cgi?id=754082 2015-09-09 Chun-wei Fan sigc++config.h.in: Allow Build for MSVC 2013 MSVC 2013 does not have the C++-11 noexcept, so we need to define that to _NOEXCEPT for MSVC 2013. Plus, since by default MSVC 2013 does not allow us to re-define keywords, though they may or may not be supported, we need to use the _ALLOW_KEYWORD_MACROS macro to allow this to happen. https://bugzilla.gnome.org/show_bug.cgi?id=754082 2015-09-08 Kjell Ahlstedt Update source of web page * docs/website/fragments/footer.html_fragment: * docs/website/fragments/html_declaration.html_fragment: * docs/website/devel.shtml: * docs/website/doc.shtml: * docs/website/index.shtml: * docs/website/link.shtml: * docs/website/stable.shtml: Fix or remove broken links. Remove the lists of supported compilers. Mention that a C++11 compiler is required and that support for lambdas has been removed. Bug #754082. 2015-09-07 Kjell Ahlstedt Update .gitignore