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

	Merge r664274, r664277, r667365, r667396, r667636, r667638, r668208,
	      r668215, r668223, r668225, r668274, r668279, r668318, r668340,
	      r668350, r668727, r668829, r668865, r668873, r669070, r669071,
	      r669092, r669093, r669241, r669248, r669554, r669608, r669655,
	      r669664, r669723, r669735, r669742, r669745, r669999, r670008,
	      r670013, r670047,  r670099 from branches/4.3.x

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

	* tests/localization/22.locale.synopsis.cpp: Update include
	directive for renamed test driver header.

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

	* etc/config/src/headers.inc: Revert unintentional
	change from r664271.

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

	STDCXX-916
	* include/type_traits: New file defines C++0x type traits.
	* include/rw/_config-gcc.h (_RWSTD_TT_IS_ENUM, _RWSTD_TT_IS_UNION)
	(_RWSTD_TT_IS_CLASS, _RWSTD_TT_IS_POD, _RWSTD_TT_IS_EMPTY)
	(_RWSTD_TT_IS_POLYMORPHIC, _RWSTD_TT_IS_ABSTRACT, _RWSTD_TT_IS_BASE_OF)
	(_RWSTD_TT_HAS_TRIVIAL_CTOR, _RWSTD_TT_HAS_TRIVIAL_COPY)
	(_RWSTD_TT_HAS_TRIVIAL_ASSIGN, _RWSTD_TT_HAS_TRIVIAL_DTOR)
	(_RWSTD_TT_HAS_NOTHROW_CTOR, _RWSTD_TT_HAS_NOTHROW_COPY)
	(_RWSTD_TT_HAS_TRIVIAL_ASSIGN, _RWSTD_TT_HAS_VIRTUAL_DTOR)
	(_RWSTD_TT_ALIGN_OF, _RWSTD_ALIGNED_POD, _RWSTD_MAX_ALIGNMENT): Add
	macros for compiler support.
	* include/rw/_config-msvc.h [_RWSTD_TT_IS_ENUM, _RWSTD_TT_IS_UNION)
	(_RWSTD_TT_IS_CLASS, _RWSTD_TT_IS_POD, _RWSTD_TT_IS_EMPTY)
	(_RWSTD_TT_IS_POLYMORPHIC, _RWSTD_TT_IS_ABSTRACT, _RWSTD_TT_IS_BASE_OF)
	(_RWSTD_TT_IS_CONVERTIBLE, _RWSTD_TT_HAS_VIRTUAL_DTOR)
	(_RWSTD_TT_HAS_TRIVIAL_CTOR, _RWSTD_TT_HAS_TRIVIAL_ASSIGN)
	(_RWSTD_TT_HAS_TRIVIAL_COPY, _RWSTD_TT_HAS_TRIVIAL_DTOR)
	(_RWSTD_TT_HAS_NOTHROW_CTOR, _RWSTD_TT_HAS_NOTHROW_ASSIGN)
	(_RWSTD_TT_HAS_NOTHROW_COPY, _RWSTD_TT_ALIGN_OF, _RWSTD_TT_ALIGNED_POD)
	(_RWSTD_TT_MAX_ALIGNMENT): Ditto.
	* include/rw/_config.h [_RWSTD_EXT_CXX_OX]: Disable C++0x
	extensions unless defined.
	* include/rw/_defs.h (_RWSTD_SWCHAR_INT_T): Add new macro that
	defines a type that has same size and layout a the fictional
	signed wchar_t.
	(_RWSTD_UWCHAR_INT_T): Modify definition to handle case where
	unsigned long is not the same size as unsigned int. Add case for
	unsigned long long.
	* etc/config/src/STATIC_ASSERT.cpp: Add configuration test to
	check for C++0x static_assert.
	* include/rw/_static_assert.h (_RWSTD_STATIC_ASSERT): Add a
	helper macro and fallback implementation for static_assert.

	STDCXX-917
	* include/rw/_meta_help.h: New file includes definitions for
	traits classes.
	* tests/utilities/20.meta.help.cpp: Disable all C++0x code unless
	explicitly enabled. Update copyright and comment.

	STDCXX-918
	* include/rw/_meta_cat.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.unary.cat.cpp: Add test.

	STDCXX-919
	* include/rw/_meta_comp.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.unary.comp.cpp: Add test.

	STDCXX-920
	* include/rw/_meta_prop.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.unary.prop.cpp: Add test.

	STDCXX-921
	* include/rw/_meta_rel.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.rel.cpp: Add test.

	STDCXX-922
	* include/rw/_meta_cv.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.trans.cv.cpp: Add test.

	STDCXX-922
	* include/rw/_meta_cv.h: New file includes definitions for
	trait classes.
	* tests/utilities/20.meta.trans.cv.cpp: Add test.

	STDCXX-923
	* include/rw/_meta_ref.h: New file includes definitions for
	trait types.
	* tests/utilities/20.meta.trans.ref.cpp: Add test.

	STDCXX-924
	* include/rw/_meta_arr.h: New file includes definitions for
	traits classes.
	* tests/utilities/20.meta.trans.arr.cpp: Add test.

	STDCXX-925
	* include/rw/_meta_ptr.h: New file includes definitions for
	traits classes.
	* tests/utilities/20.meta.trans.ptr.cpp: Add test.

	STDCXX-926
	* include/rw/_meta_other.h: New file includes definitions for
	traits classes.
	* tests/utilities/20.meta.trans.other.cpp: Add test.

	STDCXX-947
	* include/rw/_meta_sign.h: New file includes definitions for
	traits classes.
	* tests/utilities/20.meta.trans.sign.cpp: Add test.

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

	* include/type_traits: integral_constant no longer inherits from
	__rw_integral_constant.
	* include/rw/_config-gcc.h: Disable __is_convertible on gcc as it
	doesn't seem to exist.
	* include/rw/_meta_cat.h: Expose helper macros.
	* include/rw/_meta_rel.h: Ditto. Enable is_convertible fallback.
	* include/_rw/_meta_prop.h: Use explicit specialization to identify
	signed and unsigned types to avoid warnings on gnu. Use fallback
	for __rw_is_standard_layout. Use _RWSTD_SIZE_T instead of size_t.
	* tests/utilities/20.meta.unary.prop.cpp: Use _RWSTD_SIZE_T instead
	of size_t. Add a few tests, fix several others.
	(test_make_unsigned): Fix search-n-replace error.
	
	2008-06-13  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-958
	* include/rw/_forward.h: New header file containing initial
	implementation of std::identity class template; std::forward()
	and std::move() functions; and internal _RWSTD_MOVE() macro.

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

	STDCXX-916
	* include/rw/_meta_cat.h, include/rw/_meta_ref.h,
	include/rw/_meta_rel.h: Include missing headers.
	* include/rw/_static_assert.h [_RWSTD_STATIC_ASSERT]: Reverse
	definitions.  Add Mesg parameter to internal definition so both
	definitions have same number of parameters.
	* etc/config/src/STATIC_ASSERT.cpp (main): Change main() to a
	regular function so config scripts don't find main() and
	(unnecessarily) link (and run?) program.

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

	STDCXX-958
	* tests/utilities/20.forward.cpp: Rough outline of new test for
	exercising move/forward helpers in <utility> header.

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

	* include/rw/_defs.h: Remove block defining macros for
	trait compiler support.
	* include/rw/_config-gcc.h: Add newline to end of file.
	* include/rw/_config.msvc.h: Ditto.

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

	STDCXX-916
	* include/rw/_meta_help.h: Added some missing documentation.

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

	STDCXX-916
	* rw/_meta_help.h: Update header guard to reflect
	the name of the header it is used in.
	* rw/_meta_sign.h: Ditto.
	* rw/_meta_ptr.h: Ditto.
	* rw/_meta_cv.h: Ditto.
	* rw/_meta_prop.h: Ditto.
	* rw/_meta_other.h: Ditto.
	* rw/_meta_arr.h: Ditto.
	* rw/_meta_comp.h: Ditto.
	* rw/_meta_cat.h: Ditto.
	* rw/_meta_ref.h: Ditto.
	* rw/_meta_rel.h: Ditto.

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

	STDCXX-958
	* etc/config/src/VA_LIST_FUNC_MACRO.cpp: Initial version of
	configuration check for va-list function macros.

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

	STDCXX-916
	* tests/utilities/20.meta.unary.cat.cpp: Include <stddef.h> to
	define `size_t' type.

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

	STDCXX-926
	* include/rw/_meta_other.h [!_RWSTD_NO_VARIADIC_TEMPLATES]: Fix
	__rw_aligned_union implementation.

	2006-06-16  Travis Vitek  <vitek@roguewave.com>

	STDCXX-926
	* tests/utilities/20.meta.trans.other.cpp (cond_if_char): Add
	typename to avoid compile error on gcc.

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

	STDCXX-958
	* include/rw/_forward.h (std::identity<T>::operator()): Add
	missing `const' to function signature.

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

	STDCXX-958
	* include/tuple, include/rw/_tuple.h, include/rw/_tuple_traits.h:
	Add initial version of headers defining tuple interface and
	implementation.  (Only tested on Linux/gcc-4.3 platforms so far.)
	* tests/utilities/20.tuple.cnstr.cpp: Rough outline of first
	tuple test program.

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

	STDCXX-920
	* tests/utilities/20.meta.unary.prop.cpp: Use size_t instead
	of _RWSTD_SIZE_T. Update test to correctly reflect behaviors
	required by standard.

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

	STDCXX-921
	* tests/utilities/20.meta.rel.cpp: Update test to correctly
	reflect behaviors required by the standard.

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

	STDCXX-947
	* include/rw/_defs.h [_RWSTD_UWCHAR_INT_T,_RWSTD_SWCHAR_INT_T]: Revert
	changes from r667365.
	* include/rw/_meta_sign.h: Define make_signed and make_unsigned to
	properly handle char and wchar_t according to current standard.
	* tests/utilities/20.meta.trans.sign.cpp: Use size_t as appropriate.
	Update test to correctly reflect behaviors required by the standard.

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

	STDCXX-920
	* include/rw/_meta_prop.h: Add is_signed support for floating point
	types accidentally removed in r667396. Fix is_trivial to behave
	correctly for cv-qualified types.

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

	STDCXX-916
	* include/rw/_static_assert.h: Qualify __rw_assert_failed with
	_RW to avoid compile errors when using _RWSTD_STATIC_ASSERT().

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

	STDCXX-958
	* include/tuple (tuple_size): Implemented and documented.
	* include/rw/_tuple_traits.h: Corrected documentation for
	grouping and template parameters.
	* include/rw/_forward.h: Likewise.
	* include/rw/_tuple.h: Likewise.  Also, corrected/implemented,
	documented more constructors and operators.
	* tests/utilities/20.tuple.h: Added missing header.
	* tests/utilities/20.tuple.cnstr.cpp: Added more constructor,
	operator tests.

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

	STDCXX-958
	* include/rw/_tuple.h: Added tail accessors.  Use tail accessors
	in constructors and operators to properly construct base class
	object.
	* tests/utilities/20.tuple.cnstr.cpp: Uncomment BigTuple test
	case that was failing to build because of this problem.

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

	STDCXX-958
	* include/rw/_tuple.h: Implemented value move ctor.
	* tests/utilities/20.tuple.cnstr.cpp: Added value move ctor test
	cases.  (No copy ctors called in UserClass!)  Unknown problem
	with NestedTuple ctor.  Temporarily commented out.

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

	STDCXX-958
	* include/rw/_forward.h: Fixed tags in return value docs.
	* include/rw/_tuple.h: Implemented and documented remaining
	constructors and operators (except alloc ctors).  Fixed some
	forward/move semantics.  Fixed tags in return value docs.

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

	STDCXX-958
	* include/tuple: Check _RWSTD_EXT_CXX_0X macro _after_ including
	<rw/_defs.h> header.

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

	STDCXX-958
	* include/tuple: Fix spelling of `_RWSTD_NO_RVALUE_REFERENCES'.

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

	STDCXX-958
	* include/rw/_tuple.h: Include <rw/_defs.h> header before
	checking _RWSTD_NO_EXT_CXX_0X macro.

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

	STDCXX-958
	* include/rw/_tuple_traits.h: Include <rw/_defs.h> header before
	checking configuration macros.

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

	STDCXX-958
	* include/rw/_forward.h: Include <rw/_defs.h> before checking
	configuration macro(s).
	* include/rw/_allocator.h (std::allocator_arg_t)
	(std::allocator_arg): Define empty C++0x class and global
	constant if C++0x extension is enabled.
	* include/rw/_tuple.h: Added declarations for user-defined
	allocator constructors.  Also, assume comiler features include
	member templates.

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

	STDCXX-965
	* doc/Doxyfile: Initial version of Doxygen configuration file.
	(Currently assumes SRCDIR and BUILDDIR environment variables are
	set appropriately.)

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

	STDCXX-926
	* include/rw/_meta_other.h: Add typedef keyword to nested union
	types used by aligned_storage and aligned_union types. Require
	at least one type be provided to aligned_union. Allow length
	passed to aligned_union to be 0.

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

	STDCXX-958
	* include/tuple:  Implement and document tuple_element.  Minor
	doc changes for tuple_size.
	* tests/utilities/20.tuple.h: Fix copyright date.  Remove
	(currently) unnecessary includes.  Add macro for size of BigList.
	* tests/utilities/20.tuple.helpers.cpp: Added new (complete and
	working!) test for tuple helpers.

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

	STDCXX-958
	* tests/utilities/20.tuple.helpers.cpp (test_tuple_size): Add
	TEST() macro and update existing tests to utilize macro.
	(test_tuple_element): Remove using directives and explicitly
	reference `std' namespace members.

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

	STDCXX-926
	* include/rw/_meta_other.h: Make __rw_aligned_union compile
	on gcc-4.3 again by forward declaring template and using
	using correct template parameter name.

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

	STDCXX-958
	* include/rw/_meta_cv.h: Include <rw/_meta_comp.h> to define
	__rw_is_reference trait.
	* include/rw/_tuple.h (__get): Add new accessors to allow access
	to head element value.  Accessors are public but intended (and
	undocumented) for internal use only.
	* include/tuple (tuple_element): Added internal get() helpers.
	(get): Implemented and documented.
	* tests/utilities/20.tuple.elem.cpp: Added framework for new
	(and incomplete) test for tuple element accessors.

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

	STDCXX-926
	* include/type_traits: Update comments describing each trait. Use
	correct type for the underlying integral_constant used by traits
	alignment_of, rank, extent, is_base_of and is_convertible. Enable
	aligned_union. Add defaulted alignment for aligned_storage.
	* include/rw/_meta_other.h: Implement __rw_aligned_storage. Add
	support for defaulted alignment. Update __rw_aligned_union to
	use __rw_aligned_storage to get an aligned block.
	* tests/utilities/20.meta.trans.other.cpp (test_trait): Correct
	assertion message to display correct string.
	(test_aligned_storage): Add testing for aligned_storage.
	(test_aligned_union): Add testing for aligned_union.

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

	STDCXX-926
	* include/type_traits: Replace tabs with spaces. Remove bad
	declaration of aligned_union.
	* include/rw/_meta_other.h: Fix partial specialization of both
	__rw_strictest and __rw_biggest. Use correct name for the
	__rw_aligned_struct nested type in __rw_aligned_union. Compile
	out definition of member constants as they cause errors on gcc.
	* tests/utilities/20.meta.trans.other.cpp: Remove unnecessary
	semicolon.
	(test_aligned_union): Add a typedef for the aligned type inside
	aligned_union.

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

	STDCXX-919
	* tests/utilities/20.meta.unary.comp (test_is_scalar): Update
	test expectations to match requirements.
	(test_is_object): Ditto.
	(test_is_compound): Ditto.

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

	STDCXX-926
	* include/rw/_meta_other.h: Remove unnecessary whitespace,
	simplify workaround for msvc.

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

	STDCXX-926
	* include/rw/_meta_other.h: Replace size_t with macro
	_RWSTD_SIZE_T.

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

	STDCXX-958
	* tests/utilities/20.tuple.cnstr.cpp (test_default_ctor):
	(test_value_copy_ctor, test_value_move_ctor, test_homo_copy_ctor):
	Fix assertions for total # of UserClass copy ctors called.
	(test_homo_move_ctor, test_homo_copy_assign):
	(test_homo_move_assign, test_hetero_copy_ctor): Added new tests.
	(test_hetero_move_ctor, test_hetero_copy_assign):
	(test_hetero_move_assign, test_alloc_ctors): Added outline for
	remaining tests.

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

	STDCXX-926
	* include/rw/_meta_other.h: Add parentheses around template
	parameters used as sizeof() arguments to make benefit for
	glorious compiler of gcc 4.3.

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

	STDCXX-958
	* include/rw/_ref_wrap.h: Add internal header for reference
	wrappers.  (Currently just an empty class template.)
	* include/tuple: Add helpers for deducing return type of
	make_tuple() function.
	(make_tuple): Implemented and documented.



git-svn-id: https://svn.apache.org/repos/asf/stdcxx/trunk@671667 13f79535-47bb-0310-9956-ffa450edef68
43 files changed