Commit Graph

13 Commits

Author SHA1 Message Date
Doug Gregor 59cffcf69a [multiple changes]
2005-03-31  Chris Jefferson  <chris@bubblescope.net>

        * include/tr1/tuple: Support iteration via tuple_iterate.h.
        * include/tr1/tuple_iterate.h: Iteration file for tuple.

2005-03-31  Douglas Gregor  <doug.gregor@gmail.com>

        * include/Makefile.am (tr1_headers): Add bind and mu repetition
        headers and reference_wrapper<> forwarding header.
        * include/Makefile.in: Regenerate.
        * include/tr1/bind_iterate.h: Implementation of function call
        operators for the function object returned from tr1::bind().
        * include/tr1/bind_repeat.h: Bind-specific repetition header,
        akin to include/tr1/repeat.h.
        * include/tr1/functional (_Mem_fn): Bug fix: declare result
member
        template for use with result_of.
        (is_bind_expression): New.
        (is_placeholder): New.
        (_Placeholder): New. Placeholder type for bind.
        (_Mu): New. Implementation detail of bind.
        (_Bind, _Bind_result): New. Function objects returned by bind.
        (_GLIBCXX_JOIN): New. Required to create bind placeholders.
        * include/tr1/functional_iterate.h (_Bind, _Bind_result, bind):
        New. Implementation of tr1::bind.
        * include/tr1/mu_iterate.h (_Mu): result template and operator()
        for the _Mu helper to bind.
        * include/tr1/ref_fwd.h (reference_wrapper): Forward declaration
        used by tuple header.
        (ref): Ditto.
        (cref): Ditto.
        * include/tr1/repeat.h: Add bind-specific repetition macros.
        * include/tr1/tuple: Use reference_wrapper forwarding header for
        initial definitions, then include <tr1/functional> at the end, to
        make the circular dependencies work.
        (tie): Support zero-argument tie() function.
        * testsuite/tr1/3_function_objects/bind/all_bound.cc: New test of
        bind() functionality with parameters bound.
        * testsuite/tr1/3_function_objects/bind/nested.cc: New test of
        nested bind() expressions.
        * testsuite/tr1/3_function_objects/bind/placeholders.cc: New test
        of bind() placeholders.
        * testsuite/tr1/3_function_objects/bind/ref.cc: New test of bind()
        with arguments bound via reference_wrapper<>.
        * scripts/gen_includers.pl: Generate the repetitive part of
	include/tr1/repeat.h.
	* scripts/gen_bind_includers.pl: Generate the repetitive part of
	include/tr1/bind_repeat.h.

From-SVN: r97361
2005-04-01 03:35:59 +00:00
Paolo Carlini cff001b2e8 type_traits (is_polymorphic): Don't forget the virtual destructor, thus avoiding warnings.
2005-03-07  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits (is_polymorphic): Don't forget
	the virtual destructor, thus avoiding warnings.
	* testsuite/testsuite_tr1.h (class AbstractClass,
	class PolymorphicClass): Likewise.

