1
0
forked from boostorg/core

Compare commits

...

4 Commits

Author SHA1 Message Date
Peter Dimov
3f36d507f2 Disable the tn_holder<wchar_t> specialization when BOOST_NO_INTRINSIC_WCHAR_T. Refs #173. 2024-05-28 19:32:36 +03:00
Andrey Semashev
a77338b1cd Use macos-14 image instead of macos-11 as the latter is being removed. 2024-05-21 01:06:02 +03:00
Peter Dimov
965508d9e1 Fix type_name for abstract classes. Fixes #172. 2024-04-24 21:46:32 +03:00
Glen Fernandes
d03e58b77e Correct parameter type in documentation 2024-04-18 13:16:12 -04:00
4 changed files with 31 additions and 9 deletions

View File

@@ -310,15 +310,15 @@ jobs:
- libc++-15-dev
- libc++abi-15-dev
- toolset: clang
cxxstd: "03,11,14,17,2a"
os: macos-11
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-12
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-13
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-14
timeout-minutes: 45
runs-on: ${{matrix.os}}
@@ -611,9 +611,9 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-11
- os: macos-12
- os: macos-13
- os: macos-14
runs-on: ${{matrix.os}}
timeout-minutes: 10
@@ -678,9 +678,9 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-11
- os: macos-12
- os: macos-13
- os: macos-14
runs-on: ${{matrix.os}}
timeout-minutes: 10
@@ -755,9 +755,9 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-11
- os: macos-12
- os: macos-13
- os: macos-14
runs-on: ${{matrix.os}}
timeout-minutes: 20

View File

@@ -56,7 +56,7 @@ constexpr bool pointer_in_range(const T* ptr, const T* begin, const T* end);
[variablelist
[[`template<class T> constexpr bool pointer_in_range(const T* ptr,
const T* begin, T* end);`]
const T* begin, const T* end);`]
[[variablelist
[[Requires][`[begin,end)` is a valid range.]]
[[Returns][`true` if `ptr` is in range `[begin,end)`, otherwise `false`.]]]]]]

View File

@@ -103,7 +103,8 @@ inline std::string fix_typeid_name( char const* n )
}
// class types can be incomplete
template<class T> std::string typeid_name_impl( int T::* )
// but also abstract (T[1] doesn't form)
template<class T> std::string typeid_name_impl( int T::*, T(*)[1] )
{
std::string r = fix_typeid_name( typeid(T[1]).name() );
return r.substr( 0, r.size() - 4 ); // remove ' [1]' suffix
@@ -116,7 +117,7 @@ template<class T> std::string typeid_name_impl( ... )
template<class T> std::string typeid_name()
{
return typeid_name_impl<T>( 0 );
return typeid_name_impl<T>( 0, 0 );
}
// template names
@@ -345,6 +346,8 @@ template<> struct tn_holder<boost::uint128_type>
#endif
#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
template<> struct tn_holder<wchar_t>
{
static std::string type_name( std::string const& suffix )
@@ -353,6 +356,8 @@ template<> struct tn_holder<wchar_t>
}
};
#endif
#if !defined(BOOST_NO_CXX11_CHAR16_T)
template<> struct tn_holder<char16_t>

View File

@@ -55,6 +55,13 @@ template<class T1, class T2> struct X
template<class T1, class T2> struct Y;
class W
{
public:
virtual void f() = 0;
};
enum E1
{
e1
@@ -122,6 +129,7 @@ int main()
TEST(A);
TEST(B);
TEST(C);
TEST(W);
TEST(E1);
@@ -143,6 +151,9 @@ int main()
TEST(C&);
TEST(C const&);
TEST(W const);
TEST(W&);
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
TEST(B&&);
@@ -156,6 +167,8 @@ int main()
TEST(C*);
TEST(C const* volatile*);
TEST(W volatile*);
TEST(void*);
TEST(void const* volatile*);
@@ -307,6 +320,8 @@ int main()
TEST(std::pair<C, C>);
TEST(std::pair<W, W>);
TEST(std::pair<void, void>);
TEST(std::pair<std::pair<void, void>, void>);
@@ -336,9 +351,11 @@ int main()
TEST(X<A const&, B&> volatile&);
TEST(X<C, C>);
TEST(X<W, W>);
TEST(Y<A, B>);
TEST(Y<C, C>);
TEST(Y<W, W>);
TEST(X<std::pair<void, void>, void>);