Mark Mitchell
e7e9396544
re PR c++/9737 ([DR150] Partial template specialisation selection failure involving template parameter defaults)
...
PR c++/9737
* pt.c (coerce_template_template_parms): Do not templates with
excess default arguments to match template template parameters
with fewer parameters.
(coerce_template_parms): Add use_default_args parameter; use
default arguments only when true.
(lookup_template_class): Adjust call to coerce_template_parms.
(fn_type_unification): Likewise.
(unify): Likewise.
(get_bindings): Likewise.
(dependent_type_p): Add assertions.
PR c++/9737
* g++.dg/template/ttp15.C: New test.
* g++.dg/template/ttp16.C: Likewise.
* g++.dg/template/ttp17.C: Likewise.
* g++.old-deja/g++.pt/ttp36.C: Remove.
* g++.old-deja/g++.pt/ttp19.C: Likewise.
* g++.old-deja/g++.pt/ttp37.C: Likewise.
* g++.old-deja/g++.pt/ttp38.C: Likewise.
* g++.old-deja/g++.pt/ttp39.C: Likewise.
* g++.old-deja/g++.pt/ttp9.C: Likewise.
* g++.old-deja/g++.pt/ttp40.C: Likewise.
* g++.old-deja/g++.pt/ttp51.C: Likewise.
* g++.old-deja/g++.pt/ttp26.C: Likewise.
* g++.old-deja/g++.pt/ttp36.C: Likewise.
* testsuite/testsuite_tr1.h (test_property): New function.
* testsuite/tr1/4_metaprogramming/type_properties/extent/extent.cc
(test01)
From-SVN: r110693
2006-02-07 11:11:30 +00:00
Paolo Carlini
ab44b018f6
testsuite_tr1.h: Add missing include; use std::__are_same.
...
2006-01-14 Paolo Carlini <pcarlini@suse.de>
* testsuite/testsuite_tr1.h: Add missing include; use std::__are_same.
From-SVN: r109705
2006-01-14 20:59:41 +00:00
Paolo Carlini
90922b2d10
complex (arg, [...]): Add, implementing TR1, 8.1.9.
...
2006-01-13 Paolo Carlini <pcarlini@suse.de>
Howard Hinnant <hhinnant@apple.com>
* include/tr1/complex (arg, conj, imag, norm, polar, pow, real):
Add, implementing TR1, 8.1.9.
(__promote_2): New.
* include/tr1/common.h: New, provides __promote, __promote_2.
* include/Makefile.am: Add.
* include/Makefile.in: Regenerate.
* testsuite/testsuite_tr1.h (check_ret_type): New.
* testsuite/tr1/8_c_compatibility/complex/overloads_int.cc: New.
* testsuite/tr1/8_c_compatibility/complex/overloads_float.cc: New.
Co-Authored-By: Howard Hinnant <hhinnant@apple.com>
From-SVN: r109663
2006-01-13 09:45:57 +00:00
Paolo Carlini
516ebd4486
re PR libstdc++/24808 (is_object fails to compile with incomplete types)
...
2005-11-11 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24808
* include/tr1/type_traits (__is_abstract_helper): Rename to __in_array
(with complemented logic).
(is_function): Use it, don't use __conv_helper.
(is_abstract): Adjust.
(__conv_helper): Rename to __is_convertible_simple.
(is_convertible): Adjust.
* testsuite/testsuite_tr1.h (class IncompleteClass): Add.
* testsuite/tr1/4_metaprogramming/composite_type_traits/is_object/
24808.cc: New.
* testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/
24808.cc: Likewise.
* testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/
24808.cc: Likewise.
From-SVN: r106818
2005-11-12 00:19:24 +00:00
Kelley Cook
83f517994d
All files: Update FSF address.
...
2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
* All files: Update FSF address.
From-SVN: r103192
2005-08-17 02:28:44 +00:00
Paolo Carlini
4e5362a2a3
type_traits (has_trivial_copy, [...]): Adjust according to the resolution of TR1 issue 3.21.
...
2005-04-27 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits (has_trivial_copy, has_trivial_assign,
has_nothrow_copy, has_nothrow_assign): Adjust according to the
resolution of TR1 issue 3.21.
* testsuite/testsuite_tr1.h (test_copy_property,
test_assign_property): Remove.
* testsuite/tr1/4_metaprogramming/type_properties/
has_nothrow_assign/has_nothrow_assign.cc: Adjust.
* testsuite/tr1/4_metaprogramming/type_properties/
has_nothrow_copy/has_nothrow_copy.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_assign/has_trivial_assign.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_copy/has_trivial_copy.cc: Likewise.
From-SVN: r98829
2005-04-27 15:08:57 +00:00
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