2005-03-07  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_complex.h (pow(const complex<_Tp>&,
	const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
	__y.__rep()) or __complex_pow(__x, __y) depending on the macro
	_GLIBCXX_USE_C99_COMPLEX.

From-SVN: r96048
2005-03-07 22:22:35 +00:00
Paolo Carlini 442dca704c type_traits: Implemenet is_polymorphic.
2005-03-03  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implemenet is_polymorphic.
	(is_empty): Minor tweaks.
	* testsuite/testsuite_tr1.h: Add test types.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_polymorphic/is_polymorphic.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_polymorphic/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_union_or_class/is_union_or_class.cc: Add tests.

From-SVN: r95829
2005-03-03 13:52:20 +00:00
Paolo Carlini 9e38f7028f type_traits: Add the trivial is_union and is_class; add the __is_union_or_class extension.
2005-02-25  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Add the trivial is_union and is_class;
	add the __is_union_or_class extension.
	(is_enum, is_empty): Use the latter.
	* include/tr1/type_traits_fwd.h: Add __is_union_or_class.
	* testsuite/testsuite_tr1.h: Add UnionType; trivial formatting
	fixes.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_union_or_class/is_union_or_class.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_union_or_class/typedefs.cc: Likewise.

From-SVN: r95541
2005-02-25 18:17:06 +00:00
Douglas Gregor 0179f2c632 TR1 mem_fn and function support
From-SVN: r95486
2005-02-24 01:16:08 +00:00
Paolo Carlini c150a271b1 type_traits: Implement is_convertible.
2005-02-23  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_convertible.
	* testsuite/tr1/4_metaprogramming/relationships_between_types/
	is_convertible/is_convertible.cc: New.
	* testsuite/tr1/4_metaprogramming/relationships_between_types/
	is_convertible/typedefs.cc: Likewise.
	* testsuite/testsuite_tr1.h: Add class DerivedType.

	* include/tr1/type_traits (is_function): Don't mistake references
	to function types for function types.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_function/is_function.cc: Add testcase.

From-SVN: r95458
2005-02-23 17:23:44 +00:00
Paolo Carlini f8023b7846 type_traits: Implement is_abstract, by exploiting the resolution of DR core/337.
2005-01-28  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_abstract, by exploiting the
	resolution of DR core/337.
	* testsuite/testsuite_tr1.h: Add AbstractClass.
	* testsuite/tr1/4_metaprogramming/type_properties/is_abstract/
	is_abstract.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/is_abstract/
	typedefs.cc: Likewise.

	* include/tr1/type_traits (is_function): Rewrite, use the conversion
	F& -> F* instead, thus avoiding problems with abstract classes.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_function/is_function.cc: Add a test for tricky AbstractClass.

From-SVN: r94370
2005-01-28 13:29:41 +00:00
Paolo Carlini 36651afeec type_traits: Add has_trivial_copy, has_trivial_assign, has_nothrow_copy, has_nothrow_assign.
2004-12-30  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Add has_trivial_copy, has_trivial_assign,
	has_nothrow_copy, has_nothrow_assign.
	* testsuite/testsuite_tr1.h: Add test_copy_property and
	test_assign_property.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_nothrow_assign/has_nothrow_assign.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_nothrow_assign/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_nothrow_copy/has_nothrow_copy.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_nothrow_copy/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_assign/has_trivial_assign.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_assign/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_copy/has_trivial_copy.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_copy/typedefs.cc: Likewise.

From-SVN: r92745
2004-12-30 23:27:28 +00:00
Paolo Carlini a9e7ba8139 type_traits: Implement is_enum (usual caveats about the nasty consequences of c++/19076...).
2004-12-25  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_enum (usual caveats about
	the nasty consequences of c++/19076...).
	* testsuite/testsuite_tr1.h: Add ConvType.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_scalar/is_scalar.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_scalar/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_enum/is_enum.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_enum/typedefs.cc: Likewise.

From-SVN: r92604
2004-12-25 15:24:36 +00:00
Paolo Carlini db5ff2363d type_traits: Implement rank.
2004-12-11  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement rank.
	* testsuite/testsuite_tr1.h (test_property): Generalize to any
	value_type.
	(test_category, test_relationship): Slightly tweak consistently.
	* testsuite/tr1/4_metaprogramming/type_properties/rank/
	rank.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/rank/
	typedefs.cc: Likewise.

	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_compound/is_compound.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_compound/typedefs.cc: Likewise.

	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_arithmetic/is_arithmetic.cc: Tweak consistently with the
	testsuite_tr1.h changes.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_fundamental/is_fundamental.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_array/is_array.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_floating_point/is_floating_point.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_integral/is_integral.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_reference/is_reference.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_void/is_void.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/relationships_between_types/
	is_same/is_same.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/is_const/
	is_const.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/is_volatile/
	is_volatile.cc: Likewise.

From-SVN: r92033
2004-12-11 21:46:27 +00:00
Paolo Carlini d63a0e228c type_traits: Implement is_same, add_reference and remove_reference.
2004-12-08  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_same, add_reference and
	remove_reference.
	* testsuite/testsuite_tr1.h (test_relationship): New.
	* testsuite/tr1/4_metaprogramming/reference_modifications/
	add_reference.cc: New.
	* testsuite/tr1/4_metaprogramming/reference_modifications/
	remove_reference.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/relationships_between_types/
	is_same/is_same.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/relationships_between_types/
	is_same/typedefs.cc: Likewise.

	* testsuite/tr1/4_metaprogramming/type_properties/is_const/
	is_const.cc: Minor tweaks.
	* testsuite/tr1/4_metaprogramming/type_properties/is_volatile/
	is_volatile.cc: Likewise.

From-SVN: r91907
2004-12-08 16:33:51 +00:00
Paolo Carlini 0f910b4f4f type_traits: Implement is_const and is_volatile.
2004-12-07  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_const and is_volatile.
	* testsuite/testsuite_tr1.h (test_property): New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_const/is_const.c: New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_const/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_volatile/is_volatile.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_volatile/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_arithmetic/is_arithmetic.cc: Slightly tweak to use ClassType
	from testsuite_tr1.h.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_fundamental/is_fundamental.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_array/is_array.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_floating_point/is_floating_point.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_integral/is_integral.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_reference/is_reference.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_void/is_void.cc: Likewise.

From-SVN: r91808
2004-12-07 16:40:46 +00:00
Paolo Carlini 493bc46004 type_traits: New.
2004-12-04  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: New.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* testsuite/testsuite_tr1.h: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_arithmetic/is_arithmetic.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_arithmetic/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_fundamental/is_fundamental.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_fundamental/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/helper_classes/
	true_false_type.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/helper_classes/
	true_false_type_typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/helper_classes/
	typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_array/is_array.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_array/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_floating_point/is_floating_point.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_floating_point/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_integral/is_integral.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_integral/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_void/is_void.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_void/typedefs.cc: Likewise.

From-SVN: r91723
2004-12-04 09:08:42 +00:00