stdcxx-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vi...@apache.org
Subject svn commit: r681820 [1/7] - in /stdcxx/trunk: ./ doc/ etc/config/src/ examples/include/ include/ include/loc/ include/rw/ src/ tests/containers/ tests/diagnostics/ tests/include/ tests/intro/ tests/localization/ tests/regress/ tests/src/ tests/strings/...
Date Fri, 01 Aug 2008 20:51:22 GMT
Author: vitek
Date: Fri Aug  1 13:51:17 2008
New Revision: 681820

URL: http://svn.apache.org/viewvc?rev=681820&view=rev
Log:
2008-08-01  Travis Vitek  <vitek@roguewave.com>

	Merge r671285, r671294, r671306, r671612, r671972, r672048, r672395,
	r672596, r672948, r673227, r673490, r673495, r673534, r673851, r673865,
	r675044, r675316, r675344, r675390, r675429, r675434, r675458, r675803,
	r675809, r675829, r676788, r677418, r677464, r677465, r677985, r678247,
	r678475, r678894, r678901, r678907, r678913, r678931, r680574, r681567
    from branches/4.3.x:


	2008-06-24  Travis Vitek  <vitek@roguewave.com>

	STDCXX-916
	* include/rw/_meta_arr.h (_RWSTD_REMOVE_EXTENT)
	(_RWSTD_REMOVE_ALL_EXTENTS): Add macros for type traits.
	* include/rw/_meta_cat.h (_RWSTD_IS_VOID, _RWSTD_IS_INTEGRAL)
	(_RWSTD_IS_FLOATING_POINT, _RWSTD_IS_ARRAY, _RWSTD_IS_UNION)
	(_RWSTD_IS_LVALUE_REFERENCE, _RWSTD_IS_RVALUE_REFERENCE)
	(_RWSTD_IS_CLASS, _RWSTD_IS_FUNCTION, _RWSTD_IS_MEMBER_OBJECT_PTR)
	(_RWSTD_IS_MEMBER_OBJECT_PTR): Ditto.
	* include/rw/_meta_comp.h (_RWSTD_IS_REFERENCE, _RWSTD_IS_OBJECT)
	(_RWSTD_IS_ARITHMETIC, _RWSTD_IS_FUNDAMENTAL, _RWSTD_IS_SCALAR)
	(_RWSTD_IS_MEMBER_POINTER, _RWSTD_IS_COMPOUND): Ditto.
	* include/rw/_meta_cv.h (_RWSTD_REMOVE_CONST, _RWSTD_REMOVE_CV)
	(_RWSTD_REMOVE_VOLATILE, _RWSTD_ADD_CONST, _RWSTD_ADD_VOLATILE)
	(_RWSTD_ADD_CV): Ditto.
	* include/rw/_meta_prop.h (_RWSTD_IS_CONST, _RWSTD_IS_VOLATILE)
	(_RWSTD_IS_STANDARD_LAYOUT, _RWSTD_IS_POD, _RWSTD_IS_ABSTRACT)
	(_RWSTD_IS_POLYMORPHIC, _RWSTD_IS_EMPTY, _RWSTD_HAS_TRIVIAL_CTOR)
	(_RWSTD_HAS_TRIVIAL_COPY, _RWSTD_HAS_TRIVIAL_ASSIGN)
	(_RWSTD_HAS_TRIVIAL_DTOR, _RWSTD_IS_TRIVIAL, _RWSTD_RANK)
	(_RWSTD_HAS_NOTHROW_CTOR, _RWSTD_HAS_NOTHROW_COPY)
	(_RWSTD_HAS_NOTHROW_ASSIGN, _RWSTD_HAS_VIRTUAL_DTOR)
	(_RWSTD_IS_SIGNED, _RWSTD_IS_UNSIGNED, _RWSTD_EXTENT_1)
	(_RWSTD_EXTENT_2): Ditto.
	* include/rw/_meta_ptr.h (_RWSTD_REMOVE_POINTER)
	(_RWSTD_ADD_POINTER): Ditto.
	* include/rw/_meta_ref.h (_RWSTD_ADD_RVALUE_REFERENCE)
	(_RWSTD_ADD_LVALUE_REFERENCE, _RWSTD_REMOVE_REFERENCE): Ditto.
	* include/rw/_meta_rel.h (_RWSTD_IS_SAME, _RWSTD_IS_BASE_OF)
	(_RWSTD_IS_CONVERTIBLE): Ditto.
	* include/rw/_meta_sign.h (_RWSTD_MAKE_SIGNED)
	(_RWSTD_MAKE_UNSIGNED): Ditto.


	2008-06-24  Travis Vitek  <vitek@roguewave.com>

	STDCXX-916
	* include/type_traits: Remove doxygen comments, leaving C++
	comments where appropriate.
	* include/rw/_meta_arr.h: Ditto.
	* include/rw/_meta_cat.h: Ditto.
	* include/rw/_meta_comp.h: Ditto.
	* include/rw/_meta_cv.h: Ditto.
	* include/rw/_meta_other.h: Ditto.
	* include/rw/_meta_prop.h: Ditto.
	* include/rw/_meta_ptr.h: Ditto.
	* include/rw/_meta_ref.h: Ditto.
	* include/rw/_meta_rel.h: Ditto.
	* include/rw/_meta_sign.h: Ditto.
	(_RWSTD_SHRT_SIZE): Fix spelling error.


	2008-06-24  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/tuple: Removed comments containing public API
	documentation in the interests implementing C++0x features as
	quickly as possible by saving time writing further documentation
	and dealing with documentation-related issues in the foreseeable
	future.
	* include/rw/_tuple.h: Likewise.
	* include/rw/_tuple_traits.h: Likewise.
	* include/rw/_forward.h: Likewise.
	* include/rw/_ref_wrap.h: Likewise.
	* doc/Doxyfile: Not needed for now.


	2008-06-25  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_meta_help.h (_RWSTD_BOOL_CONST): Add convenience
	macro for boolean constants.


	2008-06-26  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* tests/intro/17.names.cpp: C++0x `reference_wrapper' class
	template requires `type' member so replace `type' name with
	`!ERROR!' only when not building with C++0x extensions.


	2008-06-27  Travis Vitek  <vitek@roguewave.com>

	* tests/utilities/20.forward.cpp [_RWSTD_NO_EXT_CXX_0X]: Add
	guard to get test to compile and run when extension is not
	explicitly enabled. Include rw/_defs.h explicitly before using
	configuration macro to follow include policy.
	* tests/utilities/20.tuple.cnstr.cpp: Ditto.
	* tests/utilities/20.tuple.elem.cpp: Ditto.
	* tests/utilities/20.tuple.helpers.cpp: Ditto.
	* tests/utilities/20.meta.help.cpp: include rw/_defs.h explicitly
	in case rw_driver.h does not.
	* tests/utilities/20.meta.rel.cpp: Ditto.
	* tests/utilities/20.meta.trans.arr.cpp: Ditto.
	* tests/utilities/20.meta.trans.cv.cpp: Ditto.
	* tests/utilities/20.meta.trans.ptr.cpp: Ditto.
	* tests/utilities/20.meta.trans.ref.cpp: Ditto.
	* tests/utilities/20.meta.unary.comp.cpp: Ditto.
	* tests/utilities/20.meta.trans.other.cpp: Ditto. Move includes
	inside _RWSTD_NO_EXT_CXX_0X block.
	* tests/utilities/20.meta.trans.sign.cpp: Ditto.
	* tests/utilities/20.meta.unary.cat.cpp: Ditto.
	* tests/utilities/20.meta.unary.prop.cpp: Ditto.


	2008-06-27  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_ref_wrap.h: Convert internal namespace members to
	standard namespace members (at least until such a time when
	internal namespace members are actually needed).
	(reference_wrapper): Implemented basic constructors, operators,
	and accessors.  (No specializations, function inheritance,
	result_of, or invocation operators yet.)
	(ref, cref): Also implemented.
	* include/functional: Include <rw/_ref_wrap.h> header.
	(Internal header contains C++0x guards so it only gets compiled
	for C++0X code.)


	2008-06-28  Martin Sebor  <sebor@roguewave.com>

	* tests/utilities/20.meta.unary.prop.cpp (cfun_t, incomplete_t): New
	types used for testing.
	(test_is_const, test_is_volatile): Exercised incomplete_t, arrays
	with unknown bounds, functions with C++ and C language linkage,
	and pointers to member functions.
	(test_is_trivial): Exercised void.


	2008-06-30  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_forward.h: Add additional macro functions for
	consistency.  Use consistent comment format for standard section
	references.  Utilize type trait macro.  Other minor changes in
	copyright notice.
	* include/rw/_ref_wrap.h: Add standard section reference comment.
	Remove explicit template parameter names within class template.
	Add _RWSTD_ASSERT() statements where appropriate.  Replaced
	template parameter name with public typedef name inside class
	template.
	* include/rw/_tuple_traits.h: Removed.  Incorporated directly
	into <tuple> header.
	* include/rw/_tuple.h: Added internal tuple class template and
	make_tuple helpers.  Utilize _RWSTD_FORWARD() function macro.
	* include/tuple: Minor changes in header comment.  Moved internal
	members to <rw/_tuple.h> header.  Include <rw/_forward.h> and
	utilize _RWSTD_FORWARD() and _RWSTD_MOVE macro functions.
	Inherit class template `std::tuple' from internal `__rw_tuple'
	class template.  Reworked pair specialization to also inherit
	from internal tuple.  Add `_BaseU' macro definition for use in
	_RWSTD_STATIC_CAST where type contains commas (which won't work
	in static_cast when expanded).
	(tuple_element): Updated get helpers in std::tuple_element class
	template with internal type trait macros.  
	(get): Fixed.
	(make_tuple(), operator==, operator<): Implemented.
	* tests/utilities/20.tuple.cnstr.cpp: Updated previously broken
	tests.
	* tests/utilities/20.tuple.helpers.cpp: Minor changes (copyright
	notice).
	* tests/utilities/20.tuple.h: Same.
	* tests/utilities/20.tuple.creation.cpp: Added new test program
	for tuple creation helpers.
	* tests/utilities/20.tuple.rel.cpp: Added (outline of) new test
	program
	* tests/utilities/20.tuple.elem.cpp: Added more const/mutable
	tests.



	2008-07-01  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/tuple: Uncomment ctors that were temporarily commented
	out (and accidently checked in) due to forward/move semantics
	problem in make_tuple() with reference wrappers.
	* include/rw/_forward.h: Remove unnecessary _EXPORT macro.
	Define functions as inline.  Change `std' namespace to `_STD' in
	definition of _RWSTD_MOVE function macro.
	* include/rw/_tuple.h: Fix forward/move semantics for homogenous
	move ctor.
	* tests/utilities/20.tuple.h: Add tuple with reference type.
	* tests/utilities/20.tuple.cnstr.cpp: Added tests for tuples
	with reference types.  Added more tests for value move ctors.
	* tests/utilities/20.tuple.creation.cpp: Added two small tests
	for make_tuple() with reference wrappers.


	2008-07-02  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/tuple: Include internal type traits headers
	individually.
	* include/utility: Conditionally include C++0x header if
	corresponding macro is defined (and C++0x extension is enabled).
	* include/functional: Likewise.
	* include/rw/_meta_other.h: Include other necessary headers.
	* include/rw/_forward.h: Remove guards for C++0x extension.
	Reindent preprocessing directives appropriately.
	* include/rw/_ref_wrap.h: Likewise.  
	* include/rw/_tuple.h: Likewise.  Also forward declare reference
	wrapper class rather than including header.  Use _STD macro to
	qualify move() function.

	Incorporates some initial code review comments:
	http://www.nabble.com/Re%3A-Tuple-status-p18230401.html


	2008-07-02  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-948
	* include/functional:  Oops.  Used wrong name for C++0x macro
	guard.  Fixed.
	* include/utility: Likewise.


	2008-07-02  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/tuple: Use `_TypeT' and `_TypesT' template parameter
	names.  Add comment clarifying necessary static casts.  Use
	_RWSTD_SIZE_T type for index of tuple elements per LWG issue
	#755.
	* include/rw/_forward.h: More template parameter renaming.
	* include/rw/_ref_wrap.h: Likewise.
	* include/rw/_tuple.h: Likewise.

	Incorporates more initial code review comments:
	http://www.nabble.com/Re%3A-Tuple-status-p18230401.html


	2008-07-03  Travis Vitek  <vitek@roguewave.com>

	* include/functional [_RWSTD_NO_EXT_CXX_0X]: Move <rw/_ref_wrap.h>
	include into conditional block to avoid problems compiling test
	17.names.cpp


	2008-07-03  Travis Vitek  <vitek@roguewave.com>

	* tests/utilities/20.tuple.cnstr.cpp [_RWSTD_NO_RVALUE_REFERENCES]:
	Disable body of test if _RWSTD_NO_EXT_CXX_0X is not defined but tuples
	are unavailable due to insufficient compiler support.
	(run_test) [_RWSTD_NO_RVALUE_REFERENCES, _RWSTD_NO_EXT_CXX_0X]: Display
	descriptive warning explaining why test is disabled.
	* tests/utilities/20.tuple.helpers.cpp: Ditto.
	* tests/utilities/20.tuple.creation.cpp: Ditto.
	* tests/utilities/20.tuple.elem.cpp: Ditto.
	* tests/utilities/20.tuple.rel.cpp: Ditto.
	* tests/utilities/20.forward.cpp (run_test): Run test_identity() even
	when rvalue references are not supported. Display descriptive warning
	explaining why parts of test are disabled.


	2008-07-08  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/tuple: Second parameter in value move ctor of pair
	specialization missing rvalue reference.
	(make_tuple, get, relational operators): Explicitly declare
	as inline functions.
	(tie): Implemented.
	* include/rw/_tuple.h: Fix move semantics in heterogenous move
	assignment operator.
	(__rw_ignore): Add assignment operator to ignore all values.
	* tests/utilities/20.tuple.cnstr.cpp: Added V&V for tuple
	state and invariants.  Manually inspected proper construction
	of all test tuples.  Updated/corrected/added tests as necessary.
	* tests/utilities/20.tuple.creation.cpp: Added simple tie()
	test.
	* tests/utilities/20.tuple.h: Minor stylistic changes.
	* tests/utilities/20.tuple.helpers.cpp: Same.


	2008-07-09  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* tests/utilities/20.tuple.cnstr.cpp (verify_tuple): Fixed
	assertions from float/double conversions.
	* tests/tr1.util, tests/tr1.c99: Removed unused directories.


	2008-07-09  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_tuple.h (__rw_ignore::operator=): Simplify
	defininition of operator.


	2008-07-09  Martin Sebor  <sebor@roguewave.com>

	* include/rw/_select.h (__rw_same_type): Renamed from __rw_is_same
	to avoid conflicts with <rw/_meta_rel.h>.
	* include/rw/_ioinsert.h (__rw_insert): Used __rw_same_type rather
	than __rw_is_same.


	2008-07-09  Martin Sebor  <sebor@roguewave.com>

	* include/queue (typename): Replaced uses of the _TYPENAME macro
	with the now universally supported C++ keyword.
	* include/fstream: Same.
	* include/set: Same.
	* include/list: Same.
	* include/bitset.cc: Same.
	* include/string: Same.
	* include/streambuf.cc: Same.
	* include/ostream.cc: Same.
	* include/map: Same.
	* include/valarray: Same.
	* include/streambuf: Same.
	* include/loc/_money_put.cc: Same.
	* include/loc/_messages.cc: Same.
	* include/loc/_num_put.cc: Same.
	* include/loc/_ctype.cc: Same.
	* include/loc/_numpunct.h: Same.
	* include/loc/_time_get.cc: Same.
	* include/loc/_money_get.cc: Same.
	* include/loc/_num_get.cc: Same.
	* include/loc/_time_put.cc: Same.
	* include/algorithm.cc: Same.
	* include/ostream: Same.
	* include/functional: Same.
	* include/vector.cc: Same.
	* include/type_traits: Same.
	* include/fstream.cc: Same.
	* include/istream.cc: Same.
	* include/deque.cc: Same.
	* include/stack: Same.
	* include/string.cc: Same.
	* include/list.cc: Same.
	* include/istream: Same.
	* include/vector: Same.
	* include/deque: Same.
	* include/bitset: Same.
	* include/algorithm: Same.
	* include/sstream: Same.
	* include/array: Same.
	* include/rw/_defs.h: Same.
	* include/rw/_tree.cc: Same.
	* include/rw/_iterbase.h: Same.
	* include/rw/_select.h: Same.
	* include/rw/_tuple.h: Same.
	* include/rw/_iterator.h: Same.
	* include/rw/_basic_ios.h: Same.
	* include/rw/_specialized.h: Same.
	* include/rw/_ioinsert.cc: Same.
	* include/rw/_tree.h: Same.
	* include/rw/_stringio.cc: Same.
	* include/rw/_strref.h: Same.
	* include/rw/_streamiter.h: Same.
	* include/rw/_forward.h: Same.
	* include/rw/_autoptr.h: Same.
	* include/rw/_smartptr.h: Same.
	* include/rw/_funcbase.h: Same.
	* include/rw/_typetraits.h: Same.
	* include/rw/_allocator.h: Same.
	* include/rw/_ioiter.h: Same.
	* include/rw/_algobase.h: Same.
	* include/sstream.cc: Same.
	* include/tuple: Same.
	* src/collate.cpp: Same.
	* examples/include/examples.h: Same.
	* tests/containers/23.bitset.cpp: Same.
	* tests/utilities/20.meta.help.cpp: Same.
	* tests/utilities/20.auto.ptr.cpp: Same.
	* tests/utilities/20.meta.trans.other.cpp: Same.
	* tests/include/rw_testdefs.h: Same.

	* include/rw/_defs.h (_TYPENAME): Removed macro #definition.
	* include/vector [!_RWSTD_NO_TYPENAME] (typename): Removed macro
	#definition.
	* examples/include/examples.h: Same.
	* tests/include/rw_testdefs.h: Same.
	* etc/config/src/DEPENDENT_TEMPLATE.cpp: Same.
	* etc/config/src/NONDEDUCED_CONTEXT.cpp: Same.
	* etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp: Same.
	* etc/config/src/TYPENAME.cpp: Deleted.
	* README (_TYPENAME): Same.


	2008-07-09  Martin Sebor  <sebor@roguewave.com>

	* include/tuple (explicit): Replaced uses of the _EXPLICIT macro
	with the universally supported C++ keyword.
	* include/iomanip: Same.
	* include/loc/_locale.h: Same.
	* include/loc/_moneypunct.h: Same.
	* include/loc/_messages.h: Same.
	* include/loc/_numpunct.h: Same.
	* include/loc/_facet.h: Same.
	* include/loc/_collate.h: Same.
	* include/loc/_money_get.h: Same.
	* include/loc/_time_get.h: Same.
	* include/loc/_num_get.h: Same.
	* include/loc/_money_put.h: Same.
	* include/loc/_ctype.h: Same.
	* include/loc/_time_put.h: Same.
	* include/loc/_num_put.h: Same.
	* include/loc/_codecvt.h: Same.
	* include/map: Same.
	* include/rw/_basic_ios.h: Same.
	* include/rw/_iosfailure.h: Same.
	* include/rw/_iterator.h: Same.
	* include/rw/_smartptr.h: Same.
	* include/rw/_rawiter.h: Same.
	* include/rw/_tuple.h: Same.
	* include/rw/_autoptr.h: Same.
	* include/rw/_exception.h: Same.
	* include/bitset: Same.
	* include/set: Same.
	* include/functional: Same.
	* include/istream: Same.
	* include/stack: Same.
	* include/string: Same.
	* include/complex: Same.
	* include/ostream: Same.
	* include/sstream: Same.
	* include/valarray: Same.
	* include/vector: Same.
	* include/stdexcept: Same.
	* include/deque: Same.
	* include/list: Same.
	* include/strstream: Same.
	* include/queue: Same.
	* include/fstream: Same.
	* src/podarray.h: Same.
	* tests/localization/22.locale.synopsis.cpp: Same.
	* tests/containers/23.deque.modifiers.cpp: Same.
	* tests/containers/23.bitset.cpp: Same.
	* tests/diagnostics/19.std.exceptions.cpp: Same.
	* tests/utilities/20.function.objects.cpp: Same.

	* etc/config/src/EXPLICIT.cpp: Deleted test.

	* include/rw/_defs.h (_EXPLICIT): Removed macro #definition.
	
	* tests/containers/23.deque.modifiers.cpp (_RWSTD_NO_EXPLICIT):
	Removed conditional.
	* tests/containers/23.bitset.cpp: Same.
	* tests/utilities/20.function.objects.cpp: Same.


	2008-07-10  Martin Sebor  <sebor@roguewave.com>

	STDCXX-990
	* include/rw/_defs.h [2 < __GNUG__](_RWSTD_VA_COPY): Unconditionally
	defined to gcc's __builtin_va_copy() to avoid errors due to potential
	configuration differences (e.g., after configuring in C++ 1998 mode
	and compiling with the -std=c++0x option).


	2008-07-10  Martin Sebor  <sebor@roguewave.com>

	* include/rw/_config-gcc.h [gcc >= 4.3 && __GXX_EXPERIMENTAL_CXX0X__]
	(_RWSTD_NO_VARIADIC_TEMPLATES, _RWSTD_NO_RVALUE_REFERENCES): Undefined
	to make it possible to use C++ 0x library extensions even in builds
	configured w/o C++ 0x extensions enabled in the compiler.
	(_RWSTD_EXT_CXX_0X): #defined in response to either of the -std=c++0x
	or -std=gnu++0x options.


	2008-07-14  Martin Sebor  <sebor@roguewave.com>

	* etc/config/src/INITIALIZER_LIST.cpp: New config test to determine
	whether the C++ 0x class template std::initializer_list is supported.


	2008-07-16  Travis Vitek  <vitek@roguewave.com>

	* tests/utilities/20.meta.unary.prop.cpp: Add empty throw spec to
	help convince eccp-3.10 that functions won't throw.


	2008-07-16  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* tests/include/20.tuple.h: Remove commented member function.


	2008-07-16  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* tests/utilities/20.tuple.cnstr.cpp: Simplify random character
	generation.


	2008-07-18  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_tuple.h (operator==): Minor formatting change.
	(operator<): Fixed lexicographical comparison logic.
	* tests/utilities/20.tuple.h: Remove global tuple typedefs and
	unused output opeator<<.
	* tests/utilities/20.tuple.cnstr.cpp: Replaced typedefs with
	explicit tuple types.  Added TUPLE macros where tuple types
	containing commas are used as function macro arguments.
	* tests/utilities/20.tuple.creation.cpp: Same.
	* tests/utilities/20.tuple.elem.cpp: Same.
	* tests/utilities/20.tuple.helpers.cpp: Same.
	* tests/utilities/20.tuple.rel.cpp: Same.  Also added more tests
	(which uncovered broken `operator<') and concise TEST() function
	macro wrapper.


	2008-07-19  Martin Sebor  <sebor@roguewave.com>

	* tests/utilities/20.meta.unary.nothrow.cpp: New test exercising
	just the has_nothrow_xxx traits (so far has_nothrow_copy_constructor
	only).


	2008-07-21  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-808
	* tests/regress/27.streambuf.buffer.stdcxx-808.cpp: Add
	regression test case that has failed in previous releases.


	2008-07-22  Travis Vitek  <vitek@roguewave.com>

	STDCXX-1002
	* include/rw/_meta_prop.h [__SUNPRO_CC]: Work around sunpro-5.9
	detecting cv-qualifiers on array types.


	2008-07-22  Travis Vitek  <vitek@roguewave.com>

	STDCXX-1001
	* include/rw/_meta_arr.h [__IBMCPP__]: Conditionally compile out
	definitions of traits that are partial specializations of unbound array
	types to avoid issues on vacpp-9.0.
	* include/rw/_meta_cat.h: Ditto.
	* include/rw/_meta_prop.h: Ditto.


	2008-07-22  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-808
	* tests/regress/27.streambuf.buffer.stdcxx-808.cpp: Add file
	header comment.


	2008-07-22  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-978
	* README: Removed _RWSTD_NO_MEMBER_TEMPLATES section.

	* etc/config/src/MEMBER_TEMPLATE_OVERLOAD.cpp: Removed config
	test.  (Assume required compiler support for member templates
	in all subsequent releases.)
	* etc/config/src/MEMBER_TEMPLATES.cpp: Same.
	* etc/config/src/implicit_inclusion_imp.h: Removed #if
	directives and code compiled when no member templates supported.
	* etc/config/src/IMPLICIT_INCLUSION.cpp: Same.
	* etc/config/src/extern_template_imp.h: Same.
	* etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp: Same.
	* etc/config/src/extern_template_imp.cpp: Same.
	* etc/config/src/implicit_inclusion_imp.cc: Same.

	* include/bitest [_RWSTD_NO_MEMBER_TEMPLATES]: Removed #if
	directives leaving code compiled when macro is not defined and
	removing (unused) code that is compiled when macro is defined.
	* include/complex: Same.
	* include/deque: Same.
	* include/deque.cc: Same.
	* include/list: Same.
	* include/list.cc: Same.
	* include/set: Same.
	* include/string: Same.
	* include/string.cc: Same.
	* include/vector: Same.
	* include/vector.cc: Same.

	* src/vecbool.cpp [_RWSTD_NO_MEMBER_TEMPLATES]: Removed
	unused code compiled when no member templates supported.

	* tests/utilities/20.auto.ptr.cpp [_RWSTD_NO_MEMBER_TEMPLATES]:
	Removed #if directives.  (Most code was already being compiled.
	Two directives were not but the code appears harmless.)
	* tests/containers/23.bitset.cpp: Same.
	* tests/localization/22.locale.synopsis.cpp: Same.
	* tests/strings/21.string.exceptions.cpp: Same.

	* examples/include/stocks.h: Removed unused code.


    2008-07-22  Travis Vitek  <vitek@roguewave.com>

	* include/type_traits [_RWSTD_NO_ALIGN_TRAITS]: Conditionally remove
	traits that deal with alignment as there is a good chance they will
	be removed from the draft.
	* include/rw/_defs.h: Define _RWSTD_NO_ALIGN_TRAITS if one or more of
	the alignment helper macros is not provided.
	* include/rw/_meta_prop.h: Stop defining _TT_ macros in workarounds.
	Add fallback for alignment_of<>. Temporarily remove msvc-8.0 workarounds.
	* include/rw/_meta_other.h: Simplify implementation of aligned_storage
	and aligned_union traits.
	* include/rw/_config-acc.h: Update comment after guard macro.
	* include/rw/_config-gcc.h: Remove _RWSTD_EXT_CXX_0X macro.
	* include/rw/_config-eccp.h: Disable a few built-in traits.
	* include/rw/_config.h: Remove _RWSTD_EXT_CXX_0X macro.
	* tests/include/rw/rw_testdefs.h: Enable strict conformance testing for
	next version of EDG C++ and G++.
	* tests/utilities/20.meta.trans.other.cpp (test_aligned_storage):
	Disable testing aligned_storage<> and aligned_union<> if compiler
	support is unavailable or disabled.
	* tests/utilities/20.meta.unary.nothrow.cpp (run_test): Move test body
	to new function.
	(test_has_nothrow_copy): Add new function. Conditionally disable tests
	for types that require rvalue-references or variadic template support.
	Conditionally disable test when compiler support is unavailable.
	* tests/utilities/20.meta.unary.cat.cpp (test_trait): Fix assert to
	display correct line number. Update warning message.
	(test_is_union): Conditionally disable test when compiler support is
	unavailable.
	* tests/utilities/20.meta.unary.prop.cpp: Conditionally disable parts
	of tests that require compiler support. Add assertsions to several of
	the test_has_trivial_* and test_has_nothrow_* tests. Expect traits
	has_trivial_assign, has_trivial_copy, has_nothrow_assign and
	has_nothrow_copy to fail for array types.
	(test_alignment_of): Add tests for alignment_of. 
	* tests/utilities/20.meta.unary.rel.cpp: Append a `t' to a few
	internal test class names.
	(test_is_base_of): Disable portion of test if required support
	is not available.


	2008-07-28  Travis Vitek  <vitek@roguewave.com>

	* tests/src/thread.cpp [__EDG__]: Disable error for use of long long
	in pthreadtypes.h system header.


	2008-07-31  Martin Sebor  <sebor@roguewave.com>

	* tests/src/thread.cpp [_RWSTD_POSIX_THREADS]: Simplified
	preprocessor conditional logic introduced in rev 680574.


------------------------------------------------------------------------
r675050 | vitek | 2008-07-08 23:25:19 +0000 (Tue, 08 Jul 2008) | 82 lines

2008-07-09  Travis Vitek  <vitek@roguewave.com>

	STDCXX-916
	* include/rw/_meta_help.h: Remove doxygen tags from comments.
	* include/rw/_meta_prop.h: Reduce lines to 76 characters or
	less where necessary.
	[_MSC_VER]: Simplify workaround for broken __is_pod() and
	__is_empty().
	[!_RWSTD_TT_IS_STANDARD_LAYOUT]: Change fallback for the
	__rw_is_standard_layout<> trait to be more reliable.
	[!_RWSTD_TT_IS_EMPTY]: Change fallback for __rw_is_empty<>
	trait to be more reliable.
	[!_RWSTD_TT_IS_POLYMORPHIC]: Add fallback to detect polymorphic
	class types when compiler support is not available.
	[!_RWSTD_TT_IS_ABSTRACT]: Add fallback to detect abstract
	class types when compiler support is not available.
	[!_RWSTD_TT_HAS_TRIVIAL_CTOR]: Add fallback to detect types
	that have a trivial constructor when compiler support is not
	available.
	[!_RWSTD_TT_HAS_TRIVIAL_COPY]: Add fallback to detect types
	that have a trivial copy constructor when compiler support is
	not available.
	[!_RWSTD_TT_HAS_TRIVIAL_ASSIGN]: Add fallback to detect types
	that have a trivial assignment operator when compiler support
	is not available.
	[!_RWSTD_TT_HAS_TRIVIAL_DTOR]: Add fallback to detect types
	that have a trivial destructor when compiler support is not
	available.
	[!_RWSTD_TT_HAS_NOTHROW_CTOR]: Add fallback to detect types
	that have a nothrow constructor when compiler support is not
	available.
	[!_RWSTD_TT_HAS_NOTHROW_COPY]: Add fallback to detect types
	that have a nothrow copy constructor when compiler support is
	not available.
	[!_RWSTD_TT_HAS_NOTHROW_ASSIGN]: Add fallback to detect types
	that have a nothrow assignment operator when compiler support
	is not available.
	[!_RWSTD_TT_HAS_VIRTUAL_DTOR]: Add fallback to detect types
	that have a virtual destructor when compiler support is not
	available. Currently tests that the type is polymorphic, which
	may not be entirely accurate.
	* include/rw/_meta_other.h [__GNUG__]: Use simpler implementation for
	__rw_aligned_storage<>. Reorder union members to make most strictly
	aligned member first.
	[_RWSTD_TT_MAX_ALIGNMENT]: Guard __rw_aligned_storage_impl<>
	specializations to prevent their use when the requested alignment
	is out of range.
	* include/rw/_meta_comp.h: Reduce lines to 76 characters or less.
	* include/rw/_meta_cat.h: Add __rw_is_class_or_union<> helper.
	[!_RWSTD_TT_IS_CLASS]: Add fallback to detect class types, using
	_RWSTD_TT_IS_UNION if available.
	[!_RWSTD_TT_IS_UNION]: Add fallback to detect union types, using
	_RWSTD_TT_IS_CLASS if available.
	[!_RWSTD_TT_IS_ENUM]: Add fallback to detect enum types when compiler
	support is not available.
	[!_RWSTD_TT_IS_FUNCTION]: Fix fallback for __rw_is_function to avoid
	compiler warnings on HP aCC 6.16.
	* include/rw/_meta_ref.h: Reduce lines to 76 characters or less.
	Remove use of _TYPENAME macro.
	* include/rw/_meta_rel.h: Fix __rw_is_convertible_impl to avoid 
	warning on HP aCC 6.16. Reduce lines to 76 characters or less.
	Remove use of _TYPENAME macro. Fix __rw_is_convertible_impl<> to
	avoid compiler warnings on HP aCC 6.16.
	[_RWSTD_TT_IS_CONVERTIBLE]: Guard header inclusion. Rename template
	parameters to _From and _To for clarity.
	[_RWSTD_TT_IS_BASE_OF]: Guard header inclusion. Change fallback for
	__rw_is_base_of to be more reliable. Rename template parameters to
	_Base and _Derived for clarity.
	* include/rw/_config-gcc.h [__GNUG__]: Reduce lines to 76 characters
	or less where necessary. Work around issue with gcc aligned attribute
	so we can use it to define __rw_aligned_storage<>.
	* include/rw/_config-acc.h [__HP_aCC]: Add macros _RWSTD_TT_ALIGN_OF,
	_RWSTD_TT_MAX_ALIGNMENT, and _RWSTD_TT_ALIGNED_POD.
	* include/rw/_config-msvc.h [_MSC_VER]: Remove comments about broken
	__is_pod(). Reduce lines to 76 characters or less where necessary.
	Provide accurate definition of _RWSTD_TT_MAX_ALIGNMENT.
	* tests/utilities/20.meta.trans.other.cpp: Add include for stddef.h.
	Use std::alignment_of<> instead of __alignof() for portability. Test
	default alignment for various aligned storage sizes.
	* tests/utilities/20.meta.rel.cpp (test_is_base_of): Fix test cases
	that were failing due to parameter ordering.

------------------------------------------------------------------------

Added:
    stdcxx/trunk/etc/config/src/INITIALIZER_LIST.cpp
      - copied unchanged from r676788, stdcxx/branches/4.3.x/etc/config/src/INITIALIZER_LIST.cpp
    stdcxx/trunk/tests/regress/27.streambuf.buffer.stdcxx-808.cpp
      - copied, changed from r678475, stdcxx/branches/4.3.x/tests/regress/27.streambuf.buffer.stdcxx-808.cpp
    stdcxx/trunk/tests/utilities/20.meta.unary.nothrow.cpp
      - copied, changed from r678247, stdcxx/branches/4.3.x/tests/utilities/20.meta.unary.nothrow.cpp
    stdcxx/trunk/tests/utilities/20.tuple.creation.cpp
      - copied, changed from r672948, stdcxx/branches/4.3.x/tests/utilities/20.tuple.creation.cpp
    stdcxx/trunk/tests/utilities/20.tuple.rel.cpp
      - copied, changed from r672948, stdcxx/branches/4.3.x/tests/utilities/20.tuple.rel.cpp
Removed:
    stdcxx/trunk/doc/Doxyfile
    stdcxx/trunk/etc/config/src/EXPLICIT.cpp
    stdcxx/trunk/etc/config/src/MEMBER_TEMPLATES.cpp
    stdcxx/trunk/etc/config/src/MEMBER_TEMPLATE_OVERLOAD.cpp
    stdcxx/trunk/etc/config/src/TYPENAME.cpp
    stdcxx/trunk/tests/tr1.c99/
    stdcxx/trunk/tests/tr1.util/
Modified:
    stdcxx/trunk/README
    stdcxx/trunk/etc/config/src/DEPENDENT_TEMPLATE.cpp
    stdcxx/trunk/etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp
    stdcxx/trunk/etc/config/src/IMPLICIT_INCLUSION.cpp
    stdcxx/trunk/etc/config/src/NONDEDUCED_CONTEXT.cpp
    stdcxx/trunk/etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp
    stdcxx/trunk/etc/config/src/extern_template_imp.cpp
    stdcxx/trunk/etc/config/src/extern_template_imp.h
    stdcxx/trunk/etc/config/src/implicit_inclusion_imp.cc
    stdcxx/trunk/etc/config/src/implicit_inclusion_imp.h
    stdcxx/trunk/examples/include/examples.h
    stdcxx/trunk/examples/include/stocks.h
    stdcxx/trunk/include/algorithm
    stdcxx/trunk/include/algorithm.cc
    stdcxx/trunk/include/array
    stdcxx/trunk/include/bitset
    stdcxx/trunk/include/bitset.cc
    stdcxx/trunk/include/complex
    stdcxx/trunk/include/deque
    stdcxx/trunk/include/deque.cc
    stdcxx/trunk/include/fstream
    stdcxx/trunk/include/fstream.cc
    stdcxx/trunk/include/functional
    stdcxx/trunk/include/iomanip
    stdcxx/trunk/include/istream
    stdcxx/trunk/include/istream.cc
    stdcxx/trunk/include/list
    stdcxx/trunk/include/list.cc
    stdcxx/trunk/include/loc/_codecvt.h
    stdcxx/trunk/include/loc/_collate.h
    stdcxx/trunk/include/loc/_ctype.cc
    stdcxx/trunk/include/loc/_ctype.h
    stdcxx/trunk/include/loc/_facet.h
    stdcxx/trunk/include/loc/_locale.h
    stdcxx/trunk/include/loc/_messages.cc
    stdcxx/trunk/include/loc/_messages.h
    stdcxx/trunk/include/loc/_money_get.cc
    stdcxx/trunk/include/loc/_money_get.h
    stdcxx/trunk/include/loc/_money_put.cc
    stdcxx/trunk/include/loc/_money_put.h
    stdcxx/trunk/include/loc/_moneypunct.h
    stdcxx/trunk/include/loc/_num_get.cc
    stdcxx/trunk/include/loc/_num_get.h
    stdcxx/trunk/include/loc/_num_put.cc
    stdcxx/trunk/include/loc/_num_put.h
    stdcxx/trunk/include/loc/_numpunct.h
    stdcxx/trunk/include/loc/_time_get.cc
    stdcxx/trunk/include/loc/_time_get.h
    stdcxx/trunk/include/loc/_time_put.cc
    stdcxx/trunk/include/loc/_time_put.h
    stdcxx/trunk/include/map
    stdcxx/trunk/include/ostream
    stdcxx/trunk/include/ostream.cc
    stdcxx/trunk/include/queue
    stdcxx/trunk/include/rw/_algobase.h
    stdcxx/trunk/include/rw/_allocator.h
    stdcxx/trunk/include/rw/_autoptr.h
    stdcxx/trunk/include/rw/_basic_ios.h
    stdcxx/trunk/include/rw/_config-acc.h
    stdcxx/trunk/include/rw/_config-eccp.h
    stdcxx/trunk/include/rw/_config-gcc.h
    stdcxx/trunk/include/rw/_config-msvc.h
    stdcxx/trunk/include/rw/_config-sunpro.h
    stdcxx/trunk/include/rw/_config.h
    stdcxx/trunk/include/rw/_defs.h
    stdcxx/trunk/include/rw/_exception.h
    stdcxx/trunk/include/rw/_forward.h
    stdcxx/trunk/include/rw/_funcbase.h
    stdcxx/trunk/include/rw/_ioinsert.cc
    stdcxx/trunk/include/rw/_ioiter.h
    stdcxx/trunk/include/rw/_iosfailure.h
    stdcxx/trunk/include/rw/_iterator.h
    stdcxx/trunk/include/rw/_iterbase.h
    stdcxx/trunk/include/rw/_meta_arr.h
    stdcxx/trunk/include/rw/_meta_cat.h
    stdcxx/trunk/include/rw/_meta_comp.h
    stdcxx/trunk/include/rw/_meta_cv.h
    stdcxx/trunk/include/rw/_meta_help.h
    stdcxx/trunk/include/rw/_meta_other.h
    stdcxx/trunk/include/rw/_meta_prop.h
    stdcxx/trunk/include/rw/_meta_ptr.h
    stdcxx/trunk/include/rw/_meta_ref.h
    stdcxx/trunk/include/rw/_meta_rel.h
    stdcxx/trunk/include/rw/_meta_sign.h
    stdcxx/trunk/include/rw/_rawiter.h
    stdcxx/trunk/include/rw/_ref_wrap.h
    stdcxx/trunk/include/rw/_select.h
    stdcxx/trunk/include/rw/_smartptr.h
    stdcxx/trunk/include/rw/_specialized.h
    stdcxx/trunk/include/rw/_streamiter.h
    stdcxx/trunk/include/rw/_stringio.cc
    stdcxx/trunk/include/rw/_strref.h
    stdcxx/trunk/include/rw/_tree.cc
    stdcxx/trunk/include/rw/_tree.h
    stdcxx/trunk/include/rw/_tuple.h
    stdcxx/trunk/include/rw/_tuple_traits.h
    stdcxx/trunk/include/rw/_typetraits.h
    stdcxx/trunk/include/set
    stdcxx/trunk/include/sstream
    stdcxx/trunk/include/sstream.cc
    stdcxx/trunk/include/stack
    stdcxx/trunk/include/stdexcept
    stdcxx/trunk/include/streambuf
    stdcxx/trunk/include/streambuf.cc
    stdcxx/trunk/include/string
    stdcxx/trunk/include/string.cc
    stdcxx/trunk/include/strstream
    stdcxx/trunk/include/tuple
    stdcxx/trunk/include/type_traits
    stdcxx/trunk/include/utility
    stdcxx/trunk/include/valarray
    stdcxx/trunk/include/vector
    stdcxx/trunk/include/vector.cc
    stdcxx/trunk/src/collate.cpp
    stdcxx/trunk/src/podarray.h
    stdcxx/trunk/src/vecbool.cpp
    stdcxx/trunk/tests/containers/23.bitset.cpp
    stdcxx/trunk/tests/containers/23.deque.modifiers.cpp
    stdcxx/trunk/tests/diagnostics/19.std.exceptions.cpp
    stdcxx/trunk/tests/include/rw_testdefs.h
    stdcxx/trunk/tests/intro/17.names.cpp
    stdcxx/trunk/tests/localization/22.locale.synopsis.cpp
    stdcxx/trunk/tests/src/thread.cpp
    stdcxx/trunk/tests/strings/21.string.exceptions.cpp
    stdcxx/trunk/tests/utilities/20.auto.ptr.cpp
    stdcxx/trunk/tests/utilities/20.forward.cpp
    stdcxx/trunk/tests/utilities/20.function.objects.cpp
    stdcxx/trunk/tests/utilities/20.meta.help.cpp
    stdcxx/trunk/tests/utilities/20.meta.rel.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.arr.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.cv.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.ptr.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.ref.cpp
    stdcxx/trunk/tests/utilities/20.meta.trans.sign.cpp
    stdcxx/trunk/tests/utilities/20.meta.unary.cat.cpp
    stdcxx/trunk/tests/utilities/20.meta.unary.comp.cpp
    stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp
    stdcxx/trunk/tests/utilities/20.operators.cpp
    stdcxx/trunk/tests/utilities/20.tuple.cnstr.cpp
    stdcxx/trunk/tests/utilities/20.tuple.elem.cpp
    stdcxx/trunk/tests/utilities/20.tuple.h
    stdcxx/trunk/tests/utilities/20.tuple.helpers.cpp

Modified: stdcxx/trunk/README
URL: http://svn.apache.org/viewvc/stdcxx/trunk/README?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/README (original)
+++ stdcxx/trunk/README Fri Aug  1 13:51:17 2008
@@ -1054,12 +1054,6 @@
      #defined when  explicit instantiation of member  templates is not
       supported.
 
-  o  _RWSTD_NO_MEMBER_TEMPLATES [abi, auto]
-
-     #defined  when member  templates are  not supported.  The library
-     tries to  provide alternative solutions  wherever possible.  Some
-     loss of functionality is inevitable. 
-
   o  _RWSTD_REENTRANT [abi, auto, lib]
 
      #defined  for multi-thread  safe  build types  12[sd] and  15[sd]
@@ -1179,10 +1173,6 @@
      the  public library  header  <new> do  not  include the  required
      exception specifications.
 
-  o  _RWSTD_NO_TYPENAME [auto]
-
-     #defined when they keyword typename isn't fully supported.
-
   o  _RWSTD_NO_COLLAPSE_STATIC_LOCALS [auto]
 
      #defined when  the compiler/linker fail to  collapse static local

Modified: stdcxx/trunk/etc/config/src/DEPENDENT_TEMPLATE.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/DEPENDENT_TEMPLATE.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/DEPENDENT_TEMPLATE.cpp (original)
+++ stdcxx/trunk/etc/config/src/DEPENDENT_TEMPLATE.cpp Fri Aug  1 13:51:17 2008
@@ -24,11 +24,6 @@
 
 #include "config.h"
 
-#ifdef _RWSTD_NO_TYPENAME
-
-#  define typename
-
-#endif
 
 template <class T>
 struct A

Modified: stdcxx/trunk/etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp (original)
+++ stdcxx/trunk/etc/config/src/EXTERN_MEMBER_TEMPLATE.cpp Fri Aug  1 13:51:17 2008
@@ -24,13 +24,6 @@
 
 #include "config.h"
 
-// establish dependencies on the config tests and define config
-// macros used in the header below (the are not autodetected
-// in headers)
-#ifdef _RWSTD_NO_MEMBER_TEMPLATES
-#  define NO_MEMBER_TEMPLATES
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
 // include a file containing the definition of a template
 // and an extern template directive referencing an explicit
 // instantiation of the same template in extern_template_imp.o

Modified: stdcxx/trunk/etc/config/src/IMPLICIT_INCLUSION.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/IMPLICIT_INCLUSION.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/IMPLICIT_INCLUSION.cpp (original)
+++ stdcxx/trunk/etc/config/src/IMPLICIT_INCLUSION.cpp Fri Aug  1 13:51:17 2008
@@ -30,8 +30,6 @@
 
     int result = si.foo ();
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
     // exercise implicit inclusion with member templates
     // to detect SunPro 5.7 bug #475
 
@@ -39,7 +37,5 @@
 
     result += sd.bar (result);
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
     return result;
 }

