Commit Graph

103 Commits

Author SHA1 Message Date
Ville Voutilainen 8c9142276b Add missing variable traits, fix testsuite failures.
* include/bits/uses_allocator.h (uses_allocator_v): New.
	* include/std/functional (is_bind_expression_v, is_placeholder_v):
	Likewise.
	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/duration/literals/range.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
	New.

From-SVN: r238921
2016-07-31 17:52:53 +03:00
Jonathan Wakely 33ac58d529 Remove trailing whitespace from libstdc++ headers
* include/std/array: Remove trailing whitespace.
	* include/std/atomic: Likewise.
	* include/std/bitset: Likewise.
	* include/std/chrono: Likewise.
	* include/std/complex: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/fstream: Likewise.
	* include/std/functional: Likewise.
	* include/std/future: Likewise.
	* include/std/iomanip: Likewise.
	* include/std/iosfwd: Likewise.
	* include/std/istream: Likewise.
	* include/std/limits: Likewise.
	* include/std/ratio: Likewise.
	* include/std/scoped_allocator: Likewise.
	* include/std/sstream: Likewise.
	* include/std/stdexcept: Likewise.
	* include/std/string: Likewise.
	* include/std/system_error: Likewise.
	* include/std/thread: Likewise.
	* include/std/tuple: Likewise.
	* include/std/type_traits: Likewise.
	* include/std/utility: Likewise.
	* include/std/valarray: Likewise.
	* include/std/vector: Likewise.

From-SVN: r237528
2016-06-16 14:47:35 +01:00
Jonathan Wakely 90751aa731 Remove unused typedefs in std::bind types
* include/std/function (_Bind, _Bind_result): Remove unused typedefs.

From-SVN: r235157
2016-04-18 17:37:56 +01:00
Jonathan Wakely 9c5ad80efd Fix construction of std::function from null pointer-to-member
PR libstdc++/69293
	* include/std/functional (_Function_base::_M_not_empty_function):
	Change overloads for pointers to take arguments by value.
	* testsuite/20_util/function/cons/57465.cc: Add tests for
	pointer-to-member cases.

From-SVN: r232504
2016-01-18 11:43:37 +00:00
Jonathan Wakely 1c3c7c4145 Prevent recursive instantiation in std::function
PR libstdc++/69005
	PR libstdc++/69222
	* include/std/functional (function::_Invoke): Remove, use result_of.
	(function::_Callable): Replace alias template with class template
	and use partial specialization instead of _NotSelf alias template.
	(function(_Functor)): Add "not self" constraint so that _Callable is
	not used while type is incomplete.
	* testsuite/20_util/function/69222.cc: New.

From-SVN: r232273
2016-01-12 14:54:33 +00:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jonathan Wakely 9643ce888b Add inline to std::__invfwd
PR libstdc++/59768
	* include/std/functional (__invfwd): Add inline specifier.

From-SVN: r231900
2015-12-22 11:37:07 +00:00
Jonathan Wakely a716d11ad4 libstdc++/68995 qualify calls to __callable_functor
PR libstdc++/68995
	* include/std/functional (_function_handler, function): Qualify
	__callable_functor.
	* testsuite/20_util/function/68995.cc: New.

From-SVN: r231880
2015-12-21 13:02:18 +00:00
Jonathan Wakely e9e6a99538 libstdc++/68276 consistently qualify std::forward
PR libstdc++/68276
	* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
	std::forward.
	testsuite/20_util/function_objects/mem_fn/68276.cc: New.

From-SVN: r231879
2015-12-21 13:02:12 +00:00
Jonathan Wakely b110e777bd Restore accidentally-removed volatile qualifier
* include/std/functional (_Mu<_Arg, false, false>::operator()): Restore
	accidentally-removed volatile qualifier.

