Commit 1ababc8b by Jonathan Wakely Committed by Jonathan Wakely

Improve docs for Library Fundamentals TS

	* doc/doxygen/doxygroups.cc: Move description of experimental group
	here.
	* include/experimental/algorithm: Add to libfund-ts doc group.
	* include/experimental/any: Likewise. Do not document implementation
	details.
	* include/experimental/array: Add to libfund-ts doc group.
	* include/experimental/bits/lfts_config.h: Define libfund-ts doc group
	for Library Fundamentals.
	* include/experimental/chrono: Add to libfund-ts doc group.
	* include/experimental/deque: Likewise.
	* include/experimental/forward_list: Likewise.
	* include/experimental/functional: Likewise.
	* include/experimental/iterator: Likewise.
	* include/experimental/list: Likewise.
	* include/experimental/map: Likewise.
	* include/experimental/memory: Likewise.
	* include/experimental/memory_resource: Likewise. Improve docs.
	details.
	* include/experimental/numeric: Add to libfund-ts doc group.
	* include/experimental/optional: Likewise.
	* include/experimental/propagate_const: Likewise.
	* include/experimental/random: Likewise.
	* include/experimental/ratio: Likewise.
	* include/experimental/regex: Likewise.
	* include/experimental/set: Likewise.
	* include/experimental/source_location: Likewise.
	* include/experimental/string: Likewise.
	* include/experimental/string_view: Likewise.
	* include/experimental/system_error: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/type_traits: Likewise.
	* include/experimental/unordered_map: Likewise.
	* include/experimental/unordered_set: Likewise.
	* include/experimental/utility: Likewise.
	* include/experimental/vector: Likewise.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
	* testsuite/experimental/array/neg.cc: Adjust dg-error.
	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
	Likewise.
	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.