Modified: stdcxx/trunk/etc/config/src/NONDEDUCED_CONTEXT.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/NONDEDUCED_CONTEXT.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/NONDEDUCED_CONTEXT.cpp (original)
+++ stdcxx/trunk/etc/config/src/NONDEDUCED_CONTEXT.cpp Fri Aug  1 13:51:17 2008
@@ -24,10 +24,6 @@
 
 #include "config.h"
 
-#ifdef _RWSTD_NO_TYPENAME
-#  define typename
-#endif
-
 
 // T::I is not deducible directly, but can be
 // deduced if the T in const T* can (14.8.2.4, p3)

Modified: stdcxx/trunk/etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp (original)
+++ stdcxx/trunk/etc/config/src/STATIC_CONST_MEMBER_EXPR_CONST.cpp Fri Aug  1 13:51:17 2008
@@ -24,10 +24,6 @@
 
 #include "config.h"
 
-#ifdef _RWSTD_NO_TYPENAME
-#  define typename /* empty */
-#endif   // _RWSTD_NO_TYPENAME
-
 struct A { typedef int I; };
 
 template <class T>

Modified: stdcxx/trunk/etc/config/src/extern_template_imp.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/extern_template_imp.cpp?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/extern_template_imp.cpp (original)
+++ stdcxx/trunk/etc/config/src/extern_template_imp.cpp Fri Aug  1 13:51:17 2008
@@ -23,13 +23,6 @@
 
 #include "config.h"
 