From-SVN: r231660
2015-12-15 17:06:25 +00:00
Jonathan Wakely 72030b28a1 Remove vestigial traces of std::tr1::bind
* include/std/functional (is_placeholder, is_bind_expression): Update
	comments.
	(_Safe_tuple_element): Replace with _Safe_tuple_element_t alias
	template.
	(_Mu): Remove vestigial TR1 return types and update coments.

From-SVN: r231653
2015-12-15 14:17:27 +00:00
Jonathan Wakely 6666731254 Fix cv-qualifiers in std::bind invocation
PR libstdc++/68912
	* include/std/functional (_Bind::operator()): Use lvalue functor to
	deduce return type.
	* testsuite/20_util/bind/68912.cc: New.

From-SVN: r231652
2015-12-15 14:17:17 +00:00
Jonathan Wakely f3d7dd52a6 Fix std::invoke support for reference_wrappers
PR libstdc++/59768
	* include/std/functional (_Unwrap, __invfwd): Define.
	(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
	Add partial specializations for const reference_wrappers and simplify.
	* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
	* testsuite/20_util/function_objects/invoke/59768.cc: New.

From-SVN: r231574
2015-12-11 21:45:51 +00:00
Jonathan Wakely 93e954005f Implement C++17 std::invoke and LWG DR 2219
* include/std/functional (__invoke_impl): New overloads.
	(__invoke): Replace with a single function calling __invoke_impl.
	(invoke): Add C++17 std::invoke.
	(reference_wrapper::operator()): Qualify call to __invoke.
	(_Mem_fn_traits_base, _Mem_fn_traits): Remove unused typedefs.
	(_Mem_fn_base): Remove unused typedefs and implement call operator in
	terms of __invoke.
	* include/std/future (__future_base::_Async_state_commonV2): Do not
	pass reference_wrapper as object argument to call_once.
	* include/std/type_traits (result_of): Define nested __invoke_type.
	Handle reference_wrapper as per LWG 2219.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error directives.
	* testsuite/20_util/function_objects/mem_fn/55463.cc: Remove tests
	using member functions of reference_wrapper.

From-SVN: r229290
2015-10-25 01:00:54 +01:00
Jonathan Wakely ac68f97cfe tuple (apply): Handle pointers to member (LWG 2418).
* include/experimental/tuple (apply): Handle pointers to member (LWG
	2418).
	* include/std/functional (_Mem_fn_base): Make constructors constexpr.
	(_Maybe_wrap_member_pointer::__do_wrap): Make constexpr.
	* testsuite/experimental/tuple/apply.cc: Test pointer to member.

From-SVN: r223158
2015-05-13 14:12:48 +01:00
Jonathan Wakely 952bc7a64c re PR libstdc++/65760 (invalid use of incomplete type with std::is_convertible<C, C>)
PR libstdc++/65760
	* include/std/functional (__check_func_return_type): Use is_same to
	avoid using _is_convertible on incomplete types.
	* testsuite/20_util/function/65760.cc: New.

From-SVN: r222581
2015-04-29 17:07:47 +01:00
Jakub Jelinek 5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Jonathan Wakely 0f3d27f01a re PR libstdc++/64276 (would be better to use __cpp_exceptions rather than __EXCEPTIONS to determine whether exceptions are available)
PR libstdc++/64276
	* doc/doxygen/user.cfg.in: Define __cpp_exceptions and __cpp_rtti.
	* doc/html/manual/using_exceptions.html: Regenerate.
	* doc/xml/manual/using_exceptions.xml: Use SD-6 feature-testing
	macros, __cpp_exceptions and __cpp_rtti, instead of __EXCEPTIONS and
	__GXX_RTTI.
	* include/bits/c++config: Likewise.
	* include/bits/locale_classes.tcc: Likewise.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/debug/formatter.h: Likewise.
	* include/experimental/any: Likewise.
	* include/ext/rope: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/std/functional: Likewise.
	* include/tr1/functional: Likewise.
	* include/tr1/shared_ptr.h: Likewise.
	* libsupc++/eh_call.cc: Likewise.
	* libsupc++/eh_personality.cc: Likewise.
	* libsupc++/exception_defines.h: Likewise.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/guard.cc: Likewise.
	* libsupc++/pbase_type_info.cc: Likewise.
	* libsupc++/pointer_type_info.cc: Likewise.
	* libsupc++/vterminate.cc: Likewise.
	* src/c++11/thread.cc: Likewise.

From-SVN: r218679
2014-12-12 15:58:49 +00:00
Jonathan Wakely 7b55fa54d4 re PR libstdc++/63840 (std::function copy constructor deletes an uninitialized pointer if new fails)
PR libstdc++/63840
	* include/std/functional (function::function(const function&)): Set
	_M_manager after operations that might throw.
	* include/tr1/functional (function::function(const function&),
	function::function(_Functor, _Useless)): Likewise.
	* testsuite/20_util/function/63840.cc: New.
	* testsuite/tr1/3_function_objects/function/63840.cc: New.

From-SVN: r218215
2014-12-01 13:49:20 +00:00
Jonathan Wakely d8af84e67b Implement resolutions of LWG 2399, 2400 and 2401.
* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define
	_Convertible alias template to simplify constraints.
	(shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399).
	* include/bits/shared_ptr_base.h: Likewise.
	(_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400).
	* include/std/functional (function::operator=(nullptr_t)): Add
	noexcept (LWG 2401).
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

From-SVN: r217442
2014-11-12 19:41:36 +00:00
Jonathan Wakely 847e9cf81e Define __void_t and SFINAE-friendly iterator_traits.
* include/std/type_traits (__void_t): Define new alias template.
	(_GLIBCXX_HAS_NESTED_TYPE): Redefine using __void_t.
	* include/std/functional (_Maybe_get_result_type): Likewise.
	* include/bits/stl_iterator_base_types.h (__iterator_traits): Likewise.
	* include/bits/uses_allocator.h (__uses_allocator_helper): Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Adjust to changes
	in _GLIBCXX_HAS_NESTED_TYPE.

From-SVN: r217395
2014-11-11 23:57:35 +00:00
Jonathan Wakely f6b640be24 Make std::mem_fn work with varargs functions.
* include/std/functional (_Mem_fn_traits): Add partial specializations
	for varargs functions.
	(_Mem_fn_base): Do not check arguments are convertible for varargs.
	(_Bind_check_arity): Add partial specializations for varargs functions.
	* include/std/type_traits (__bool_constant): Add alias template.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/bind/refqual.cc: New, test ref-qualifiers.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/function_objects/mem_fn/refqual.cc: Test varargs.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
	dg-error.

From-SVN: r217393
2014-11-11 23:38:34 +00:00
Jonathan Wakely 565115eaaf Make reference_wrapper trivially copyable.
* include/std/functional (reference_wrapper): Define copy constructor
	and copy assignment as defaulted.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/reference_wrapper/requirements.cc: New.

From-SVN: r217067
2014-11-04 02:49:33 +00:00
Jonathan Wakely 9bcb72e0b0 * include/std/functional (_Bind_simple): Simplify construction.
From-SVN: r217065
2014-11-04 02:49:27 +00:00
Jonathan Wakely afc449e82c Check number of arguments in bind expressions.
* include/std/functional (_Mem_fn_traits_base::__arity): New typedef.
	(_Mem_fn_base::_Arity): New typedef.
	(_Bind_check_arity): New class template.
	(_Bind_helper, _Bindres_helper, _Bind_simple_helper): Check arity.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.

From-SVN: r217025
2014-11-03 02:55:36 +00:00
Jonathan Wakely 8d9076969b Add support for ref-qualified functions to std::mem_fn
PR libstdc++/57898
	* include/std/functional (_Mem_fn_traits_base): New class template.
	(_Mem_fn_traits): New class template with specializations for every
	combination of cv-qualified and ref-qualified member function.
	(_Mem_fn_base): New class template for all pointer to member function
	types and partial specialization for pointer to member object types.
	(_Mem_fn): Inherit from _Mem_fn_base.
	* testsuite/20_util/function_objects/mem_fn/refqual.cc: New.

From-SVN: r217024
2014-11-03 02:55:32 +00:00
Jonathan Wakely a56561ac2d Use perfect forwarding in std::function invokers.
* include/std/functional: (_Function_base::_Function_base()): Use
	nullptr instead of literal zero.
	(function::operator=(nullptr_t)): Likewise.
	(_Function_handler::_M_invoke): Use perfect forwarding for _ArgTypes.
	(function::_Invoker_type): Likewise.
	* testsuite/20_util/function/invoke/forwarding.cc: New.

From-SVN: r216849
2014-10-29 18:38:31 +00:00
Jonathan Wakely c386686921 re PR libstdc++/61909 (Small function optimization not applied to small objects)
PR libstdc++/61909
	* include/std/functional (__is_location_invariant): Treat all
	trivially copyable types as location invariant.

From-SVN: r216047
2014-10-09 19:17:28 +01:00
Jonathan Wakely b3771d3f6f allocated_ptr.h (__allocated_ptr::operator=): Add missing return.
* include/bits/allocated_ptr.h (__allocated_ptr::operator=): Add
	missing return.
	* include/experimental/any: Remove unused header.
	* include/std/functional (_Maybe_wrap_member_pointer): Fix comments.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
	* testsuite/util/testsuite_regex.h: Move include guard.

From-SVN: r212360
2014-07-08 14:22:14 +01:00
Jonathan Wakely af222e7486 tuple (__add_c_ref, [...]): Remove.
* include/std/tuple (__add_c_ref, __add_ref, __add_r_ref): Remove.
	(__tuple_element_t): Define.
	(tuple_element): Use __tuple_element_t.
	(__cv_tuple_size): Define.
	(tuple_size<cv _Tp>): Use __cv_tuple_size.
	(get, __get_helper, __get_helper2): Remove uses of __add_ref etc.
	(get<_Tp>(tuple<_Types...>&&)): Use forward instead of move.
	(__tuple_compare): Remove size check, re-order parameters.
	(operator==, operator<): Use static_assert to check requirements.
	* include/std/functional (__volget): use __tuple_element_t.
	* testsuite/20_util/tuple/element_access/get_by_type.cc: Test rvalues.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.

From-SVN: r210447
2014-05-14 23:16:35 +01:00
Jonathan Wakely b82f988e8d re PR libstdc++/60497 (unique_ptr<T> tries to complete its type T even though it's not required to be a complete type)
PR libstdc++/60497
	* include/debug/array (get): Qualify call to other get overload.
	* include/profile/array (get): Likewise.
	* include/std/array (get): Likewise.
	* include/std/functional (_Mu, _Bind, _Bind_result): Qualify std::get.
	* include/std/mutex (unique_lock, call_once): Use __addressof.
	(__unlock_impl): Remove unused template.
	(__try_to_lock): Declare inline.
	(__try_lock_impl::__do_try_lock): Qualify function calls.
	(lock): Avoid narrowing conversion.
	* testsuite/20_util/bind/60497.cc: New.
	* testsuite/23_containers/array/element_access/60497.cc: New.
	* testsuite/30_threads/call_once/60497.cc: New.
	* testsuite/30_threads/unique_lock/cons/60497.cc: New.

From-SVN: r210388
2014-05-13 18:22:08 +01:00
Jonathan Wakely 6e2d247b1e * include/std/functional (__is_location_invariant): Use __or_ helper.
From-SVN: r209445
2014-04-16 18:46:13 +01:00
Jonathan Wakely 4803acceb2 re PR libstdc++/60594 (std::function of a type with a declared (but not defined) return type fails to compile)
PR libstdc++/60594
	* include/std/functional (function::_Callable): Exclude own type
	from the callable checks.
	* testsuite/20_util/function/60594.cc: New.

From-SVN: r209422
2014-04-15 16:25:52 +01:00
Richard Sandiford aa118a03c4 Update copyright years in libstdc++-v3/
From-SVN: r206301
2014-01-02 22:30:10 +00:00
Jonathan Wakely 44d209d7e2 re PR libstdc++/58569 (Compilation error when a class contains multiple std::function)
2013-10-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Daniel Krugler  <daniel.kruegler@gmail.com>

	PR libstdc++/58569
	* include/std/functional (function::_CheckResult): Move to namespace
	scope and rename to __check_func_return_type.
	* testsuite/20_util/function/58569.cc: New.

Co-Authored-By: Daniel Kruegler <daniel.kruegler@gmail.com>

From-SVN: r203132
2013-10-02 21:21:52 +01:00
Jonathan Wakely d02dae41e3 re PR libstdc++/57465 (Failed postcondition for std::function constructed with null function pointer)
PR libstdc++/57465
	* include/std/functional
	(_Function_base::_Base_manager::_M_not_empty_function): Fix overload
	for pointers.
	* testsuite/20_util/function/cons/57465.cc: New.

From-SVN: r202974
2013-09-27 15:06:09 +01:00
Jonathan Wakely bf5f6aa9be re PR libstdc++/57336 (Cannot INVOKE a reference_wrapper around an abstract type)
PR libstdc++/57336
	* include/std/functional (__invoke): Do not form function types with
	abstract return type.
	* testsuite/20_util/reference_wrapper/invoke-3.cc: New.

From-SVN: r199136
2013-05-21 09:15:13 +01:00
François Dumont 82b12c4b24 functional (_Derives_from_unary_function): Remove.
2013-04-04  François Dumont  <fdumont@gcc.gnu.org>

	* include/std/functional (_Derives_from_unary_function): Remove.
	(_Derives_from_binary_function): Remove.
	* include/std/type_traits (__sfinae_types): Remove.
	(__is_assignable_helper): Adapt.
	(__is_convertible_helper): Adapt.
	(_GLIBCXX_HAS_NESTED_TYPE): Adapt.
	Remove several explicit instantiations of integral_constant.
	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Adapt.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Adapt dg-error line number.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Likewise.

From-SVN: r197551
2013-04-07 10:42:51 +00:00
Jonathan Wakely 890e166507 re PR c++/55908 (Problem binding a const member function to a const object)
PR libstdc++/55908
	* include/std/functional (_Mem_fn::operator()): Fix constraints to
	avoid ambiguity.
	* testsuite/20_util/function_objects/mem_fn/55908.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r195035
2013-01-08 21:01:14 +00:00
Jonathan Wakely 78aff33680 re PR libstdc++/55847 (mistake bad_weak_ptr::what() message)
PR libstdc++/55847
	* src/c++11/shared_ptr.cc (bad_weak_ptr::what()): Correct string.
	* testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Verify
	string.

	PR libstdc++/55728
	* include/std/functional (bad_function_call::what()): Declare.
	* src/c++11/functional.cc (bad_function_call::what()): Define.
	* config/abi/pre/gnu.ver (bad_function_call::what()): Export.
	* testsuite/20_util/bad_function_call/what.cc: New.

From-SVN: r194958
2013-01-07 00:50:16 +00:00
Jonathan Wakely 23df853421 functional (_Require): Move to ...
* include/std/functional (_Require): Move to ...
	* include/std/type_traits (_Require): ... here.
	* include/bits/shared_ptr_base.h (__shared_count::_S_create_from_up):
	Handle unique_ptr for arrays or with custom pointer types.
	(__shared_ptr::__shared_ptr(unique_ptr<_Tp1, _Del>&&): Likewise.
	* include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Use
	_Dp::pointer if defined. Implement proposed resolution of LWG 2118.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: New.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: New.
	* testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc: New.
	* testsuite/20_util/unique_ptr/cons/convertible_neg.cc: New.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: New.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: New.
	* testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc: New.
	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Adjust comments.
	* testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/requirements/pointer_type.cc: Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line number.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
	* testsuite/20_util/default_delete/48631_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Adjust
	dg-error text.
	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Use
	different instantiations so static_assert fails for each.

From-SVN: r194651
2012-12-20 21:02:33 +00:00
Jonathan Wakely b1c2b51b66 functional (_Mem_fn): Constrain function call operators to avoid ambiguities.
* include/std/functional (_Mem_fn): Constrain function call operators
	to avoid ambiguities. Use perfect forwarding.
	* testsuite/20_util/function_objects/mem_fn/55463.cc: Additional
	tests.
	* testsuite/20_util/function_objects/mem_fn/forward.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193879
2012-11-28 01:42:25 +00:00
Jonathan Wakely 5895a897b5 functional (__is_socketlike): Change from class template to alias template.
* include/std/functional (__is_socketlike): Change from class
	template to alias template.

From-SVN: r193832
2012-11-26 23:53:36 +00:00
Jonathan Wakely 5127244e4b re PR libstdc++/55463 (Result of std::mem_fn doesn't accept rvalues)
PR libstdc++/55463
	* include/std/functional (_Mem_fn): Handle rvalue objects. Add
	noexcept-specifications.
	* testsuite/20_util/function_objects/mem_fn/55463.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193831
2012-11-26 23:53:29 +00:00
Jonathan Wakely 1b5dc776ca stl_algo.h (reverse_copy): Update comment per DR 2074.
* include/bits/stl_algo.h (reverse_copy): Update comment per DR 2074.
	* include/bits/unordered_map.h: Apply DR 2005 resolution.
	* doc/xml/manual/status_cxx2011.xml: Update per DR 2048.
	* include/bits/allocator.h (allocator): Apply DR 2103 resolution.
	* include/ext/array_allocator.h: Likewise.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/new_allocator.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal): Add
	additional specializations.
	* include/std/functional: Add comment about DR resolution.
	* include/std/future: Likewise.
	* include/std/scoped_allocator: Likewise.
	* include/std/thread: Likewise.
	* testsuite/20_util/allocator/requirements/typedefs.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193638
2012-11-19 22:28:00 +00:00
Jonathan Wakely 99ace34a31 re PR libstdc++/55320 (Invalid delete with throwing copy-c'tor passed to std::function)
PR libstdc++/55320
	* include/std/functional (function::function(F)): Set _M_manager after
	operations that could throw.
	(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
	* include/tr1/functional
	(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
	(_Function_base::_Base_manager::_M_get_pointer): Likewise.
	* testsuite/20_util/function/cons/55320.cc: New.
	* testsuite/20_util/function/cons/addressof.cc: New.
	* testsuite/20_util/function/cons/callable.cc: Remove header.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
	* testsuite/tr1/3_function_objects/function/10.cc: New.

From-SVN: r193514
2012-11-14 23:33:01 +00:00
Jason Merrill 734f50238f * many: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.
From-SVN: r193392
2012-11-10 12:27:22 -05:00
Jonathan Wakely 143a1ce16c functional (function::function(F)): LWG 2132: Disable constructor if argument isn't callable.
* include/std/functional (function::function(F)): LWG 2132: Disable
	constructor if argument isn't callable.
	* testsuite/20_util/function/cons/callable.cc: New.

From-SVN: r186947
2012-04-29 23:59:37 +01:00
Jonathan Wakely 181c9de2a6 functional (__callable_functor): Overload for volatile-qualified pointers.
* include/std/functional (__callable_functor): Overload for
	volatile-qualified pointers.
	* testsuite/20_util/function/10.cc: New.

From-SVN: r186055
2012-04-01 18:10:57 +01:00
Jonathan Wakely 28d5436f07 functional (mem_fn): Qualify to prevent ADL.
* include/std/functional (mem_fn): Qualify to prevent ADL.
	* testsuite/20_util/function_objects/mem_fn/adl.cc: New.

From-SVN: r185895
2012-03-27 21:25:12 +01:00