namespace std
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#ifdef __cpp_lib_contracts
- namespace contracts
- {
- class contract_violation;
- }
-#endif // __cpp_lib_contracts
+#ifdef __glibcxx_contracts
+ namespace contracts { class contract_violation; }
+#endif
/// A class that describes a location in source code.
struct source_location
constexpr source_location (const void *__t)
: _M_impl (static_cast <const __impl*>(__t)) {}
-#ifdef __cpp_lib_contracts
+#ifdef __glibcxx_contracts
/* To enable use of the source __impl*. */
friend class std::contracts::contract_violation;
-#endif // __cpp_lib_contracts
+#endif
};
_GLIBCXX_END_NAMESPACE_VERSION
--- /dev/null
+// { dg-options "-fcontracts" }
+// { dg-do compile { target c++26 } }
+
+// We should not get errors from including this before <contracts>:
+#include <source_location>
+#include <contracts>