-// establish dependencies on the config tests and define config
-// macros used in the header below (the are not autodetected
-// in headers)
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-#  define NO_MEMBER_TEMPLATES
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
 // explicitly instantiate the template defined in the header
 #define INSTANTIATE
 #include "extern_template_imp.h"

Modified: stdcxx/trunk/etc/config/src/extern_template_imp.h
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/extern_template_imp.h?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/extern_template_imp.h (original)
+++ stdcxx/trunk/etc/config/src/extern_template_imp.h Fri Aug  1 13:51:17 2008
@@ -47,18 +47,6 @@
         return bar ();
     }
 
-#if defined (NO_MEMBER_TEMPLATES)
-
-    int inline_member_template (int) const {
-        return 0;
-    }
-
-    int member_template (int) const {
-        return 0;
-    }
-
-#else   // if !defined (NO_MEMBER_TEMPLATES)
-
     template <class U>
     U inline_member_template (U) const {
         return U ();
@@ -66,9 +54,6 @@
 
     template <class U>
     U member_template (U) const;
-
-#endif   // NO_MEMBER_TEMPLATES
-
 };
 
 template <class T>
@@ -87,8 +72,6 @@
 #endif   // INSTANTIATE
 }
 
-#if !defined (NO_MEMBER_TEMPLATES)
-
 template <class T>
 template <class U>
 U S<T>::member_template (U) const