From-SVN: r270809
parent caace300
2019-05-02 Jonathan Wakely <jwakely@redhat.com> 2019-05-02 Jonathan Wakely <jwakely@redhat.com>
* doc/doxygen/doxygroups.cc: Move description of experimental group
here.
* include/experimental/algorithm: Add to libfund-ts doc group.
* include/experimental/any: Likewise. Do not document implementation
details.
* include/experimental/array: Add to libfund-ts doc group.
* include/experimental/bits/lfts_config.h: Define libfund-ts doc group
for Library Fundamentals.
* include/experimental/chrono: Add to libfund-ts doc group.
* include/experimental/deque: Likewise.
* include/experimental/forward_list: Likewise.
* include/experimental/functional: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/memory_resource: Likewise. Improve docs.
details.
* include/experimental/numeric: Add to libfund-ts doc group.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/random: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/set: Likewise.
* include/experimental/source_location: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/utility: Likewise.
* include/experimental/vector: Likewise.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
* testsuite/experimental/array/neg.cc: Adjust dg-error.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
* include/experimental/bits/fs_dir.h: Fix Doxygen markup. * include/experimental/bits/fs_dir.h: Fix Doxygen markup.
* include/experimental/bits/fs_fwd.h: Improve docs. * include/experimental/bits/fs_fwd.h: Improve docs.
* include/experimental/bits/fs_ops.h: fix Doxygen markup. * include/experimental/bits/fs_ops.h: fix Doxygen markup.
......
...@@ -160,3 +160,15 @@ summarized in <a href="tables.html">tables</a>. */ ...@@ -160,3 +160,15 @@ summarized in <a href="tables.html">tables</a>. */
* Components for concurrent operations, including threads, mutexes, * Components for concurrent operations, including threads, mutexes,
* and condition variables. * and condition variables.
*/ */
/**
* @defgroup experimental Technical Specifications
*
* Components specified by various Technical Specifications.
*
* As indicated by the std::experimental namespace and the header paths,
* the contents of these Technical Specifications are experimental and not
* part of the C++ standard. As such the interfaces and implementations may
* change in the future, and there is <STRONG> no guarantee of compatibility
* between different GCC releases </STRONG> for these features.
*/
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/algorithm /** @file experimental/algorithm
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_ALGORITHM #ifndef _GLIBCXX_EXPERIMENTAL_ALGORITHM
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/any /** @file experimental/any
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_ANY #ifndef _GLIBCXX_EXPERIMENTAL_ANY
...@@ -49,7 +50,7 @@ inline namespace fundamentals_v1 ...@@ -49,7 +50,7 @@ inline namespace fundamentals_v1
{ {
/** /**
* @defgroup any Type-safe container of any type * @defgroup any Type-safe container of any type
* @ingroup experimental * @ingroup libfund-ts
* *
* A type-safe container for single values of value types, as * A type-safe container for single values of value types, as
* described in n3804 "Any Library Proposal (Revision 3)". * described in n3804 "Any Library Proposal (Revision 3)".
...@@ -69,6 +70,7 @@ inline namespace fundamentals_v1 ...@@ -69,6 +70,7 @@ inline namespace fundamentals_v1
virtual const char* what() const noexcept { return "bad any_cast"; } virtual const char* what() const noexcept { return "bad any_cast"; }
}; };
/// @cond undocumented
[[gnu::noreturn]] inline void __throw_bad_any_cast() [[gnu::noreturn]] inline void __throw_bad_any_cast()
{ {
#if __cpp_exceptions #if __cpp_exceptions
...@@ -77,6 +79,7 @@ inline namespace fundamentals_v1 ...@@ -77,6 +79,7 @@ inline namespace fundamentals_v1
__builtin_abort(); __builtin_abort();
#endif #endif
} }
/// @endcond
/** /**
* @brief A type-safe container of any type. * @brief A type-safe container of any type.
...@@ -410,6 +413,7 @@ inline namespace fundamentals_v1 ...@@ -410,6 +413,7 @@ inline namespace fundamentals_v1
} }
// @} // @}
/// @cond undocumented
template<typename _Tp> template<typename _Tp>
void* __any_caster(const any* __any) void* __any_caster(const any* __any)
{ {
...@@ -422,6 +426,7 @@ inline namespace fundamentals_v1 ...@@ -422,6 +426,7 @@ inline namespace fundamentals_v1
__any->_M_manager(any::_Op_access, __any, &__arg); __any->_M_manager(any::_Op_access, __any, &__arg);
return __arg._M_obj; return __arg._M_obj;
} }
/// @endcond
/** /**
* @brief Access the contained object. * @brief Access the contained object.
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/array /** @file experimental/array
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_ARRAY #ifndef _GLIBCXX_EXPERIMENTAL_ARRAY
...@@ -47,7 +48,7 @@ inline namespace fundamentals_v2 ...@@ -47,7 +48,7 @@ inline namespace fundamentals_v2
#define __cpp_lib_experimental_make_array 201505 #define __cpp_lib_experimental_make_array 201505
/** /**
* @defgroup make_array Array creation functions * @defgroup make_array Array creation functions
* @ingroup experimental * @ingroup libfund-ts
* *
* Array creation functions as described in N4529, * Array creation functions as described in N4529,
* Working Draft, C++ Extensions for Library Fundamentals, Version 2 * Working Draft, C++ Extensions for Library Fundamentals, Version 2
...@@ -78,6 +79,7 @@ template<typename... _Types> ...@@ -78,6 +79,7 @@ template<typename... _Types>
"any of the arguments is a reference_wrapper"); "any of the arguments is a reference_wrapper");
}; };
/// Create a std::array from a variable-length list of arguments.
template <typename _Dest = void, typename... _Types> template <typename _Dest = void, typename... _Types>
constexpr constexpr
array<typename __make_array_elem<_Dest, _Types...>::type, sizeof...(_Types)> array<typename __make_array_elem<_Dest, _Types...>::type, sizeof...(_Types)>
...@@ -93,6 +95,7 @@ template <typename _Tp, size_t _Nm, size_t... _Idx> ...@@ -93,6 +95,7 @@ template <typename _Tp, size_t _Nm, size_t... _Idx>
return {{__a[_Idx]...}}; return {{__a[_Idx]...}};
} }
/// Create a std::array from an array.
template <typename _Tp, size_t _Nm> template <typename _Tp, size_t _Nm>
constexpr array<remove_cv_t<_Tp>, _Nm> constexpr array<remove_cv_t<_Tp>, _Nm>
to_array(_Tp (&__a)[_Nm]) to_array(_Tp (&__a)[_Nm])
......
...@@ -30,6 +30,17 @@ ...@@ -30,6 +30,17 @@
#if __cplusplus >= 201402L #if __cplusplus >= 201402L
#include <bits/c++config.h> #include <bits/c++config.h>
/** @defgroup libfund-ts Library Fundamentals TS
* @ingroup experimental
*
* Components defined by the _C++ Extensions for Library Fundamentals_
* Technical Specification, versions 1 and 2.
*
* ISO/IEC TS 19568:2015 C++ Extensions for Library Fundamentals
*
* ISO/IEC TS 19568:2017 C++ Extensions for Library Fundamentals, Version 2
*/
#if _GLIBCXX_INLINE_VERSION #if _GLIBCXX_INLINE_VERSION
namespace std _GLIBCXX_VISIBILITY(default) namespace std _GLIBCXX_VISIBILITY(default)
{ {
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/chrono /** @file experimental/chrono
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/deque /** @file experimental/deque
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_DEQUE #ifndef _GLIBCXX_EXPERIMENTAL_DEQUE
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/forward_list /** @file experimental/forward_list
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_FORWARD_LIST #ifndef _GLIBCXX_EXPERIMENTAL_FORWARD_LIST
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/functional /** @file experimental/functional
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_FUNCTIONAL #ifndef _GLIBCXX_EXPERIMENTAL_FUNCTIONAL
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/iterator /** @file experimental/iterator
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/list /** @file experimental/list
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_LIST #ifndef _GLIBCXX_EXPERIMENTAL_LIST
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/map /** @file experimental/map
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_MAP #ifndef _GLIBCXX_EXPERIMENTAL_MAP
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/memory /** @file experimental/memory
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/memory_resource /** @file experimental/memory_resource
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_MEMORY_RESOURCE #ifndef _GLIBCXX_EXPERIMENTAL_MEMORY_RESOURCE
...@@ -37,12 +38,14 @@ ...@@ -37,12 +38,14 @@
#include <ext/new_allocator.h> #include <ext/new_allocator.h>
#include <debug/assertions.h> #include <debug/assertions.h>
/// @cond
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{ {
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp> class malloc_allocator; template<typename _Tp> class malloc_allocator;
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
} // namespace __gnu_cxx } // namespace __gnu_cxx
/// @endcond
namespace std { namespace std {
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
...@@ -259,6 +262,7 @@ namespace pmr { ...@@ -259,6 +262,7 @@ namespace pmr {
{ return !(__a == __b); } { return !(__a == __b); }
/// @cond undocumented
class __resource_adaptor_common class __resource_adaptor_common
{ {
template<typename, typename> friend class __resource_adaptor_imp; template<typename, typename> friend class __resource_adaptor_imp;
...@@ -372,6 +376,7 @@ namespace pmr { ...@@ -372,6 +376,7 @@ namespace pmr {
: std::alignment_of<std::max_align_t>::type { }; : std::alignment_of<std::max_align_t>::type { };
#endif #endif
}; };
/// @endcond
// 8.7.1 __resource_adaptor_imp // 8.7.1 __resource_adaptor_imp
template<typename _Alloc, typename _Resource> template<typename _Alloc, typename _Resource>
...@@ -501,6 +506,7 @@ namespace pmr { ...@@ -501,6 +506,7 @@ namespace pmr {
// The default memory resource // The default memory resource
/// @cond undocumented
inline std::atomic<memory_resource*>& inline std::atomic<memory_resource*>&
__get_default_resource() __get_default_resource()
{ {
...@@ -509,11 +515,14 @@ namespace pmr { ...@@ -509,11 +515,14 @@ namespace pmr {
static type* __r = new(__buf) type(new_delete_resource()); static type* __r = new(__buf) type(new_delete_resource());
return *__r; return *__r;
} }
/// @endcond
/// Get the current default resource.
inline memory_resource* inline memory_resource*
get_default_resource() noexcept get_default_resource() noexcept
{ return __get_default_resource().load(); } { return __get_default_resource().load(); }
/// Change the default resource and return the previous one.
inline memory_resource* inline memory_resource*
set_default_resource(memory_resource* __r) noexcept set_default_resource(memory_resource* __r) noexcept
{ {
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/numeric /** @file experimental/numeric
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,23 +24,12 @@ ...@@ -24,23 +24,12 @@
/** @file experimental/optional /** @file experimental/optional
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_OPTIONAL #ifndef _GLIBCXX_EXPERIMENTAL_OPTIONAL
#define _GLIBCXX_EXPERIMENTAL_OPTIONAL 1 #define _GLIBCXX_EXPERIMENTAL_OPTIONAL 1
/**
* @defgroup experimental Experimental
*
* Components specified by various Technical Specifications.
*
* As indicated by the std::experimental namespace and the header paths,
* the contents of these Technical Specifications are experimental and not
* part of the C++ standard. As such the interfaces and implementations may
* change in the future, and there is <STRONG> no guarantee of compatibility
* between different GCC releases </STRONG> for these features.
*/
#if __cplusplus >= 201402L #if __cplusplus >= 201402L
#include <utility> #include <utility>
...@@ -63,7 +52,7 @@ inline namespace fundamentals_v1 ...@@ -63,7 +52,7 @@ inline namespace fundamentals_v1
{ {
/** /**
* @defgroup optional Optional values * @defgroup optional Optional values
* @ingroup experimental * @ingroup libfund-ts
* *
* Class template for optional values and surrounding facilities, as * Class template for optional values and surrounding facilities, as
* described in n3793 "A proposal to add a utility class to represent * described in n3793 "A proposal to add a utility class to represent
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/propagate_const /** @file experimental/propagate_const
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_PROPAGATE_CONST #ifndef _GLIBCXX_EXPERIMENTAL_PROPAGATE_CONST
...@@ -49,7 +50,7 @@ inline namespace fundamentals_v2 ...@@ -49,7 +50,7 @@ inline namespace fundamentals_v2
{ {
/** /**
* @defgroup propagate_const Const-propagating wrapper * @defgroup propagate_const Const-propagating wrapper
* @ingroup experimental * @ingroup libfund-ts
* *
* A const-propagating wrapper that propagates const to pointer-like members, * A const-propagating wrapper that propagates const to pointer-like members,
* as described in n4388 "A Proposal to Add a Const-Propagating Wrapper * as described in n4388 "A Proposal to Add a Const-Propagating Wrapper
...@@ -58,7 +59,7 @@ inline namespace fundamentals_v2 ...@@ -58,7 +59,7 @@ inline namespace fundamentals_v2
* @{ * @{
*/ */
/// Const-propagating wrapper. /// Const-propagating wrapper.
template <typename _Tp> template <typename _Tp>
class propagate_const class propagate_const
{ {
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/random /** @file experimental/random
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_RANDOM #ifndef _GLIBCXX_EXPERIMENTAL_RANDOM
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/ratio /** @file experimental/ratio
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/regex /** @file experimental/regex
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_REGEX #ifndef _GLIBCXX_EXPERIMENTAL_REGEX
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/set /** @file experimental/set
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_SET #ifndef _GLIBCXX_EXPERIMENTAL_SET
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/source_location /** @file experimental/source_location
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_SRCLOC #ifndef _GLIBCXX_EXPERIMENTAL_SRCLOC
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/string /** @file experimental/string
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_STRING #ifndef _GLIBCXX_EXPERIMENTAL_STRING
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/string_view /** @file experimental/string_view
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
...@@ -57,7 +58,7 @@ inline namespace fundamentals_v1 ...@@ -57,7 +58,7 @@ inline namespace fundamentals_v1
* *
* @ingroup strings * @ingroup strings
* @ingroup sequences * @ingroup sequences
* @ingroup experimental * @ingroup libfund-ts
* *
* @tparam _CharT Type of character * @tparam _CharT Type of character
* @tparam _Traits Traits for character type, defaults to * @tparam _Traits Traits for character type, defaults to
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/system_error /** @file experimental/system_error
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/tuple /** @file experimental/tuple
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_TUPLE #ifndef _GLIBCXX_EXPERIMENTAL_TUPLE
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/type_traits /** @file experimental/type_traits
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
// //
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/unordered_map /** @file experimental/unordered_map
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_MAP #ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_MAP
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/unordered_set /** @file experimental/unordered_set
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_SET #ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_SET
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/utility /** @file experimental/utility
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_UTILITY #ifndef _GLIBCXX_EXPERIMENTAL_UTILITY
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
/** @file experimental/vector /** @file experimental/vector
* This is a TS C++ Library header. * This is a TS C++ Library header.
* @ingroup libfund-ts
*/ */
#ifndef _GLIBCXX_EXPERIMENTAL_VECTOR #ifndef _GLIBCXX_EXPERIMENTAL_VECTOR
......
...@@ -25,5 +25,6 @@ void test01() ...@@ -25,5 +25,6 @@ void test01()
using std::experimental::any_cast; using std::experimental::any_cast;
const any y(1); const any y(1);
any_cast<int&>(y); // { dg-error "qualifiers" "" { target { *-*-* } } 357 } any_cast<int&>(y); // { dg-error "here" }
// { dg-error "discards qualifiers" "" { target { *-*-* } } 0 }
} }
...@@ -24,5 +24,5 @@ int main() ...@@ -24,5 +24,5 @@ int main()
{ {
int dummy; int dummy;
auto bad = std::experimental::make_array(std::ref(dummy)); auto bad = std::experimental::make_array(std::ref(dummy));
// { dg-error "explicit target type" "" { target *-*-* } 76 } // { dg-error "explicit target type" "" { target *-*-* } 0 }
} }
...@@ -25,8 +25,6 @@ ...@@ -25,8 +25,6 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
using std::unique_ptr; using std::unique_ptr;
// { dg-error "no type" "" { target *-*-* } 160 }
int main() int main()
{ {
propagate_const<unique_ptr<const int>> test5; propagate_const<unique_ptr<const int>> test5;
...@@ -35,3 +33,4 @@ int main() ...@@ -35,3 +33,4 @@ int main()
propagate_const<unique_ptr<const int>> test6; propagate_const<unique_ptr<const int>> test6;
test6 = dummy2; // { dg-error "no match" } test6 = dummy2; // { dg-error "no match" }
} }
// { dg-prune-output "no type" }
...@@ -25,11 +25,6 @@ ...@@ -25,11 +25,6 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
using std::unique_ptr; using std::unique_ptr;
// { dg-error "no type" "" { target *-*-* } 118 }
// { dg-error "no type" "" { target *-*-* } 125 }
// { dg-error "no type" "" { target *-*-* } 134 }
// { dg-error "no type" "" { target *-*-* } 143 }
int main() int main()
{ {
const int dummy{42}; const int dummy{42};
...@@ -39,3 +34,4 @@ int main() ...@@ -39,3 +34,4 @@ int main()
propagate_const<unique_ptr<const int>> test4 = &dummy; // { dg-error "conversion" } propagate_const<unique_ptr<const int>> test4 = &dummy; // { dg-error "conversion" }
propagate_const<unique_ptr<const int>> test5 = std::move(test1); // { dg-error "conversion" } propagate_const<unique_ptr<const int>> test5 = std::move(test1); // { dg-error "conversion" }
} }
// { dg-prune-output "no type" }
...@@ -21,9 +21,8 @@ ...@@ -21,9 +21,8 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
// { dg-error "not a pointer-to-object type" "" { target *-*-* } 66 }
// { dg-error "forming pointer to reference type" "" { target *-*-* } 187 }
// { dg-error "forming pointer to reference type" "" { target *-*-* } 213 }
propagate_const<void*> test1; propagate_const<void*> test1;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 0 }
// { dg-prune-output "forming pointer to reference type" }
// { dg-prune-output "not a pointer-to-object type" }
...@@ -21,6 +21,6 @@ ...@@ -21,6 +21,6 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
propagate_const<void (*)()> test1; propagate_const<void (*)()> test1;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 0 }
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
// { dg-error "invalid type" "" { target *-*-* } 66 }
// { dg-error "uninitialized reference member" "" { target *-*-* } 112 }
propagate_const<int&> test1; // { dg-error "use of deleted function" } propagate_const<int&> test1; // { dg-error "use of deleted function" }
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 0 }
// { dg-prune-output "invalid type" }
// { dg-prune-output "uninitialized reference member" }
...@@ -21,6 +21,6 @@ ...@@ -21,6 +21,6 @@
using std::experimental::propagate_const; using std::experimental::propagate_const;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
propagate_const<int[1]> test1; propagate_const<int[1]> test1;
// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 0 }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment