Merge pull request #239 from boostorg/string_view

Add BOOST_NO_CXX17_HDR_STRING_VIEW.
This commit is contained in:
jzmaddock
2018-08-16 12:07:19 +01:00
committed by GitHub
15 changed files with 146 additions and 5 deletions

View File

@ -1,6 +1,6 @@
# #
# *** DO NOT EDIT THIS FILE BY HAND *** # *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Sat Aug 4 19:11:09 2018 # This file was automatically generated on Thu Aug 16 11:20:17 2018
# by libs/config/tools/generate.cpp # by libs/config/tools/generate.cpp
# Copyright John Maddock. # Copyright John Maddock.
# Use, modification and distribution are subject to the # Use, modification and distribution are subject to the
@ -113,6 +113,7 @@ obj cxx14_std_exchange : test_case.cpp : <define>TEST_BOOST_NO_CXX14_STD_EXCHANG
obj cxx14_variable_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES ; obj cxx14_variable_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES ;
obj cxx17_fold_expressions : test_case.cpp : <define>TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS ; obj cxx17_fold_expressions : test_case.cpp : <define>TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS ;
obj cxx17_hdr_optional : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_OPTIONAL ; obj cxx17_hdr_optional : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_OPTIONAL ;
obj cxx17_hdr_string_view : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_STRING_VIEW ;
obj cxx17_if_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX17_IF_CONSTEXPR ; obj cxx17_if_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX17_IF_CONSTEXPR ;
obj cxx17_inline_variables : test_case.cpp : <define>TEST_BOOST_NO_CXX17_INLINE_VARIABLES ; obj cxx17_inline_variables : test_case.cpp : <define>TEST_BOOST_NO_CXX17_INLINE_VARIABLES ;
obj cxx17_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX17_ITERATOR_TRAITS ; obj cxx17_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX17_ITERATOR_TRAITS ;

View File

@ -1,4 +1,4 @@
// This file was automatically generated on Sat Aug 4 19:11:09 2018 // This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp // by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4. // Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
@ -521,6 +521,11 @@
# error "Defect macro BOOST_NO_CXX17_HDR_OPTIONAL is defined." # error "Defect macro BOOST_NO_CXX17_HDR_OPTIONAL is defined."
# endif # endif
#endif #endif
#ifdef TEST_BOOST_NO_CXX17_HDR_STRING_VIEW
# ifdef BOOST_NO_CXX17_HDR_STRING_VIEW
# error "Defect macro BOOST_NO_CXX17_HDR_STRING_VIEW is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_IF_CONSTEXPR #ifdef TEST_BOOST_NO_CXX17_IF_CONSTEXPR
# ifdef BOOST_NO_CXX17_IF_CONSTEXPR # ifdef BOOST_NO_CXX17_IF_CONSTEXPR
# error "Defect macro BOOST_NO_CXX17_IF_CONSTEXPR is defined." # error "Defect macro BOOST_NO_CXX17_IF_CONSTEXPR is defined."

View File

@ -3832,6 +3832,18 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_HDR_STRING_VIEW</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">string_view</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_STD_APPLY</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_STD_APPLY</span></code>

View File

@ -993,7 +993,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: August 04, 2018 at 18:19:41 GMT</small></p></td> <td align="left"><p><small>Last revised: August 16, 2018 at 10:24:31 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -948,6 +948,7 @@ that are not yet supported by a particular compiler or library.
[table [table
[[Macro ][Description ]] [[Macro ][Description ]]
[[`BOOST_NO_CXX17_HDR_OPTIONAL`][The compiler does not support the header `<optional>`.]] [[`BOOST_NO_CXX17_HDR_OPTIONAL`][The compiler does not support the header `<optional>`.]]
[[`BOOST_NO_CXX17_HDR_STRING_VIEW`][The compiler does not support the header `<string_view>`.]]
[[`BOOST_NO_CXX17_STD_APPLY`][The compiler does not support `std::apply()`.]] [[`BOOST_NO_CXX17_STD_APPLY`][The compiler does not support `std::apply()`.]]
[[`BOOST_NO_CXX17_STD_INVOKE`][The compiler does not support `std::invoke()`.]] [[`BOOST_NO_CXX17_STD_INVOKE`][The compiler does not support `std::invoke()`.]]
[[`BOOST_NO_CXX17_ITERATOR_TRAITS`][The compiler does not support SFINAE-friendly `std::iterator_traits`.]] [[`BOOST_NO_CXX17_ITERATOR_TRAITS`][The compiler does not support SFINAE-friendly `std::iterator_traits`.]]

View File

@ -203,6 +203,7 @@
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS # define BOOST_NO_CXX17_STRUCTURED_BINDINGS
# define BOOST_NO_CXX17_IF_CONSTEXPR # define BOOST_NO_CXX17_IF_CONSTEXPR
# define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif #endif
// MSVC including version 14 has not yet completely // MSVC including version 14 has not yet completely

View File

@ -1026,10 +1026,14 @@ namespace std{ using ::type_info; }
// This is a catch all case for obsolete compilers / std libs: // This is a catch all case for obsolete compilers / std libs:
#if !defined(__has_include) #if !defined(__has_include)
# define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#else #else
#if !__has_include(<optional>) #if !__has_include(<optional>)
# define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_OPTIONAL
#endif #endif
#if !__has_include(<string_view>)
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
#endif #endif
// //

View File

@ -90,6 +90,7 @@
#if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L) #if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif #endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
# define BOOST_NO_AUTO_PTR # define BOOST_NO_AUTO_PTR

View File

@ -300,6 +300,7 @@ extern "C" char *gets (char *__s);
# define BOOST_NO_CXX17_STD_INVOKE # define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif #endif
#if defined(__has_include) #if defined(__has_include)

View File

@ -1,7 +1,7 @@
# #
# Regression test Jamfile for boost configuration setup. # Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND *** # *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Sat Aug 4 19:11:09 2018 # This file was automatically generated on Thu Aug 16 11:20:17 2018
# by libs/config/tools/generate.cpp # by libs/config/tools/generate.cpp
# Copyright John Maddock. # Copyright John Maddock.
# Use, modification and distribution are subject to the # Use, modification and distribution are subject to the
@ -328,6 +328,9 @@ test-suite "BOOST_NO_CXX17_FOLD_EXPRESSIONS" :
test-suite "BOOST_NO_CXX17_HDR_OPTIONAL" : test-suite "BOOST_NO_CXX17_HDR_OPTIONAL" :
[ run ../no_cxx17_hdr_optional_pass.cpp ] [ run ../no_cxx17_hdr_optional_pass.cpp ]
[ compile-fail ../no_cxx17_hdr_optional_fail.cpp ] ; [ compile-fail ../no_cxx17_hdr_optional_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_HDR_STRING_VIEW" :
[ run ../no_cxx17_hdr_string_view_pass.cpp ]
[ compile-fail ../no_cxx17_hdr_string_view_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_IF_CONSTEXPR" : test-suite "BOOST_NO_CXX17_IF_CONSTEXPR" :
[ run ../no_cxx17_if_constexpr_pass.cpp ] [ run ../no_cxx17_if_constexpr_pass.cpp ]
[ compile-fail ../no_cxx17_if_constexpr_fail.cpp ] ; [ compile-fail ../no_cxx17_if_constexpr_fail.cpp ] ;

View File

@ -0,0 +1,26 @@
// (C) Copyright John Maddock 2018
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX17_HDR_STRING_VIEW
// TITLE: C++17 header <string_view> unavailable
// DESCRIPTION: The standard library does not supply C++17 header <string_view>
#include <string_view>
namespace boost_no_cxx17_hdr_string_view {
int test()
{
using std::string_view;
using std::wstring_view;
using std::u16string_view;
using std::u32string_view;
return 0;
}
}

View File

@ -1160,6 +1160,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES); PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
PRINT_MACRO(BOOST_NO_CXX17_FOLD_EXPRESSIONS); PRINT_MACRO(BOOST_NO_CXX17_FOLD_EXPRESSIONS);
PRINT_MACRO(BOOST_NO_CXX17_HDR_OPTIONAL); PRINT_MACRO(BOOST_NO_CXX17_HDR_OPTIONAL);
PRINT_MACRO(BOOST_NO_CXX17_HDR_STRING_VIEW);
PRINT_MACRO(BOOST_NO_CXX17_IF_CONSTEXPR); PRINT_MACRO(BOOST_NO_CXX17_IF_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CXX17_INLINE_VARIABLES); PRINT_MACRO(BOOST_NO_CXX17_INLINE_VARIABLES);
PRINT_MACRO(BOOST_NO_CXX17_ITERATOR_TRAITS); PRINT_MACRO(BOOST_NO_CXX17_ITERATOR_TRAITS);
@ -1239,6 +1240,7 @@ void print_boost_macros()
// END GENERATED BLOCK // END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL); PRINT_MACRO(BOOST_INTEL);

View File

@ -1,4 +1,4 @@
// This file was automatically generated on Sat Aug 4 19:11:09 2018 // This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp // by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4. // Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
@ -347,6 +347,11 @@ namespace boost_no_cxx17_fold_expressions = empty_boost;
#else #else
namespace boost_no_cxx17_hdr_optional = empty_boost; namespace boost_no_cxx17_hdr_optional = empty_boost;
#endif #endif
#ifndef BOOST_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
namespace boost_no_cxx17_hdr_string_view = empty_boost;
#endif
#ifndef BOOST_NO_CXX17_IF_CONSTEXPR #ifndef BOOST_NO_CXX17_IF_CONSTEXPR
#include "boost_no_cxx17_if_constexpr.ipp" #include "boost_no_cxx17_if_constexpr.ipp"
#else #else
@ -1511,6 +1516,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX17_HDR_OPTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_NO_CXX17_HDR_OPTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count; ++error_count;
} }
if(0 != boost_no_cxx17_hdr_string_view::test())
{
std::cerr << "Failed test for BOOST_NO_CXX17_HDR_STRING_VIEW at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx17_if_constexpr::test()) if(0 != boost_no_cxx17_if_constexpr::test())
{ {
std::cerr << "Failed test for BOOST_NO_CXX17_IF_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_NO_CXX17_IF_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;

View File

@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
// Revision $Id$
//
// Test file for macro BOOST_NO_CXX17_HDR_STRING_VIEW
// This file should not compile, if it does then
// BOOST_NO_CXX17_HDR_STRING_VIEW should not be defined.
// See file boost_no_cxx17_hdr_string_view.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_string_view::test();
}

View File

@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
// Revision $Id$
//
// Test file for macro BOOST_NO_CXX17_HDR_STRING_VIEW
// This file should compile, if it does not then
// BOOST_NO_CXX17_HDR_STRING_VIEW should be defined.
// See file boost_no_cxx17_hdr_string_view.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
namespace boost_no_cxx17_hdr_string_view = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_string_view::test();
}