@@ -96,8 +79,6 @@
     return U ();
 }
 
-#endif   // NO_MEMBER_TEMPLATES
-
 
 #if defined (INSTANTIATE)
 

Modified: stdcxx/trunk/etc/config/src/implicit_inclusion_imp.cc
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/implicit_inclusion_imp.cc?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/implicit_inclusion_imp.cc (original)
+++ stdcxx/trunk/etc/config/src/implicit_inclusion_imp.cc Fri Aug  1 13:51:17 2008
@@ -28,13 +28,9 @@
     return T ();
 }
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
 template <class T>
 template <class U>
 U S<T>::bar (U u)
 {
     return u;
 }
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES

Modified: stdcxx/trunk/etc/config/src/implicit_inclusion_imp.h
URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/implicit_inclusion_imp.h?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/etc/config/src/implicit_inclusion_imp.h (original)
+++ stdcxx/trunk/etc/config/src/implicit_inclusion_imp.h Fri Aug  1 13:51:17 2008
@@ -26,13 +26,8 @@
 {
     T foo ();
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
     template <class U>
     U bar (U);
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
 };
 
 // the file containing the definitions of S<T>::foo() and S<T>::bar(),

Modified: stdcxx/trunk/examples/include/examples.h
URL: http://svn.apache.org/viewvc/stdcxx/trunk/examples/include/examples.h?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/examples/include/examples.h (original)
+++ stdcxx/trunk/examples/include/examples.h Fri Aug  1 13:51:17 2008
@@ -39,11 +39,6 @@
 #endif   // _RWSTD_NO_NAMESPACE
 
 
-#ifdef _RWSTD_NO_TYPENAME
-# define typename
-#endif   // _RWSTD_NO_TYPENAME
-
-
 #ifdef _RWSTD_NO_FOR_LOCAL_SCOPE
 #  define for if (0) ; else for
 #endif   // _RWSTD_NO_FOR_LOCAL_SCOPE

Modified: stdcxx/trunk/examples/include/stocks.h
URL: http://svn.apache.org/viewvc/stdcxx/trunk/examples/include/stocks.h?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/examples/include/stocks.h (original)
+++ stdcxx/trunk/examples/include/stocks.h Fri Aug  1 13:51:17 2008
@@ -153,12 +153,6 @@
 
    friend StockXchange::outStream&
    operator<< (StockXchange::outStream&, const StockXchange&);
- 
-private: 
-
-#ifdef _RWSTD_NO_MEMBER_TEMPLATES
-   std::locale::id &_C_get_id () const { return id; }
-#endif
 };
 
 

Modified: stdcxx/trunk/include/algorithm
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/algorithm?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/algorithm (original)
+++ stdcxx/trunk/include/algorithm Fri Aug  1 13:51:17 2008
@@ -177,12 +177,12 @@
 // 25.1.6 - Count [lib.alg.count]
 
 template <class _InputIter, class _TypeT>
-inline _TYPENAME iterator_traits<_InputIter>::difference_type
+inline typename iterator_traits<_InputIter>::difference_type
 count (_InputIter __first, _InputIter __last, const _TypeT &__val)
 {
     _RWSTD_ASSERT_RANGE (__first, __last);
 
-    _TYPENAME iterator_traits<_InputIter>::difference_type __n = 0;
+    typename iterator_traits<_InputIter>::difference_type __n = 0;
     for ( ; !(__first == __last); ++__first)
         if (*__first == __val)
             ++__n;
@@ -191,12 +191,12 @@
 
 
 template <class _InputIter, class _Predicate>
-inline _TYPENAME iterator_traits<_InputIter>::difference_type
+inline typename iterator_traits<_InputIter>::difference_type
 count_if (_InputIter __first, _InputIter __last, _Predicate __pred)
 {
     _RWSTD_ASSERT_RANGE (__first, __last);
 
-    _TYPENAME iterator_traits<_InputIter>::difference_type __n = 0;
+    typename iterator_traits<_InputIter>::difference_type __n = 0;
     for ( ; !(__first == __last); ++__first)
         if (!(__pred (*__first) == false))
             ++__n;

Modified: stdcxx/trunk/include/algorithm.cc
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/algorithm.cc?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/algorithm.cc (original)
+++ stdcxx/trunk/include/algorithm.cc Fri Aug  1 13:51:17 2008
@@ -596,7 +596,7 @@
     if (!(__first == __last)) {
 
 #ifndef _RWSTD_NO_CLASS_PARTIAL_SPEC
-        typedef _TYPENAME
+        typedef typename
             iterator_traits<_RandomAccessIter>::difference_type _DiffT;
 #else   // if defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
         typedef _RWSTD_PTRDIFF_T _DiffT;

Modified: stdcxx/trunk/include/array
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/array?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/array (original)
+++ stdcxx/trunk/include/array Fri Aug  1 13:51:17 2008
@@ -213,7 +213,7 @@
 
 
 template <class _TypeT, _RWSTD_SIZE_T _Size>
-inline _TYPENAME array<_TypeT, _Size>::reference
+inline typename array<_TypeT, _Size>::reference
 array<_TypeT, _Size>::
 operator[] (size_type __inx)
 {
@@ -231,7 +231,7 @@
   
 
 template <class _TypeT, _RWSTD_SIZE_T _Size>
-inline _TYPENAME array<_TypeT, _Size>::const_reference
+inline typename array<_TypeT, _Size>::const_reference
 array<_TypeT, _Size>::
 operator[] (size_type __inx) const
 {
@@ -249,7 +249,7 @@
   
 
 template <class _TypeT, _RWSTD_SIZE_T _Size>
-inline _TYPENAME array<_TypeT, _Size>::reference
+inline typename array<_TypeT, _Size>::reference
 array<_TypeT, _Size>::
 at (size_type __inx)
 {
@@ -263,7 +263,7 @@
     
 
 template <class _TypeT, _RWSTD_SIZE_T _Size>
-inline _TYPENAME array<_TypeT, _Size>::const_reference
+inline typename array<_TypeT, _Size>::const_reference
 array<_TypeT, _Size>::
 at (size_type __inx)  const
 {

Modified: stdcxx/trunk/include/bitset
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/bitset?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/bitset (original)
+++ stdcxx/trunk/include/bitset Fri Aug  1 13:51:17 2008
@@ -167,11 +167,11 @@
 
     // 23.3.5.1, p3
     template <class _CharT, class _Traits, class _Allocator>
-    _EXPLICIT
+    explicit
     bitset (const basic_string<_CharT, _Traits, _Allocator> &__str,
-            _TYPENAME basic_string<_CharT, _Traits,
+            typename basic_string<_CharT, _Traits,
                                    _Allocator>::size_type __pos = 0,
-            _TYPENAME basic_string<_CharT, _Traits,
+            typename basic_string<_CharT, _Traits,
                                    _Allocator>::size_type __n =
                                        _RWSTD_SIZE_MAX,
             _CharT __b0 = '0', _CharT __b1 = '1') {
@@ -187,7 +187,7 @@
 
     // 23.3.5.1, p3
     template <class _CharT, class _Traits, class _Allocator>
-    _EXPLICIT
+    explicit
     bitset (const basic_string<_CharT, _Traits, _Allocator> &__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             _CharT __b0 = '0', _CharT __b1 = '1') {
@@ -201,10 +201,9 @@
 
 
 #ifndef _RWSTD_NO_EXT_BITSET_CTOR_STRING
-#  ifndef _RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD
 
     // extension
-    _EXPLICIT
+    explicit
     bitset (const string &__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             char __b0 = '0', char __b1 = '1') {
@@ -214,10 +213,10 @@
                                    "size_t, size_t)"));
     }
 
-#    ifndef _RWSTD_NO_WCHAR_T
+#  ifndef _RWSTD_NO_WCHAR_T
 
     // extension
-    _EXPLICIT
+    explicit
     bitset (const wstring &__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             wchar_t __b0 = L'0', wchar_t __b1 = L'1') {
@@ -227,15 +226,14 @@
                                    "size_t, size_t)"));
     }
 
-#    endif   // _RWSTD_NO_WCHAR_T
-#  endif   // _RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD
+#  endif   // _RWSTD_NO_WCHAR_T
 #endif   // _RWSTD_NO_EXT_BITSET_CTOR_STRING
 
 
 #ifndef _RWSTD_NO_EXT_BITSET_CTOR_CHAR_ARRAY
 
     // extension
-    _EXPLICIT
+    explicit
     bitset (const char *__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             char __b0 = '0', char __b1 = '1') {
@@ -248,7 +246,7 @@
 #  ifndef _RWSTD_NO_WCHAR_T
 
     // extension
-    _EXPLICIT
+    explicit
     bitset (const wchar_t *__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             wchar_t __b0 = L'0', wchar_t __b1 = L'1') {
@@ -264,7 +262,7 @@
     // uses char_traits<CharT>::length() to compute the length of the string
     // and char_traits<CharT>::eq() to compare characters with `b0' and `b1'
     template <class _CharT>
-    _EXPLICIT
+    explicit
     bitset (const _CharT *__str,
             _RWSTD_SIZE_T __pos = 0, _RWSTD_SIZE_T __n = _RWSTD_SIZE_MAX,
             _CharT __b0 = '0', _CharT __b1 = '1') {
@@ -374,9 +372,7 @@
     // 23.3.5.2, p31
     unsigned long to_ulong () const;
 
-#if    !defined (_RWSTD_NO_MEMBER_TEMPLATES) \
-    && !defined (_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) \
-    && !defined (_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD)
+#if !defined (_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE)
 
     // 23.3.5.2, p33
     template <class _CharT, class _Traits, class _Allocator>
@@ -410,14 +406,14 @@
 
 #  endif   // !_NO_EXT_BITSET_TO_STRING
 
-#else   // if _MEMBER_TEMPLATES || _NO_TEMPLATE_ON_RETURN_TYPE || ...
+#else   // if _NO_TEMPLATE_ON_RETURN_TYPE
 
     // 23.3.5.2, p33
     string to_string (char = '0', char = '1') const;
 
 # define _RWSTD_BITSET_TO_STRING(ign1, ign2)  to_string ()
 
-#endif   // !_NO_MEMBER_TEMPLATES && !_NO_TEMPLATE_ON_RETURN_TYPE && ...
+#endif   // !_NO_TEMPLATE_ON_RETURN_TYPE
 
     // 23.3.5.2, p35
     _RWSTD_SIZE_T count () const _THROWS (()) {
@@ -563,9 +559,7 @@
 }
 
 
-#if    !defined (_RWSTD_NO_MEMBER_TEMPLATES) \
-    && !defined (_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) \
-    && !defined (_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD)
+#if !defined (_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE)
 
 // 23.3.5.2, p33
 template <_RWSTD_SIZE_T _Size>
@@ -583,7 +577,7 @@
     return __s;
 }
 
-#else   // _NO_MEMBER_TEMPLATES || _NO_TEMPLATE_ON_RETURN_TYPE ...
+#else   // _NO_TEMPLATE_ON_RETURN_TYPE
 
 // 23.3.5.2, p33
 template <_RWSTD_SIZE_T _Size>
@@ -600,7 +594,7 @@
     return __s;
 }
 
-#endif   // !_NO_MEMBER_TEMPLATES && !_NO_TEMPLATE_ON_RETURN_TYPE ...
+#endif   // !_NO_TEMPLATE_ON_RETURN_TYPE
 
 
 // 23.3.5.3, p1

Modified: stdcxx/trunk/include/bitset.cc
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/bitset.cc?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/bitset.cc (original)
+++ stdcxx/trunk/include/bitset.cc Fri Aug  1 13:51:17 2008
@@ -127,7 +127,7 @@
 {
     typedef _STD::basic_istream<_CharT, _Traits> _Istream;
 
-    _TYPENAME _Istream::iostate __err (__strm.goodbit);
+    typename _Istream::iostate __err (__strm.goodbit);
 
 
     _STD::bitset<_Size> __tmp;
@@ -137,14 +137,14 @@
     _TRY {
 
         // sentry may throw an exception
-        const _TYPENAME _Istream::sentry __ipfx (__strm);
+        const typename _Istream::sentry __ipfx (__strm);
 
         if (__ipfx) {
 
             // 23.3.5.3, p5 - extract at most _Size chars
 
             // get next char without extracting
-            _TYPENAME _Traits::int_type __c = __strm.rdbuf ()->sgetc ();
+            typename _Traits::int_type __c = __strm.rdbuf ()->sgetc ();
 
             for ( ; __bit; --__bit) {
 

Modified: stdcxx/trunk/include/complex
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/complex?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/complex (original)
+++ stdcxx/trunk/include/complex Fri Aug  1 13:51:17 2008
@@ -98,19 +98,6 @@
 }
 
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-#  define _RWSTD_MEMBER_TEMPLATE(name)  \
-          template <class _TypeX>       \
-          complex<value_type>& name (const complex<_TypeX> &__rhs)
-
-#else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-#  define _RWSTD_MEMBER_TEMPLATE(name)     \
-          complex<value_type>& name (const complex &__rhs)
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
-
 // 26.2.3 - complex specializations
 
 _RWSTD_SPECIALIZED_CLASS
@@ -124,12 +111,12 @@
       : _C_re (__re), _C_im (__im) { }
 
     // defined after the definition of the incomplete complex<double>
-    _EXPLICIT complex (const complex<double>&);
+    explicit complex (const complex<double>&);
     
 #ifndef _RWSTD_NO_LONG_DOUBLE
 
     // defined after the definition of the incomplete complex<long double>
-    _EXPLICIT complex (const complex<long double>&);
+    explicit complex (const complex<long double>&);
 
 #endif   // _RWSTD_NO_LONG_DOUBLE
 
@@ -150,28 +137,28 @@
 
 #endif   // _COMPILER_VERSION <= 730
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATE
-
     template <class _TypeT>
     complex& operator= (const complex<_TypeT>& __rhs) {
         return (_C_re = __rhs.real ()), (_C_im = __rhs.imag ()), *this;
     }
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATE
-    
-    _RWSTD_MEMBER_TEMPLATE (operator+=) {
+    template <class _TypeX>
+    complex<value_type>& operator+= (const complex<_TypeX> &__rhs) {
         return (_C_re += __rhs.real ()), (_C_im += __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator-=) {
+    template <class _TypeX>
+    complex<value_type>& operator-= (const complex<_TypeX> &__rhs) {
         return (_C_re -= __rhs.real ()), (_C_im -= __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator*=) {
+    template <class _TypeX>
+    complex<value_type>& operator*= (const complex<_TypeX> &__rhs) {
         return *this = *this * complex<value_type>(__rhs);
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator/=) {
+    template <class _TypeX>
+    complex<value_type>& operator/= (const complex<_TypeX> &__rhs) {
         return *this = *this / complex<value_type>(__rhs);
     }
 
@@ -217,7 +204,7 @@
 #ifndef _RWSTD_NO_LONG_DOUBLE
 
     // defined after the definition of the incomplete complex<long double>
-    _EXPLICIT complex (const complex<long double>&);
+    explicit complex (const complex<long double>&);
 
 #endif   // _RWSTD_NO_LONG_DOUBLE
 
@@ -238,28 +225,28 @@
 
 #endif   // _COMPILER_VERSION <= 730
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATE
-
     template <class _TypeT>
     complex& operator= (const complex<_TypeT>& __rhs) {
         return (_C_re = __rhs.real ()), (_C_im = __rhs.imag ()), *this;
     }
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATE
-    
-    _RWSTD_MEMBER_TEMPLATE (operator+=) {
+    template <class _TypeX>
+    complex<value_type>& operator+= (const complex<_TypeX> &__rhs) {
         return (_C_re += __rhs.real ()), (_C_im += __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator-=) {
+    template <class _TypeX>
+    complex<value_type>& operator-= (const complex<_TypeX> &__rhs) {
         return (_C_re -= __rhs.real ()), (_C_im -= __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator*=) {
+    template <class _TypeX>
+    complex<value_type>& operator*= (const complex<_TypeX> &__rhs) {
         return *this = *this * complex<value_type>(__rhs);
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator/=) {
+    template <class _TypeX>
+    complex<value_type>& operator/= (const complex<_TypeX> &__rhs) {
         return *this = *this / complex<value_type>(__rhs);
     }
 
@@ -316,19 +303,23 @@
         return _C_re;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator+=) {
+    template <class _TypeX>
+    complex<value_type>& operator+= (const complex<_TypeX> &__rhs) {
         return (_C_re += __rhs.real ()), (_C_im += __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator-=) {
+    template <class _TypeX>
+    complex<value_type>& operator-= (const complex<_TypeX> &__rhs) {
         return (_C_re -= __rhs.real ()), (_C_im -= __rhs.imag ()), *this;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator*=) {
+    template <class _TypeX>
+    complex<value_type>& operator*= (const complex<_TypeX> &__rhs) {
         return *this = *this * complex<value_type>(__rhs);
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator/=) {
+    template <class _TypeX>
+    complex<value_type>& operator/= (const complex<_TypeX> &__rhs) {
         return *this = *this / complex<value_type>(__rhs);
     }
 
@@ -341,15 +332,11 @@
 
 #endif   // _COMPILER_VERSION <= 730
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATE
-
     template <class _TypeT>
     complex& operator= (const complex<_TypeT>& __rhs) {
         return (_C_re = __rhs.real ()), (_C_im = __rhs.imag ()), *this;
     }
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATE
-
     complex& operator+= (value_type __rhs) {
         return _C_re += __rhs, *this;
     }
@@ -414,8 +401,6 @@
         return _C_re;
     }
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATE
-
     template <class _TypeU>
     complex (const complex<_TypeU>& __rhs)
         : _C_re (_RWSTD_STATIC_CAST (value_type, __rhs.real ())),
@@ -427,21 +412,23 @@
         return *this = complex (__rhs);
     }
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATE
-    
-    _RWSTD_MEMBER_TEMPLATE (operator+=) {
+    template <class _TypeX>
+    complex<value_type>& operator+= (const complex<_TypeX> &__rhs) {
         return *this = *this + __rhs;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator-=) {
+    template <class _TypeX>
+    complex<value_type>& operator-= (const complex<_TypeX> &__rhs) {
         return *this = *this - __rhs;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator*=) {
+    template <class _TypeX>
+    complex<value_type>& operator*= (const complex<_TypeX> &__rhs) {
         return *this = *this * __rhs;
     }
 
-    _RWSTD_MEMBER_TEMPLATE (operator/=) {
+    template <class _TypeX>
+    complex<value_type>& operator/= (const complex<_TypeX> &__rhs) {
         return *this = *this / __rhs;
     }
 

Modified: stdcxx/trunk/include/deque
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/deque?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/deque (original)
+++ stdcxx/trunk/include/deque Fri Aug  1 13:51:17 2008
@@ -58,8 +58,6 @@
 template <class _TypeT, class _Allocator = allocator<_TypeT> >
 class deque;
 
-#ifdef _RWSTD_NO_MEMBER_TEMPLATES
-
 // declarations of non-member function templates implementing
 // the functionality of deque member function templates
 
@@ -83,8 +81,6 @@
 void __rw_insert_range (deque<_TypeT, _Allocator>*, _DequeIter,
                         _BidirIter, _BidirIter, bidirectional_iterator_tag);
 
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
 
 template <class _TypeT, class _DiffT, class _Pointer,
           class _Reference, class _Allocator>
@@ -97,11 +93,11 @@
 public:
 
     typedef _Allocator                               allocator_type;
-    typedef _TYPENAME allocator_type::size_type      size_type;
-    typedef _TYPENAME _C_iter_base::value_type       value_type;
-    typedef _TYPENAME _C_iter_base::difference_type  difference_type;
-    typedef _TYPENAME _C_iter_base::pointer          pointer;
-    typedef _TYPENAME _C_iter_base::reference        reference;
+    typedef typename allocator_type::size_type      size_type;
+    typedef typename _C_iter_base::value_type       value_type;
+    typedef typename _C_iter_base::difference_type  difference_type;
+    typedef typename _C_iter_base::pointer          pointer;
+    typedef typename _C_iter_base::reference        reference;
 
     typedef random_access_iterator_tag               iterator_category;
     
@@ -110,7 +106,7 @@
     _C_mutable_iter;
 
     typedef _RWSTD_REBIND (allocator_type, value_type*) _C_node_alloc_type;
-    typedef _TYPENAME _C_node_alloc_type::pointer       _C_node_pointer;
+    typedef typename _C_node_alloc_type::pointer       _C_node_pointer;
 
     
     static size_type _C_bufsize () {
@@ -277,8 +273,8 @@
 operator- (const _RWSTD_DEQUE_ITER(1) &__x, const _RWSTD_DEQUE_ITER(2) &__y)
 {
     // _RWSTD_ASSERT_RANGE (__x, __y);
-    typedef _TYPENAME _RWSTD_DEQUE_ITER(1)::pointer _Pointer1;
-    typedef _TYPENAME _RWSTD_DEQUE_ITER(2)::pointer _Pointer2;
+    typedef typename _RWSTD_DEQUE_ITER(1)::pointer _Pointer1;
+    typedef typename _RWSTD_DEQUE_ITER(2)::pointer _Pointer2;
 
     if (_Pointer1 () == __x._C_cur && _Pointer2 () == __y._C_cur) {
         // __x and __y are end-iterator's of the empty deque's
@@ -356,12 +352,12 @@
 
     typedef _TypeT                                    value_type;
     typedef _Allocator                                allocator_type;
-    typedef _TYPENAME allocator_type::size_type       size_type;
-    typedef _TYPENAME allocator_type::difference_type difference_type;
-    typedef _TYPENAME allocator_type::pointer         pointer;
-    typedef _TYPENAME allocator_type::const_pointer   const_pointer;
-    typedef _TYPENAME allocator_type::reference       reference;
-    typedef _TYPENAME allocator_type::const_reference const_reference;
+    typedef typename allocator_type::size_type       size_type;
+    typedef typename allocator_type::difference_type difference_type;
+    typedef typename allocator_type::pointer         pointer;
+    typedef typename allocator_type::const_pointer   const_pointer;
+    typedef typename allocator_type::reference       reference;
+    typedef typename allocator_type::const_reference const_reference;
 
     typedef _RWSTD_ALLOC_TYPE (allocator_type, value_type) _C_value_alloc_type;
 
@@ -374,7 +370,7 @@
 
     typedef _RWSTD_REBIND (allocator_type, value_type*) _C_node_alloc_type;
 
-    typedef _TYPENAME _C_node_alloc_type::pointer       _C_node_pointer;
+    typedef typename _C_node_alloc_type::pointer       _C_node_pointer;
 
 #ifndef _RWSTD_NO_DEBUG_ITER
 
@@ -434,13 +430,13 @@
 
 #endif   // _RWSTD_NO_CLASS_PARTIAL_SPEC 
 
-    _EXPLICIT
+    explicit
     deque (const allocator_type &__alloc = allocator_type ())
       : allocator_type (__alloc) {
         _C_init ();
     }
 
-    _EXPLICIT
+    explicit
     deque (size_type __n, const_reference __x = value_type (), 
            const allocator_type &__alloc = allocator_type ())
         : allocator_type (__alloc) {
@@ -695,8 +691,6 @@
     // implements insert with repetition
     void _C_insert_n (const iterator&, size_type, const_reference);
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
     // implements range insert for BidirectionalIterators
     template <class _BidirIter>
     void _C_insert_range (iterator, _BidirIter, _BidirIter,
@@ -707,12 +701,6 @@
     void _C_insert_range (iterator, _InputIter, _InputIter,
                           input_iterator_tag);
 
-#else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-public:
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
     // implements range assign
     template <class _InputIter>
     void _C_assign (_InputIter __first, _InputIter __last, void*) {

Modified: stdcxx/trunk/include/deque.cc
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/deque.cc?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/deque.cc (original)
+++ stdcxx/trunk/include/deque.cc Fri Aug  1 13:51:17 2008
@@ -67,7 +67,7 @@
 
 
 template <class _TypeT, class _Allocator>
-_TYPENAME deque<_TypeT, _Allocator>::iterator 
+typename deque<_TypeT, _Allocator>::iterator 
 deque<_TypeT, _Allocator>::
 insert (iterator __it, const_reference __x)
 {
@@ -108,7 +108,7 @@
 
 
 template <class _TypeT, class _Allocator>
-_TYPENAME deque<_TypeT, _Allocator>::iterator 
+typename deque<_TypeT, _Allocator>::iterator 
 deque<_TypeT, _Allocator>::
 erase (iterator __it)
 {
@@ -138,7 +138,7 @@
     
 
 template <class _TypeT, class _Allocator>
-_TYPENAME deque<_TypeT, _Allocator>::iterator 
+typename deque<_TypeT, _Allocator>::iterator 
 deque<_TypeT, _Allocator>::
 erase (iterator __first, iterator __last)
 {
@@ -518,8 +518,6 @@
 }
 
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
 template <class _TypeT, class _Allocator>
 template <class _InputIter>
 void deque<_TypeT, _Allocator>::
@@ -529,18 +527,6 @@
 
     deque* const __self = this;
 
-#else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-template <class _TypeT, class _Allocator, class _InputIter>
-void
-__rw_assign_range (deque<_TypeT, _Allocator> *__self,
-                   _InputIter __first, _InputIter __last, input_iterator_tag)
-{
-    typedef deque<_TypeT, _Allocator> _Deque;
-    typedef _TYPENAME _Deque::iterator iterator;
-    
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
     _RWSTD_ASSERT_RANGE (__first, __last);
     _RWSTD_ASSERT (__self->_C_is_valid ());
 
@@ -586,8 +572,6 @@
 }
 
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
 template<class _TypeT, class _Allocator>
 template <class _InputIter>
 void deque<_TypeT, _Allocator>::
@@ -599,17 +583,6 @@
 
     _Deque* const __self = this;
 
-#else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-template <class _TypeT, class _Allocator, class _DequeIter, class _InputIter>
-void
-__rw_insert_range (deque<_TypeT, _Allocator> *__self, _DequeIter __it,
-                   _InputIter __first, _InputIter __last, input_iterator_tag)
-{
-    typedef deque<_TypeT, _Allocator> _Deque;
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
     _RWSTD_ASSERT_RANGE (__it, __self->end ());
     _RWSTD_ASSERT_RANGE (__first, __last);
 
@@ -640,8 +613,6 @@
 }
 
 
-// #ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
 // template<class _TypeT, class _Allocator>
 // template <class _FwdIter>
 // void deque<_TypeT, _Allocator>::
@@ -653,24 +624,11 @@
 
 //     _Deque* const __self = this;
 
-// #else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-// template <class _TypeT, class _Allocator, class _DequeIter, class _FwdIter>
-// void
-// __rw_insert_range (deque<_TypeT, _Allocator> *__self, _DequeIter __it,
-//                    _FwdIter __first, _FwdIter __last, forward_iterator_tag)
-// {
-//     typedef deque<_TypeT, _Allocator> _Deque;
-
-// #endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
 //     // implemented in terms of the Input Iterator overload
 //     _RWSTD_INSERT_RANGE (__it, __first, __last, input_iterator_tag ());
 // }
 
 
-#ifndef _RWSTD_NO_MEMBER_TEMPLATES
-
 template <class _TypeT, class _Allocator>
 template <class _BidirIter>
 void deque<_TypeT, _Allocator>::
@@ -682,22 +640,6 @@
 
     _Deque* const __self = this;
 
-#else   // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
-
-template <class _TypeT, class _Allocator, class _DequeIter, class _BidirIter>
-void
-__rw_insert_range (deque<_TypeT, _Allocator> *__self, _DequeIter __it,
-                   _BidirIter __first, _BidirIter __last,
-                   bidirectional_iterator_tag)
-
-{
-    typedef deque<_TypeT, _Allocator>         _Deque;
-    typedef _TYPENAME _Deque::difference_type difference_type;
-    typedef _TYPENAME _Deque::size_type       size_type;
-    typedef _TYPENAME _Deque::iterator        iterator;
-
-#endif   // _RWSTD_NO_MEMBER_TEMPLATES
-
     _RWSTD_ASSERT_RANGE (__self->begin (), __it);
     _RWSTD_ASSERT_RANGE (__first, __last);
     _RWSTD_ASSERT (__self->_C_is_valid ());

Modified: stdcxx/trunk/include/fstream
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/fstream?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/fstream (original)
+++ stdcxx/trunk/include/fstream Fri Aug  1 13:51:17 2008
@@ -99,9 +99,9 @@
 public:
     typedef _CharT                          char_type;
     typedef _Traits                         traits_type;
-    typedef _TYPENAME traits_type::int_type int_type;
-    typedef _TYPENAME traits_type::pos_type pos_type;
-    typedef _TYPENAME traits_type::off_type off_type;
+    typedef typename traits_type::int_type int_type;
+    typedef typename traits_type::pos_type pos_type;
+    typedef typename traits_type::off_type off_type;
 
     // 27.8.1.2, p1
     basic_filebuf ()
@@ -128,7 +128,7 @@
     // ctor extensions - associate this with an open file and
     // optionally set buffer size and caller-allocated buffer
     // NOTE: passed in buffer will NOT be deallocated
-    _EXPLICIT
+    explicit
     basic_filebuf (int __fd, char_type* __buf   = 0,
                    _RWSTD_STREAMSIZE __bufsz = _RWSTD_DEFAULT_BUFSIZE)
         : _Streambuf (ios_base::openmode (_RW::__rw_fdmode (__fd))),
@@ -145,7 +145,7 @@
 
 #  ifdef stdin
 
-    _EXPLICIT
+    explicit
     basic_filebuf (FILE *__fptr, char_type* __buf = 0,
                    _RWSTD_STREAMSIZE __bufsz = _RWSTD_DEFAULT_BUFSIZE)
         : _Streambuf (),
@@ -292,7 +292,7 @@
 
 
 template<class _CharT, class _Traits>
-inline _TYPENAME basic_filebuf<_CharT, _Traits>::off_type
+inline typename basic_filebuf<_CharT, _Traits>::off_type
 basic_filebuf<_CharT, _Traits>::
 _C_crlf_extern_count (const char* __start, const char* __finish) const
 {
@@ -324,7 +324,7 @@
 
 
 template<class _CharT, class _Traits>
-inline _TYPENAME basic_filebuf<_CharT, _Traits>::off_type
+inline typename basic_filebuf<_CharT, _Traits>::off_type
 basic_filebuf<_CharT, _Traits>::
 _C_crlf_intern_count (const char_type* __start,
                       const char_type* __finish) const
@@ -364,9 +364,9 @@
 
     typedef _CharT                          char_type;
     typedef _Traits                         traits_type;
-    typedef _TYPENAME traits_type::int_type int_type;
-    typedef _TYPENAME traits_type::pos_type pos_type;
-    typedef _TYPENAME traits_type::off_type off_type;
+    typedef typename traits_type::int_type int_type;
+    typedef typename traits_type::pos_type pos_type;
+    typedef typename traits_type::off_type off_type;
 
     // NOTE: the ctors below pass the address of an unitialized
     //       member variable, _C_filebuf, to a base class ctor
@@ -376,7 +376,7 @@
     basic_ifstream ()
         : basic_istream<char_type, traits_type> (rdbuf ()) { }
 
-    _EXPLICIT
+    explicit
     basic_ifstream (const char        *__name,
                     ios_base::openmode __mode = ios_base::in,
                     long               __prot = 0666)
@@ -387,7 +387,7 @@
 #ifndef  _RWSTD_NO_EXT_FILEBUF
 
     // extensions - associate this with an open file and set buffer
-    _EXPLICIT
+    explicit
     basic_ifstream (int __fd, char_type *__buf = 0,
                     _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_istream<char_type, traits_type> (rdbuf ()) {
@@ -396,7 +396,7 @@
 
 #  ifdef stdin
 
-    _EXPLICIT
+    explicit
     basic_ifstream (FILE *__fptr, char_type *__buf = 0,
                     _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_istream<char_type, traits_type> (rdbuf ()) {
@@ -465,9 +465,9 @@
 
     typedef _CharT                          char_type;
     typedef _Traits                         traits_type;
-    typedef _TYPENAME traits_type::int_type int_type;
-    typedef _TYPENAME traits_type::pos_type pos_type;
-    typedef _TYPENAME traits_type::off_type off_type;
+    typedef typename traits_type::int_type int_type;
+    typedef typename traits_type::pos_type pos_type;
+    typedef typename traits_type::off_type off_type;
 
     // NOTE: the ctors below pass the address of an unitialized
     //       member variable, _C_filebuf, to a base class ctor
@@ -477,7 +477,7 @@
     basic_ofstream ()
         : basic_ostream<char_type, traits_type> (rdbuf ()) { }
 
-    _EXPLICIT basic_ofstream (const char         *__name,
+    explicit basic_ofstream (const char         *__name,
                               ios_base::openmode  __mode = ios_base::out,
                               long                __prot = 0666)
         : basic_ostream<char_type, traits_type> (rdbuf ()) {
@@ -487,7 +487,7 @@
 #ifndef _RWSTD_NO_EXT_FILEBUF
 
     // extensions - associate this with an open file and set buffer
-    _EXPLICIT
+    explicit
     basic_ofstream (int __fd, char_type *__buf = 0,
                     _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_ostream<char_type, traits_type> (rdbuf ()) {
@@ -496,7 +496,7 @@
     
 #  ifdef stdin
 
-    _EXPLICIT
+    explicit
     basic_ofstream (FILE *__fptr, char_type *__buf = 0,
                     _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_ostream<char_type, traits_type> (rdbuf ()) {
@@ -565,9 +565,9 @@
 
     typedef _CharT                          char_type;
     typedef _Traits                         traits_type;
-    typedef _TYPENAME traits_type::int_type int_type;
-    typedef _TYPENAME traits_type::pos_type pos_type;
-    typedef _TYPENAME traits_type::off_type off_type;
+    typedef typename traits_type::int_type int_type;
+    typedef typename traits_type::pos_type pos_type;
+    typedef typename traits_type::off_type off_type;
 
     // NOTE: the ctors below pass the address of an unitialized
     //       member variable, _C_filebuf, to a base class ctor
@@ -577,7 +577,7 @@
     basic_fstream ()
         : basic_iostream<char_type, traits_type>(rdbuf ()) { }
 
-    _EXPLICIT
+    explicit
     basic_fstream (const char         *__name,
                    ios_base::openmode  __mode = _RW::__rw_in_out,
                    long                __prot = 0666)
@@ -588,7 +588,7 @@
 #ifndef _RWSTD_NO_EXT_FILEBUF
 
     // extensions - associate this with an open file and set buffer
-    _EXPLICIT
+    explicit
     basic_fstream (int __fd, char_type *__buf = 0,
                    _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_iostream<char_type, traits_type>(rdbuf ()) {
@@ -597,7 +597,7 @@
 
 #  ifdef stdin
 
-    _EXPLICIT
+    explicit
     basic_fstream (FILE *__fptr, char_type *__buf = 0,
                    _RWSTD_STREAMSIZE __n = _RWSTD_DEFAULT_BUFSIZE)
         : basic_iostream<char_type, traits_type>(rdbuf ()) {

Modified: stdcxx/trunk/include/fstream.cc
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/fstream.cc?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/fstream.cc (original)
+++ stdcxx/trunk/include/fstream.cc Fri Aug  1 13:51:17 2008
@@ -157,7 +157,7 @@
         // restore position within file only if seek succeeded
         _RW::__rw_fseek (_C_file, this->_C_state, _C_cur_pos, ios_base::beg);
 
-        typedef _TYPENAME traits_type::state_type _StateT;
+        typedef typename traits_type::state_type _StateT;
         typedef codecvt<char_type, char, _StateT> _Codecvt;
 
         const _Codecvt &__cvt = _USE_FACET (_Codecvt, this->getloc ());
@@ -174,7 +174,7 @@
 
 
 template<class _CharT, class _Traits>
-_TYPENAME basic_filebuf<_CharT, _Traits>::int_type
+typename basic_filebuf<_CharT, _Traits>::int_type
 basic_filebuf<_CharT, _Traits>::
 underflow ()
 {
@@ -189,7 +189,7 @@
 
     char_type* const __to_end = this->_C_buffer + this->_C_bufsize;
 
-    typedef _TYPENAME traits_type::int_type _IntType;
+    typedef typename traits_type::int_type _IntType;
 
     _IntType __ret = _IntType ();
 
@@ -220,7 +220,7 @@
 
         _C_beg_pos = _C_cur_pos;
 
-        typedef _TYPENAME traits_type::state_type _StateT;
+        typedef typename traits_type::state_type _StateT;
         typedef codecvt<char_type, char, _StateT> _Codecvt;
 
         const _Codecvt &__cvt = _USE_FACET (_Codecvt, this->getloc ());
@@ -359,7 +359,7 @@
 
 
 template<class _CharT, class _Traits>
-_TYPENAME basic_filebuf<_CharT, _Traits>::int_type
+typename basic_filebuf<_CharT, _Traits>::int_type
 basic_filebuf<_CharT, _Traits>::
 overflow (int_type __c /* = eof () */)
 {
@@ -477,7 +477,7 @@
 
     const char_type* const __end = __buf + __nchars;
 
-    typedef _TYPENAME traits_type::state_type _StateT;
+    typedef typename traits_type::state_type _StateT;
 
     _RWSTD_STREAMSIZE __nwrote = 0;          // num chars to write
     _StateT __state = _C_cur_pos.state ();   // state of stream
@@ -581,7 +581,7 @@
 
 
 template<class _CharT, class _Traits>
-_TYPENAME basic_filebuf<_CharT, _Traits>::int_type
+typename basic_filebuf<_CharT, _Traits>::int_type
 basic_filebuf<_CharT, _Traits>::
 pbackfail (int_type __c)
 {
@@ -707,7 +707,7 @@
 
 // 27.8.1.4, p 11
 template<class _CharT, class _Traits>
-_TYPENAME basic_filebuf<_CharT, _Traits>::pos_type
+typename basic_filebuf<_CharT, _Traits>::pos_type
 basic_filebuf<_CharT, _Traits>::
 seekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode)
 {
@@ -716,7 +716,7 @@
     if (!is_open ())
         return pos_type (off_type (-1));
 
-    typedef _TYPENAME traits_type::state_type _StateT;
+    typedef typename traits_type::state_type _StateT;
     typedef codecvt<char_type, char, _StateT> _Codecvt;
 
     const int __width = _USE_FACET (_Codecvt, this->getloc ()).encoding ();
@@ -757,7 +757,7 @@
 
 
 template<class _CharT, class _Traits>
-_TYPENAME basic_filebuf<_CharT, _Traits>::pos_type
+typename basic_filebuf<_CharT, _Traits>::pos_type
 basic_filebuf<_CharT, _Traits>::
 seekpos (pos_type __pos, ios_base::openmode)
 {
@@ -819,7 +819,7 @@
         if (_C_pbacksize == this->_C_bufsize)
             _C_pbacksize = this->_C_bufsize - 1;
 
-        typedef _TYPENAME traits_type::state_type _StateT;
+        typedef typename traits_type::state_type _StateT;
         typedef codecvt<char_type, char, _StateT> _Codecvt;
 
         const _Codecvt &__cvt = _USE_FACET (_Codecvt, this->getloc ());
@@ -956,7 +956,7 @@
 basic_filebuf<_CharT, _Traits>::
 _C_unshift ()
 {
-    typedef _TYPENAME traits_type::state_type _StateT;
+    typedef typename traits_type::state_type _StateT;
     typedef codecvt<char_type, char, _StateT> _Codecvt;
 
     const _Codecvt &__cvt = _USE_FACET (_Codecvt, this->getloc ());

Modified: stdcxx/trunk/include/functional
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/functional?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/functional (original)
+++ stdcxx/trunk/include/functional Fri Aug  1 13:51:17 2008
@@ -37,7 +37,7 @@
  * permissions and limitations under the License.
  *
  * Copyright 1994-2006 Rogue Wave Software.
- * 
+ *
  **************************************************************************/
 
 #ifndef _RWSTD_FUNCTIONAL_INCLUDED
@@ -45,10 +45,16 @@
 
 
 #include <rw/_funcbase.h>
+
+#ifndef _RWSTD_NO_EXT_CXX_0X
+#  include <rw/_ref_wrap.h>
+#  include <rw/_forward.h>
+#endif
+
 #include <rw/_defs.h>
 
 
-_RWSTD_NAMESPACE (std) { 
+_RWSTD_NAMESPACE (std) {
 
 
 // 20.3.2 - Arithmetic operations
@@ -247,13 +253,13 @@
 // 20.3.5, p2
 template <class _Predicate>
 class unary_negate
-    : public unary_function<_TYPENAME _Predicate::argument_type, bool>
+    : public unary_function<typename _Predicate::argument_type, bool>
 {
     _Predicate _C_pred;
 public:
-    _RWSTD_UNARY_FUNCTION_TYPES (_TYPENAME _Predicate::argument_type, bool);
+    _RWSTD_UNARY_FUNCTION_TYPES (typename _Predicate::argument_type, bool);
 
-    _EXPLICIT unary_negate (const _Predicate &__pred) : _C_pred (__pred) { }
+    explicit unary_negate (const _Predicate &__pred) : _C_pred (__pred) { }
 
     result_type operator() (const argument_type &__x) const {
         return !_C_pred (__x);
@@ -272,17 +278,17 @@
 // 20.3.5, p4
 template <class _Predicate>
 class binary_negate
-    : public binary_function<_TYPENAME _Predicate::first_argument_type,
-                             _TYPENAME _Predicate::second_argument_type, bool>
+    : public binary_function<typename _Predicate::first_argument_type,
+                             typename _Predicate::second_argument_type, bool>
 {
     _Predicate _C_pred;
 public:
 
-    _RWSTD_BINARY_FUNCTION_TYPES (_TYPENAME _Predicate::first_argument_type,
-                                  _TYPENAME _Predicate::second_argument_type,
+    _RWSTD_BINARY_FUNCTION_TYPES (typename _Predicate::first_argument_type,
+                                  typename _Predicate::second_argument_type,
                                   bool);
 
-    _EXPLICIT binary_negate (const _Predicate &__pred) : _C_pred (__pred) { }
+    explicit binary_negate (const _Predicate &__pred) : _C_pred (__pred) { }
 
     result_type operator() (const first_argument_type  &__x,
                             const second_argument_type &__y) const {
@@ -304,19 +310,19 @@
 // 20.3.6.1
 template <class _Operation>
 class binder1st
-    : public unary_function<_TYPENAME _Operation::second_argument_type,
-                            _TYPENAME _Operation::result_type>
+    : public unary_function<typename _Operation::second_argument_type,
+                            typename _Operation::result_type>
 {
 protected:
     _Operation                                op;
-    _TYPENAME _Operation::first_argument_type value;
+    typename _Operation::first_argument_type value;
 public:
 
-    _RWSTD_UNARY_FUNCTION_TYPES (_TYPENAME _Operation::second_argument_type,
-                                 _TYPENAME _Operation::result_type);
+    _RWSTD_UNARY_FUNCTION_TYPES (typename _Operation::second_argument_type,
+                                 typename _Operation::result_type);
 
     binder1st (const _Operation                                &__oper,
-               const _TYPENAME _Operation::first_argument_type &__x)
+               const typename _Operation::first_argument_type &__x)
         : op (__oper), value (__x) { }
 
     result_type
@@ -331,7 +337,7 @@
 inline binder1st<_Operation>
 bind1st (const _Operation &__oper, const _TypeT &__x)
 {
-    typedef _TYPENAME _Operation::first_argument_type first_argument_type;
+    typedef typename _Operation::first_argument_type first_argument_type;
 
     return binder1st<_Operation>(__oper, first_argument_type (__x));
 }
@@ -340,19 +346,19 @@
 // 20.3.6.3
 template <class _Operation>
 class binder2nd
-    : public unary_function<_TYPENAME _Operation::first_argument_type,
-                            _TYPENAME _Operation::result_type>
+    : public unary_function<typename _Operation::first_argument_type,
+                            typename _Operation::result_type>
 {
 protected:
     _Operation                                 op;
-    _TYPENAME _Operation::second_argument_type value;
+    typename _Operation::second_argument_type value;
 public:
 
-    _RWSTD_UNARY_FUNCTION_TYPES (_TYPENAME _Operation::first_argument_type,
-                                 _TYPENAME _Operation::result_type);
+    _RWSTD_UNARY_FUNCTION_TYPES (typename _Operation::first_argument_type,
+                                 typename _Operation::result_type);
 
     binder2nd (const _Operation                                 &__oper,
-               const _TYPENAME _Operation::second_argument_type &__y)
+               const typename _Operation::second_argument_type &__y)
         : op (__oper), value (__y) { }
 
     result_type
@@ -367,7 +373,7 @@
 inline binder2nd<_Operation>
 bind2nd (const _Operation &__oper, const _TypeT &__x)
 {
-    typedef _TYPENAME _Operation::second_argument_type second_argument_type;
+    typedef typename _Operation::second_argument_type second_argument_type;
     return binder2nd<_Operation>(__oper, second_argument_type (__x));
 }
 
@@ -380,7 +386,7 @@
 {
     _RWSTD_UNARY_FUNCTION_TYPES (_Arg, _Result);
 
-    _EXPLICIT pointer_to_unary_function (result_type (*__fun)(argument_type))
+    explicit pointer_to_unary_function (result_type (*__fun)(argument_type))
         : _C_fn (__fun) {}
 
     result_type operator() (argument_type __x) const {
@@ -408,7 +414,7 @@
 {
     _RWSTD_BINARY_FUNCTION_TYPES (_Arg1, _Arg2, _Result);
 
-    _EXPLICIT
+    explicit
     pointer_to_binary_function (result_type (*__fun)(first_argument_type,
                                                     second_argument_type))
         : _C_fn (__fun) { }
@@ -441,7 +447,7 @@
 {
     _RWSTD_UNARY_FUNCTION_TYPES (_TypeT*, _Result);
 
-    _EXPLICIT mem_fun_t (result_type (_TypeT::*__fun)()) : _C_fn (__fun) { }
+    explicit mem_fun_t (result_type (_TypeT::*__fun)()) : _C_fn (__fun) { }
 
     result_type operator() (argument_type __x) const {
         return (__x->*_C_fn)();
@@ -459,7 +465,7 @@
 {
     _RWSTD_BINARY_FUNCTION_TYPES (_TypeT*, _Arg, _Result);
 
-    _EXPLICIT
+    explicit
     mem_fun1_t (result_type (_TypeT::*__fun)(second_argument_type))
         : _C_fn (__fun) { }
 
@@ -496,7 +502,7 @@
 {
     _RWSTD_UNARY_FUNCTION_TYPES (_TypeT, _Result);
 
-    _EXPLICIT mem_fun_ref_t (result_type (_TypeT::*__fun)()) : _C_fn (__fun) { }
+    explicit mem_fun_ref_t (result_type (_TypeT::*__fun)()) : _C_fn (__fun) { }
 
     result_type operator() (argument_type &__x) const {
         return (__x.*_C_fn)();
@@ -514,7 +520,7 @@
 {
     _RWSTD_BINARY_FUNCTION_TYPES (_TypeT, _Arg, _Result);
 
-    _EXPLICIT
+    explicit
     mem_fun1_ref_t (result_type (_TypeT::*__fun)(second_argument_type))
         : _C_fn (__fun) { }
 
@@ -552,7 +558,7 @@
 {
     _RWSTD_UNARY_FUNCTION_TYPES (const _TypeT*, _Result);
 
-    _EXPLICIT const_mem_fun_t (result_type (_TypeT::*__fun)() const)
+    explicit const_mem_fun_t (result_type (_TypeT::*__fun)() const)
         : _C_fn (__fun) { }
 
     result_type operator() (argument_type __x) const {
@@ -571,7 +577,7 @@
 {
     _RWSTD_BINARY_FUNCTION_TYPES (const _TypeT*, _Arg, _Result);
 
-    _EXPLICIT
+    explicit
     const_mem_fun1_t (result_type (_TypeT::*__fun)(second_argument_type) const)
         : _C_fn (__fun) { }
 
@@ -609,7 +615,7 @@
 {
     _RWSTD_UNARY_FUNCTION_TYPES (_TypeT, _Result);
 
-    _EXPLICIT const_mem_fun_ref_t (result_type (_TypeT::*__fun)() const)
+    explicit const_mem_fun_ref_t (result_type (_TypeT::*__fun)() const)
         : _C_fn (__fun) { }
 
     result_type operator() (const argument_type &__x) const {
@@ -628,7 +634,7 @@
 {
     _RWSTD_BINARY_FUNCTION_TYPES (_TypeT, _Arg, _Result);
 
-    _EXPLICIT
+    explicit
     const_mem_fun1_ref_t
         (result_type (_TypeT::*__fun)(second_argument_type) const)
             : _C_fn (__fun) { }
@@ -663,7 +669,7 @@
 }   // namespace std
 
 
-_RWSTD_NAMESPACE (__rw) { 
+_RWSTD_NAMESPACE (__rw) {
 
 
 // extension: returns the argument

Modified: stdcxx/trunk/include/iomanip
URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/iomanip?rev=681820&r1=681819&r2=681820&view=diff
==============================================================================
--- stdcxx/trunk/include/iomanip (original)
+++ stdcxx/trunk/include/iomanip Fri Aug  1 13:51:17 2008
@@ -136,7 +136,7 @@
 template <class _Functor, class _TypeT>
 struct __rw_smanip
 {
-    _EXPLICIT
+    explicit
     __rw_smanip (_TypeT __arg)
         : _C_fun (), _C_arg (__arg) { /* empty */ }
 



Mime
View raw message